← Back to team overview

hybrid-graphics-linux team mailing list archive

Dell XPS-15 L502X. 2.6.39:nouveau_acpi.c detects switch, but I doubt it has one

 

Hello!

If I load the nouveau driver it detects my having a the DSM switching method.
  0:IGD:+:Pwr:0000:00:02.0
  1:DIS: :Pwr:0000:01:00.0

echo DIS > switch   - freezes display
echo IGD > switch   - unfreezes display

  nouveau_dsm(dhandle, NOUVEAU_DSM_SUPPORTED, NOUVEAU_DSM_SUPPORTED_FUNCTIONS, 
&result)
returns 0, but the two _DSM methods (attached at bottom of email) doesn't seem
to handle it at all.

[ 1073.905428] PM: Adding info for No Bus:ttm
[ 1073.917553] VGA switcheroo: detected DSM switching method 
\_SB_.PCI0.PEG0.PEGP handle
[ 1073.917575] nouveau 0000:01:00.0: power state changed by ACPI to D0
[ 1073.917578] nouveau 0000:01:00.0: power state changed by ACPI to D0
[ 1073.917582] nouveau 0000:01:00.0: enabling device (0006 -> 0007)
[ 1073.917589] nouveau 0000:01:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 
16
[ 1073.917594] nouveau 0000:01:00.0: setting latency timer to 64
[ 1073.917659] PM: Adding info for No Bus:controlD65
[ 1073.917710] PM: Adding info for No Bus:card1
[ 1073.918942] [drm] nouveau 0000:01:00.0: Detected an NVc0 generation card 
(0x0c1a80a1)
[ 1073.922252] vga_switcheroo: enabled
[ 1073.922268] [drm] nouveau 0000:01:00.0: Attempting to load BIOS image from 
PRAMIN
[ 1073.931971] [drm] nouveau 0000:01:00.0: ... BIOS signature not found
[ 1073.931972] [drm] nouveau 0000:01:00.0: Attempting to load BIOS image from 
PROM
[ 1073.931983] [drm] nouveau 0000:01:00.0: ... BIOS signature not found
[ 1073.931985] [drm] nouveau 0000:01:00.0: Attempting to load BIOS image from 
PCIROM
[ 1073.941752] nouveau 0000:01:00.0: Invalid ROM contents
[ 1073.941786] [drm] nouveau 0000:01:00.0: ... BIOS signature not found
[ 1073.941788] [drm] nouveau 0000:01:00.0: Attempting to load BIOS image from 
ACPI
[ 1075.168107] [drm] nouveau 0000:01:00.0: ... appears to be valid
[ 1075.168110] [drm] nouveau 0000:01:00.0: BIT BIOS found
[ 1075.168113] [drm] nouveau 0000:01:00.0: Bios version 70.08.53.00
[ 1075.168114] [drm] nouveau 0000:01:00.0: Pointer to BIT loadval table 
invalid
[ 1075.168117] [drm] nouveau 0000:01:00.0: TMDS table version 2.0
[ 1075.168119] [drm] nouveau 0000:01:00.0: Found Display Configuration Block 
version 4.0
[ 1075.168121] [drm] nouveau 0000:01:00.0: Raw DCB entry 0: 02014300 00000000
[ 1075.168123] [drm] nouveau 0000:01:00.0: Raw DCB entry 1: 02021362 00020010
[ 1075.168125] [drm] nouveau 0000:01:00.0: Raw DCB entry 2: 0000000e 00000000
[ 1075.168127] [drm] nouveau 0000:01:00.0: DCB connector table: VHER 0x40 5 16 
4
[ 1075.168130] [drm] nouveau 0000:01:00.0:   0: 0x00000340: type 0x40 idx 0 
tag 0xff
[ 1075.168132] [drm] nouveau 0000:01:00.0:   1: 0x00001061: type 0x61 idx 1 
tag 0x07
[ 1075.168134] [drm] nouveau 0000:01:00.0:   2: 0x00000147: type 0x47 idx 2 
tag 0xff
[ 1075.168136] [drm] nouveau 0000:01:00.0:   3: 0x00002346: type 0x46 idx 3 
tag 0x08
[ 1075.168138] [drm] nouveau 0000:01:00.0:   4: 0x00000400: type 0x00 idx 4 
tag 0xff
[ 1075.168140] [drm] nouveau 0000:01:00.0:   5: 0x00000210: type 0x10 idx 5 
tag 0xff
[ 1075.168142] [drm] nouveau 0000:01:00.0:   6: 0x00000211: type 0x11 idx 6 
tag 0xff
[ 1075.168144] [drm] nouveau 0000:01:00.0:   7: 0x00000213: type 0x13 idx 7 
tag 0xff
[ 1075.168158] [drm] nouveau 0000:01:00.0: Adaptor not initialised, running 
VBIOS init tables.
[ 1075.168160] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 0 at 
offset 0xD5D7
[ 1075.188401] PM: Adding info for i2c:i2c-10
[ 1075.192354] [drm] nouveau 0000:01:00.0: 0xD581: i2c wr fail: -6
[ 1075.232816] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 1 at 
offset 0xDC33
[ 1075.259850] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 2 at 
offset 0xEE39
[ 1075.259855] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 3 at 
offset 0xEE3D
[ 1075.259910] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 4 at 
offset 0xEF25
[ 1075.259912] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table at offset 
0xEF8A
[ 1075.298760] [drm] nouveau 0000:01:00.0: 3 available performance level(s)
[ 1075.298763] [drm] nouveau 0000:01:00.0: 0: memory 135MHz core 270MHz shader 
540MHz voltage 850mV
[ 1075.298766] [drm] nouveau 0000:01:00.0: 1: memory 405MHz core 270MHz shader 
810MHz voltage 850mV
[ 1075.298769] [drm] nouveau 0000:01:00.0: 3: memory 405MHz core 960MHz shader 
1200MHz voltage 950mV
[ 1075.298861] [TTM] Zone  kernel: Available graphics memory: 4083254 kiB.
[ 1075.298863] [TTM] Zone   dma32: Available graphics memory: 2097152 kiB.
[ 1075.298864] [TTM] Initializing pool allocator.
[ 1075.298876] [drm] nouveau 0000:01:00.0: Detected 512MiB VRAM
[ 1075.303257] [drm] nouveau 0000:01:00.0: 512 MiB GART (aperture)
[ 1075.303265] [drm] nouveau 0000:01:00.0: PGRAPH: unsupported chipset, please 
report!
[ 1075.303408] [drm] nouveau 0000:01:00.0: PGRAPH: unknown config: 2/0/0/0, 1
[ 1075.303462] PM: Adding info for No Bus:0000:01:00.0
[ 1075.304369] PM: Removing info for No Bus:0000:01:00.0
[ 1075.304393] [drm] nouveau 0000:01:00.0: failed to load fuc409d
[ 1075.311512] PM: Adding info for No Bus:card1-VGA-2
[ 1075.311550] PM: Adding info for No Bus:card1-HDMI-A-2
[ 1075.312121] PM: Adding info for i2c:i2c-11
[ 1075.312770] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[ 1075.312772] [drm] No driver support for vblank timestamp query.
[ 1075.312800] PM: Adding info for i2c:i2c-12
[ 1075.367384] [drm] nouveau 0000:01:00.0: allocated 1024x768 fb: 0x8020000, 
bo ffff88022a23f400
[ 1075.367415] PM: Adding info for No Bus:fb1
[ 1075.367432] fb1: nouveaufb frame buffer device
[ 1075.367436] [drm] Initialized nouveau 0.0.16 20090420 for 0000:01:00.0 on 
minor 1

=== DSDT.dsl
Method (_DSM, 4, NotSerialized)
{
	If (And (BRID, One))
	{
		If (LEqual (Arg0, Buffer (0x10)
				{
					/* 0000 */    0xF8, 0xD8, 0x86, 0xA4, 0xDA, 0x0B, 
0x1B, 0x47, 
					/* 0008 */    0xA7, 0x2B, 0x60, 0x42, 0xA6, 0xB5, 
0xBE, 0xE0
				}))
		{
			P8XH (Zero, 0xF5)
			Return (NVOP)
			Arg0
			Arg1
			Arg2
			Arg3
		}

		If (LEqual (Arg0, Buffer (0x10)
				{
					/* 0000 */    0x75, 0x0B, 0xA5, 0xD4, 0xC7, 0x65, 
0xF7, 0x46, 
					/* 0008 */    0xBF, 0xB7, 0x41, 0x51, 0x4C, 0xEA, 
0x02, 0x44
				}))
		{
			Return (NV3D (Arg0, Arg1, Arg2, Arg3))
		}
	}
	Else
	{
		Return (0x80000002)
	}
}

=== SSDT2.dsl
Method (_DSM, 4, NotSerialized)
{
	If (LEqual (Arg0, Buffer (0x10)
			{
				/* 0000 */    0xD3, 0x73, 0xD8, 0x7E, 0xD0, 0xC2, 0x4F, 
0x4E, 
				/* 0008 */    0xA8, 0x54, 0x0F, 0x13, 0x17, 0xB0, 0x1C, 
0x2C
			}))
	{
		Return (One)
	}
	Else
	{
		Return (\_SB.PCI0.PEG0.PEGP._DSM)
		Arg0
		Arg1
		Arg2
		Arg3
	}
}