https://bugzilla.kernel.org/show_bug.cgi?id=106901
Aaron Lu aaron.lu@intel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEEDINFO |ASSIGNED Component|Power-Video |Video(DRI - non Intel) Assignee|aaron.lu@intel.com |drivers_video-dri@kernel-bu | |gs.osdl.org Product|ACPI |Drivers
--- Comment #15 from Aaron Lu aaron.lu@intel.com --- I have no idea why the acpi_video inteface doesn't work, the _BCM control method is there, but just doesn't work. The _BCM control method did some setting on the GPU's PCI config space, that may trigger GPU driver to do the actual handling, but then this is driver specific, maybe nvidia/nouveau driver has this knowledge.
As for the notification, the firmware decides to send the notification only when the _DCS control method returns 0x1f:
Method (_Q0E, 0, NotSerialized) // _Qxx: EC Query { If ((MSOS () < OSW8)) { SBRN () }
If ((MSOS () >= OSVT)) { Local0 = LBTN /* _SB_.LBTN */ If (^^^PEG0.GFX0.PRST ()) { If ((^^^PEG0.GFX0.LCDD._DCS () != 0x1F)) { If ((^^^PEG0.GFX0.EDPD._DCS () != 0x1F)) { Return (One) } }
^^^PEG0.GFX0.DWBL () ASBN = One }
The _DCS is: Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status { CHA1 = One CHA2 = One CHA3 = Zero Notify (GFX0, 0xF0) // Hardware-Specific While ((CHA2 == One)) { Sleep (0x32) If ((CHA3 != One)) { CHA2 = Zero } }
ACTD = MD2A (ACTD) AVLD = MD2A (AVLD) Local0 = ACTD /* _SB_.ACTD */ Local0 = AVLD /* _SB_.AVLD */ If (Local0) { If ((Local0 & EDPM)) { Return (0x1F) } } Return (0x1D) }
The AVLD is retrieved from a memory field, I doubt it depends on the GPU driver to set this value.
We should let the GPU people to take a look.
dri-devel@lists.freedesktop.org