[Bug 115321] radeon runpm falsely disabled on Clevo P170EM
bugzilla-daemon at bugzilla.kernel.org
bugzilla-daemon at bugzilla.kernel.org
Sat Jul 16 13:20:57 UTC 2016
https://bugzilla.kernel.org/show_bug.cgi?id=115321
--- Comment #10 from Christoph Haag <haagch.christoph at googlemail.com> ---
Well, it does not help. I wanted to get you some more info, so I inserted some
printks:
in radeon_atpx_handler.c
static void radeon_atpx_parse_functions(struct radeon_atpx_functions *f, u32
mask)
{
printk(KERN_ERR "ATPX mask: %u\n", mask);
printk(KERN_ERR "ATPX power control supported: %u\n",
ATPX_POWER_CONTROL_SUPPORTED);
printk(KERN_ERR "mask & ATPX_POWER_CONTROL_SUPPORTED: %u\n", mask &
ATPX_POWER_CONTROL_SUPPORTED);
printk(KERN_ERR "!!(mask & ATPX_POWER_CONTROL_SUPPORTED): %u\n",
!!(mask & ATPX_POWER_CONTROL_SUPPORTED));
in radeon_device.c
printk(KERN_ERR "rdev->flags: %u\n", rdev->flags);
printk(KERN_ERR "rdev->flags & RADEON_IS_PX: %u\n", rdev->flags &
RADEON_IS_PX);
printk(KERN_ERR "radeon_has_atpx_dgpu_power_cntl(): %u\n",
radeon_has_atpx_dgpu_power_cntl());
if ((rdev->flags & RADEON_IS_PX) && radeon_has_atpx_dgpu_power_cntl())
runtime = true;
Then I booted and got this:
[ 6.235984] rdev->flags: 39911477
[ 6.238221] rdev->flags & RADEON_IS_PX: 33554432
[ 6.239947] radeon_has_atpx_dgpu_power_cntl(): 0
[ 6.241572] vga_switcheroo: enabled
[ 6.241657] ATPX version 1, functions 0x00000033
[ 6.241659] ATPX mask: 51
[ 6.243153] ATPX power control supported: 2
[ 6.244508] mask & ATPX_POWER_CONTROL_SUPPORTED: 2
[ 6.245649] !!(mask & ATPX_POWER_CONTROL_SUPPORTED): 1
Uhm... so, does that mean the ATPX BIOS version has been fine in the first
place and that radeon_has_atpx_dgpu_power_cntl() returns 0, just because the
check whether to enable runpm is done BEFORE the atpx stuff is even parsed?
I didn't want to trace everything back to the inits, so I just put another
radeon_atpx_init(); call just before the runpm check, removed static from the
function and added a forward declaration
int radeon_atpx_init(void);
...
radeon_atpx_init();
printk(KERN_ERR "rdev->flags: %u\n", rdev->flags);
printk(KERN_ERR "rdev->flags & RADEON_IS_PX: %u\n", rdev->flags &
RADEON_IS_PX);
printk(KERN_ERR "radeon_has_atpx_dgpu_power_cntl(): %u\n",
radeon_has_atpx_dgpu_power_cntl());
if ((rdev->flags & RADEON_IS_PX) && radeon_has_atpx_dgpu_power_cntl()) {
runtime = true;
printk(KERN_ERR "runpm is enabled. Yay\n");
}
And I got
[ 6.223693] ATPX mask: 51
[ 6.224823] ATPX power control supported: 2
[ 6.225937] mask & ATPX_POWER_CONTROL_SUPPORTED: 2
[ 6.227140] !!(mask & ATPX_POWER_CONTROL_SUPPORTED): 1
[ 6.228198] rdev->flags: 39911477
[ 6.229274] rdev->flags & RADEON_IS_PX: 33554432
[ 6.230181] radeon_has_atpx_dgpu_power_cntl(): 1
[ 6.231039] runpm is enabled. Yay
[ 6.231889] vga_switcheroo: enabled
[ 6.231956] ATPX version 1, functions 0x00000033
[ 6.231957] ATPX mask: 51
[ 6.232267] usbcore: registered new interface driver btusb
[ 6.232932] ATPX power control supported: 2
[ 6.233849] mask & ATPX_POWER_CONTROL_SUPPORTED: 2
[ 6.234717] !!(mask & ATPX_POWER_CONTROL_SUPPORTED): 1
YES! IT DOES!
Damn!
Thank you so much for asking a follow up question so I can stop telling people
that the BIOS on several laptops is broken and looking like an idiot.
On the other side: It probably would have been a good idea to verify that there
IS hardware where it actually works as intended before declaring the BIOS to be
at fault.
--
You are receiving this mail because:
You are watching the assignee of the bug.
More information about the dri-devel
mailing list