[Bug 106901] Brightness / WIFI Key does not generate any events

bugzilla-daemon at bugzilla.kernel.org bugzilla-daemon at bugzilla.kernel.org
Wed Nov 4 22:46:35 PST 2015


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

Aaron Lu <aaron.lu at intel.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEEDINFO                    |ASSIGNED
          Component|Power-Video                 |Video(DRI - non Intel)
           Assignee|aaron.lu at intel.com          |drivers_video-dri at kernel-bu
                   |                            |gs.osdl.org
            Product|ACPI                        |Drivers

--- Comment #15 from Aaron Lu <aaron.lu at 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.

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


More information about the dri-devel mailing list