[PATCH v3 0/4] omapdrm: Fix runtime PM issues at module load and unload time
Tomi Valkeinen
tomi.valkeinen at ti.com
Mon Nov 12 10:05:53 UTC 2018
On 10/11/18 13:16, Laurent Pinchart wrote:
> Hello,
>
> This series fixes crashes in the omapdss driver at both load and unload
> time, due to runtime PM problems related to probe deferral. The bugs got
> introduced in v4.20-rc, this should thus be considered as v4.20 fixes.
>
> At the core of the problem comes commit 27d624527d99 ("drm/omap: dss:
> Acquire next dssdev at probe time") which can cause probe deferral for
> the DSS when the encoder and panel modules are not loaded yet. As the
> omapdss module contains drivers for the DSS and all its children, this
> results in the internal encoders being probed before the DSS. Missing
> runtime PM handling around register access then caused imprecise
> external aborts.
>
> Patch 1/4 moves population of the DSS children from arch code to the
> omapdss driver. This prevents the DSS children from being probed before
> the DSS. The change can be considered as a workaround in the sense that
> runtime PM of the DSS children should operate correctly even when the
> DSS probe fail. However, given that reducing the amount of arch code is
> an improvement in itself, I believe the solution to be acceptable.
>
> Patches 2/4 and 3/4 then ensure that the HDMI4 and DSI devices are
> active at bind and probe time respectively, in order to access hardware
> registers there.
>
> Patch 4/4 finally fixes the internal encoders crash in their runtime PM
> handlers by moving DISPC runtime PM state management to omapdrm. This is
> the biggest change compared to v3 that went for a less intrusive (in my
> opinion at least) workaround. As Tomi and Tony were in favour of a real
> fix instead of a workaround, I gave the RFC fix more testing on
> Beagleboard, Pandaboard and AM57xx EVM and concluded it should be safe.
>
> Patch 1/4 touches both the mach-omap2 and omapdss, and has been acked by
> Tony to be merged through the DRM tree.
>
> Laurent Pinchart (4):
> drm/omap: Populate DSS children in omapdss driver
> drm/omap: hdmi4: Ensure the device is active during bind
> drm/omap: dsi: Ensure the device is active during probe
> drm/omap: Move DISPC runtime PM handling to omapdrm
>
> arch/arm/mach-omap2/display.c | 111 +++++++++++++---------------
> drivers/gpu/drm/omapdrm/dss/dsi.c | 14 ++--
> drivers/gpu/drm/omapdrm/dss/dss.c | 11 ++-
> drivers/gpu/drm/omapdrm/dss/hdmi4.c | 37 +++-------
> drivers/gpu/drm/omapdrm/dss/hdmi5.c | 27 -------
> drivers/gpu/drm/omapdrm/dss/venc.c | 7 --
> drivers/gpu/drm/omapdrm/omap_crtc.c | 6 ++
> 7 files changed, 83 insertions(+), 130 deletions(-)
Thanks, looks good to me. I'll push to drm-misc-fixes.
Tomi
--
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
More information about the dri-devel
mailing list