https://bugzilla.kernel.org/show_bug.cgi?id=79071
Bug ID: 79071 Summary: Hang with dpm radeon hd 5750, pcie 1.1 motherboard Product: Drivers Version: 2.5 Kernel Version: 3.16-rc2 (all dpm kernels) Hardware: x86-64 OS: Linux Tree: Mainline Status: NEW Severity: normal Priority: P1 Component: Video(DRI - non Intel) Assignee: drivers_video-dri@kernel-bugs.osdl.org Reporter: jonathan@unbiased.name Regression: No
Created attachment 141161 --> https://bugzilla.kernel.org/attachment.cgi?id=141161&action=edit dmesg
New bug report but problem been around since start of dpm code. Only now tried out few more tests. I think (without certainty) underlying cause is the old motherboard. (Have no other system to swap to.)
System runs stable until running games. Found cogs a good test case as it usually hangs quickly on the menu.
/sys/class/drm/card0/device/power_dpm_force_performance_level No problems when low. Set to high (ie not dynamic) still hangs in games.
Tried (modified for cypress_dpm.c) https://bugs.freedesktop.org/attachment.cgi?id=86424 no fix.
Setting eg_pi->vddci_control = false; Working so far.
Any refined patch to test much appreciated.
https://bugzilla.kernel.org/show_bug.cgi?id=79071
Alex Deucher alexdeucher@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |alexdeucher@gmail.com
--- Comment #1 from Alex Deucher alexdeucher@gmail.com --- Does it only hang when forced to high or does that just make it happen sooner? Do you get hangs when it's set to auto? What makes you think it's the motherboard?
https://bugzilla.kernel.org/show_bug.cgi?id=79071
--- Comment #2 from Jonathan Howard jonathan@unbiased.name --- Both high and auto appear to be same. Lack of other reports for the card, with me running on pcie v1 motherboard (card supports v2) give a hint (but not certain) probable cause.
https://bugzilla.kernel.org/show_bug.cgi?id=79071
--- Comment #3 from Jonathan Howard jonathan@unbiased.name --- i fixed it.
diff --git a/drivers/gpu/drm/radeon/cypress_dpm.c b/drivers/gpu/drm/radeon/cypress_dpm.c index cf783fc..cf77719 100644 --- a/drivers/gpu/drm/radeon/cypress_dpm.c +++ b/drivers/gpu/drm/radeon/cypress_dpm.c @@ -1551,7 +1551,7 @@ int cypress_populate_smc_voltage_tables(struct radeon_device *rdev,
table->voltageMaskTable.highMask[RV770_SMC_VOLTAGEMASK_VDDCI] = 0; table->voltageMaskTable.lowMask[RV770_SMC_VOLTAGEMASK_VDDCI] = - cpu_to_be32(eg_pi->vddc_voltage_table.mask_low); + cpu_to_be32(eg_pi->vddci_voltage_table.mask_low); }
return 0;
https://bugzilla.kernel.org/show_bug.cgi?id=79071
Dieter Nützel Dieter@nuetzel-hh.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |Dieter@nuetzel-hh.de
--- Comment #4 from Dieter Nützel Dieter@nuetzel-hh.de --- (In reply to Jonathan Howard from comment #3)
i fixed it.
diff --git a/drivers/gpu/drm/radeon/cypress_dpm.c b/drivers/gpu/drm/radeon/cypress_dpm.c index cf783fc..cf77719 100644 --- a/drivers/gpu/drm/radeon/cypress_dpm.c +++ b/drivers/gpu/drm/radeon/cypress_dpm.c @@ -1551,7 +1551,7 @@ int cypress_populate_smc_voltage_tables(struct radeon_device *rdev,
table->voltageMaskTable.highMask[RV770_SMC_VOLTAGEMASK_VDDCI] = 0; table->voltageMaskTable.lowMask[RV770_SMC_VOLTAGEMASK_VDDCI] =
cpu_to_be32(eg_pi->vddc_voltage_table.mask_low);
cpu_to_be32(eg_pi->vddci_voltage_table.mask_low); } return 0;
Good catch Jonathan!
It seems to me, that this is NEEDED in ni_dpm.c, too (copy paste thing?) si_dpm.c IS OK.
--- ni_dpm.c.orig 2014-06-22 07:02:54.000000000 +0200 +++ ni_dpm.c 2014-06-28 20:58:02.972099242 +0200 @@ -1315,7 +1315,7 @@
table->voltageMaskTable.highMask[NISLANDS_SMC_VOLTAGEMASK_VDDCI] = 0; table->voltageMaskTable.lowMask[NISLANDS_SMC_VOLTAGEMASK_VDDCI] = - cpu_to_be32(eg_pi->vddc_voltage_table.mask_low); + cpu_to_be32(eg_pi->vddci_voltage_table.mask_low); } }
https://bugzilla.kernel.org/show_bug.cgi?id=79071
Jonathan Howard jonathan@unbiased.name changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |CODE_FIX
--- Comment #5 from Jonathan Howard jonathan@unbiased.name --- Patched and working 3.16-rc4 3.15.5 3.14.12
dri-devel@lists.freedesktop.org