[RFC/PATCH] drm/omap: Move DISPC runtime PM handling to omapdrm

Laurent Pinchart laurent.pinchart at ideasonboard.com
Wed Nov 7 13:27:32 UTC 2018


Hi Tomi,

On Tuesday, 6 November 2018 14:47:51 EET Tomi Valkeinen wrote:
> On 06/11/18 11:22, Tomi Valkeinen wrote:
> > On 05/11/18 23:46, Laurent Pinchart wrote:
> >> On Monday, 5 November 2018 22:14:46 EET Tony Lindgren wrote:
> >>> * Laurent Pinchart <laurent.pinchart at ideasonboard.com> [181105 19:23]:
> >>>> This patch applies on top of the "[PATCH v2 0/4] omapdrm: Fix runtime
> >>>> PM issues at module load and unload time" series. It demonstrates what
> >>>> I think is the proper long term fix for the issue addressed by patch
> >>>> 4/4. Due to its nature, I don't think this patch should be applied for
> >>>> v4.20 as it qualifies for very careful testing, hence my proposal to
> >>>> fix the runtime PM problem with 4/4 and to queue this patch for v4.21.
> >>> 
> >>> To me this seems like a less risky fix compared to conditional
> >>> runtime PM calls in patch 4. Conditional calls with usecounts seem
> >>> to always break one way or another.. So would be nice to go with
> >>> this one if possible.
> >> 
> >> If Tomi is fine with this, and after careful testing, I have no issue
> >> with merging this patch squashed with 4/4 for 4.20-rc.
> > 
> > I didn't try it yet, but it makes sense and looks good to me, so I think
> > we should try to go with this one instead of the 4/4.

I've tested the patch on both Pandaboard and AM57xx EVM without any noticing 
any issue. I would appreciate if you could test it as well before we deem it 
fit for v4.20.

> > Btw, Peter also reported this one on linux-next on beagle-xm:
> > 
> > http://horus.dhcp.ti.com:7777/epowaxifuk.go
> 
> Ops, didn't notice that was an internal pastebin. Here's the crash:
> 
> [  180.053192] Unhandled fault: external abort on non-linefetch (0x1028) at
> 0xfa050040
> [  180.060913] pgd = 42d2749f
> [  180.063629] [fa050040] *pgd=48011452(bad)
> [  180.067687] Internal error: : 1028 [#1] PREEMPT SMP ARM
> [  180.072937] Modules linked in:
> [  180.076019] CPU: 0 PID: 3072 Comm: halt Not tainted
> 4.19.0-rc8-next-20181019-00090-gec9a27467a7f #2
> [  180.085083] Hardware name: Generic OMAP36xx (Flattened Device Tree)
> [  180.091400] PC is at dss_set_dac_pwrdn_bgz+0x4/0x18
> [  180.096313] LR is at venc_display_disable+0x2c/0x50
> [  180.101196] pc : [<c0558e98>]    lr : [<c0564d94>]    psr: 60070013
> [  180.107513] sp : da405e30  ip : db3b4d80  fp : c0b619d4
> [  180.112762] r10: c0b619e4  r9 : c0e76760  r8 : db1cf844
> [  180.118011] r7 : c0ea8870  r6 : db758000  r5 : db758008  r4 : db758060
> [  180.124542] r3 : fa050c00  r2 : fa050000  r1 : 00000000  r0 : db709c00
> [  180.131103] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment
> none
> [  180.138275] Control: 10c5387d  Table: 9a138019  DAC: 00000051
> [  180.144042] Process halt (pid: 3072, stack limit = 0x785a09e7)
> [  180.149902] Stack: (0xda405e30 to 0xda406000)

[snip]

> [  180.277587] [<c0558e98>] (dss_set_dac_pwrdn_bgz) from [<c0564d94>]
> (venc_display_disable+0x2c/0x50)
> [  180.286682] [<c0564d94>] (venc_display_disable) from [<c05735d4>]
> (tvc_disable+0x28/0x34)
> [  180.294921] [<c05735d4>] (tvc_disable) from [<c05585dc>]
> (dss_shutdown+0x34/0x38)
> [  180.302429] [<c05585dc>] (dss_shutdown) from [<c058a3f4>]
> (device_shutdown+0x160/0x20c)
> [  180.310485] [<c058a3f4>] (device_shutdown) from [<c0156b44>]
> (kernel_power_off+0x2c/0x70)
> [  180.318695] [<c0156b44>] (kernel_power_off) from [<c0156d00>]
> (sys_reboot+0x130/0x1e8)
> [  180.326660] [<c0156d00>] (sys_reboot) from [<c0101000>]
> (ret_fast_syscall+0x0/0x54)
> [  180.334350] Exception stack(0xda405fa8 to 0xda405ff0)
> [  180.339447] 5fa0:                   00000000 00000002 fee1dead 28121969
> 4321fedc 00022958
> [  180.347656] 5fc0: 00000000 00000002 00000000 00000058 00000000 00000001
> 00000000 00000000
> [  180.355865] 5fe0: 50313900 beb4ec78 00011158 b6e4e39c
> [  180.360961] Code: e5821040 e12fff1e e7f001f2 e5902004 (e5923040)
> [  180.367065] ---[ end trace 8d96f3954c4321c5 ]---
> [  180.371856] In-band Error seen by MPU  at address 0
> [  180.376739] ------------[ cut here ]------------
> [  180.381408] WARNING: CPU: 0 PID: 3072 at drivers/bus/omap_l3_smx.c:166
> omap3_l3_app_irq+0xac/0x118 [  180.390411] Modules linked in:
> [  180.393463] CPU: 0 PID: 3072 Comm: halt Tainted: G      D          
> 4.19.0-rc8-next-20181019-00090-gec9a27467a7f

I dove into my boxes of development board and managed to find a Beagleboard-
xM. After dusting it and being amazed it was still working, I tested v4.20-rc1 
and couldn't reproduce the above issue, neither with nor without the 
regression fixes.

-- 
Regards,

Laurent Pinchart





More information about the dri-devel mailing list