[Bug 208661] Backlight doesn't work with both nv_backlight and acpi_video

bugzilla-daemon at bugzilla.kernel.org bugzilla-daemon at bugzilla.kernel.org
Mon Jul 27 14:29:06 UTC 2020


https://bugzilla.kernel.org/show_bug.cgi?id=208661

--- Comment #6 from Ilia Mirkin (imirkin at alum.mit.edu) ---
After a lot of debugging on IRC, here are a few facts that are worth recording:

1. The nv_backlight "method" works -- i.e. the backlight is hooked up to the
GPU. Adjusting brightness via acpi_video connects to the same mechanism
somehow. We didn't dig too deep to figure out how, since it's not really
important.

2. At the start of the mmiotrace, the NVIDIA driver fixes up 0xe100
("PNVIO.GPIO_MODE_0") to be have the 0x4 bit set of the SOR mask. On bootup
it's 0x00180100, while it should be 0x001c0100.

3. This is equivalent to what we do in nv50_gpio_reset. This function is called
in response to the "GPIO" init table method (which, one might mention, is
present in the init tables).

4. Manually setting this value (via nvapoke) makes nv_backlight work. Doing
suspend/resume, which causes init tables to be re-run, makes nv_backlight also
work, since the init table contains the GPIO opcode.

5. Regular boot with NvForcePost=1 kills the panel (and maybe other things).

Not sure what the solution is. Right now we run nv50_gpio_reset unconditionally
on MBP10,1. We can start extending the DMI table with random laptops, or maybe
we can just run that function unconditionally. Is there a downside?

-- 
You are receiving this mail because:
You are watching the assignee of the bug.


More information about the dri-devel mailing list