[PATCH 0/6] drm/gma500: 1 fix + further cleanups
Hans de Goede
hdegoede at redhat.com
Sat Sep 17 12:31:30 UTC 2022
Hi Patrik,
On 9/14/22 09:50, Patrik Jakobsson wrote:
> On Fri, Sep 9, 2022 at 1:56 PM Hans de Goede <hdegoede at redhat.com> wrote:
>>
>> Hi Patrik,
>>
>> Here is another gma500 patch-series with one more bugfix and a bunch
>> of other cleanups of stuff which I noticed while doing the previous
>> set of bugfixes.
>>
>
> Hi Hans, nice cleanups!
>
> I'm rather busy at the moment so you can commit these yourself to
> drm-misc-next if you like.
>
> "drm/gma500: Wait longer for the GPU to power-down" can go through
> drm-misc-fixes if you prefer. It fixed the timeout message on two of
> my CDV machines but I never saw an actual problem from the timeouts.
>
> For the entire series:
> Acked-by: Patrik Jakobsson <patrik.r.jakobsson at gmail.com>
Thanks.
I'm pushing these out to drm-misc-next now, but with some small
changes:
1. I have dropped the "drm/gma500: Wait longer for the GPU to power-down"
patch I'm still seeing timeouts even if I increase the wait time to
a full seconds. I believe that the actual issue is this line:
dev_priv->apm_base = CDV_MSG_READ32(domain, PSB_PUNIT_PORT, PSB_APMBA);
sometimes failing. When the timeout happens I see apm_base is set to 0 and
reading apm_base + cmd / sts offset returns bogus values.
I have yet to have a successful boot where the timeout does not happen
since I have been poking at this (it seems success/fail wrt the timeout
is random). But I suspect that with a successful boot apm_base will not
be 0 and that the problem is there. To be continued...
2. For the "drm/gma500: Rewrite power management code" I noticed the
following error during further testing (for the actual backlight changes):
[ 12.292509] gma500 0000:00:02.0: Unbalanced pm_runtime_enable!
The problem is that pci_pm_init() which the PCI core runs for each
device already does:
pm_runtime_forbid(&dev->dev);
pm_runtime_set_active(&dev->dev);
pm_runtime_enable(&dev->dev);
So the pm_runtime_enable() call in "drm/gma500: Rewrite power management code"
was a second enable call and as such was not necessary. So I'm going to
squash in the following small fix while pushing this out:
diff --git a/drivers/gpu/drm/gma500/power.c b/drivers/gpu/drm/gma500/power.c
index 62d2cc1923f1..0080b692dc3e 100644
--- a/drivers/gpu/drm/gma500/power.c
+++ b/drivers/gpu/drm/gma500/power.c
@@ -61,10 +61,11 @@ void gma_power_init(struct drm_device *dev)
* To fix this we need to call pm_runtime_get() once for each active
* pipe at boot and then put() / get() for each pipe disable / enable
* so that the device gets runtime suspended when no pipes are active.
+ * Once this is in place the pm_runtime_get() below should be replaced
+ * by a pm_runtime_allow() call to undo the pm_runtime_forbid() from
+ * pci_pm_init().
*/
pm_runtime_get(dev->dev);
- pm_runtime_set_active(dev->dev); /* Must be done before pm_runtime_enable()! */
- pm_runtime_enable(dev->dev);
dev_priv->pm_initialized = true;
}
@@ -83,7 +83,6 @@ void gma_power_uninit(struct drm_device *dev)
if (!dev_priv->pm_initialized)
return;
- pm_runtime_disable(dev->dev);
pm_runtime_put_noidle(dev->dev);
}
As you can see all the removed lines are already taken care of by the
PCI core, so this squashed in change really is a no-op (other then
that it silences the "Unbalanced pm_runtime_enable!" message).
Regards,
Hans
>
>
>> Regards,
>>
>> Hans
>>
>>
>> Hans de Goede (6):
>> drm/gma500: Wait longer for the GPU to power-down
>> drm/gma500: Remove runtime_allowed dead code in psb_unlocked_ioctl()
>> drm/gma500: Remove never set dev_priv->rpm_enabled flag
>> drm/gma500: Remove a couple of not useful function wrappers
>> drm/gma500: Rewrite power management code
>> drm/gma500: Remove unnecessary suspend/resume wrappers
>>
>> drivers/gpu/drm/gma500/cdv_device.c | 2 +-
>> drivers/gpu/drm/gma500/gma_display.c | 19 +--
>> drivers/gpu/drm/gma500/gma_display.h | 2 -
>> drivers/gpu/drm/gma500/oaktrail_lvds.c | 1 -
>> drivers/gpu/drm/gma500/power.c | 156 +++++--------------------
>> drivers/gpu/drm/gma500/power.h | 18 ---
>> drivers/gpu/drm/gma500/psb_drv.c | 35 +-----
>> drivers/gpu/drm/gma500/psb_drv.h | 7 +-
>> drivers/gpu/drm/gma500/psb_irq.c | 15 ++-
>> 9 files changed, 41 insertions(+), 214 deletions(-)
>>
>> --
>> 2.37.2
>>
>
More information about the dri-devel
mailing list