Re: [PATCH v3 0/4] omapdrm: Fix runtime PM issues at module load and unload time

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux