[PATCH v4] pci: prevent putting nvidia GPUs into lower device states on certain intel bridges
Mika Westerberg
mika.westerberg at intel.com
Wed Nov 20 11:51:27 UTC 2019
On Wed, Nov 20, 2019 at 01:22:16PM +0200, Mika Westerberg wrote:
> If (((OSYS <= 0x07D9) || ((OSYS == 0x07DF) && (_REV ==
> 0x05))))
> {
The OSYS comes from this (in DSDT):
If (_OSI ("Windows 2009"))
{
OSYS = 0x07D9
}
If (_OSI ("Windows 2012"))
{
OSYS = 0x07DC
}
If (_OSI ("Windows 2013"))
{
OSYS = 0x07DD
}
If (_OSI ("Windows 2015"))
{
OSYS = 0x07DF
}
So I guess this particular check tries to identify Windows 7 and older,
and Linux.
> If ((PIOF == Zero))
> {
> P0LD = One
> TCNT = Zero
> While ((TCNT < LDLY))
> {
> If ((P0LT == 0x08))
> {
> Break
> }
>
> Sleep (0x10)
> TCNT += 0x10
> }
>
> P0RM = One
> P0AP = 0x03
> }
> ElseIf ((PIOF == One))
> {
> P1LD = One
> TCNT = Zero
> While ((TCNT < LDLY))
> {
> If ((P1LT == 0x08))
> {
> Break
> }
>
> Sleep (0x10)
> TCNT += 0x10
> }
>
> P1RM = One
> P1AP = 0x03
> }
> ElseIf ((PIOF == 0x02))
> {
> P2LD = One
> TCNT = Zero
> While ((TCNT < LDLY))
> {
> If ((P2LT == 0x08))
> {
> Break
> }
>
> Sleep (0x10)
> TCNT += 0x10
> }
>
> P2RM = One
> P2AP = 0x03
> }
>
> If ((PBGE != Zero))
> {
> If (SBDL (PIOF))
> {
> MBDL = GMXB (PIOF)
> PDUB (PIOF, MBDL)
> }
> }
> }
> Else
> {
> LKDS (PIOF)
> }
>
> If ((DerefOf (SCLK [Zero]) != Zero))
> {
> PCRO (0xDC, 0x100C, DerefOf (SCLK [One]))
> Sleep (0x10)
> }
>
> GPPR (PIOF, Zero)
> If ((OSYS != 0x07D9))
> {
> DIWK (PIOF)
> }
>
> \_SB.SGOV (0x01010004, Zero)
> Sleep (0x14)
> Return (Zero)
> }
More information about the dri-devel
mailing list