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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

--- Comment #6 from Ilia Mirkin (imirkin@xxxxxxxxxxxx) ---
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.
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel



[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux