[PATCH v2 00/50] drm/omap: Replace custom display drivers with drm_bridge and drm_panel
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Mon Aug 26 13:51:41 UTC 2019
Hi Tomi,
On Mon, Aug 26, 2019 at 03:15:23PM +0300, Tomi Valkeinen wrote:
> On 20/08/2019 04:16, Laurent Pinchart wrote:
>
> > The patches can be found at
> >
> > git://linuxtv.org/pinchartl/media.git omapdrm/bridge/devel
>
> I took your branch, booted AM5 EVM (I see you had the hack dts patch in your branch), and:
>
> insmod nfs/work/linux/drivers/media/cec/cec.ko
> insmod nfs/work/linux/drivers/video/fbdev/core/cfbcopyarea.ko
> insmod nfs/work/linux/drivers/video/fbdev/core/cfbimgblt.ko
> insmod nfs/work/linux/drivers/video/fbdev/core/cfbfillrect.ko
> insmod nfs/work/linux/drivers/gpu/drm/drm_panel_orientation_quirks.ko
> insmod nfs/work/linux/drivers/gpu/drm/drm.ko
> insmod nfs/work/linux/drivers/gpu/drm/drm_kms_helper.ko
> insmod nfs/work/linux/drivers/gpu/drm/bridge/ti-tfp410.ko
> insmod nfs/work/linux/drivers/gpu/drm/bridge/sii902x.ko
> insmod nfs/work/linux/drivers/gpu/drm/bridge/tc358767.ko
> insmod nfs/work/linux/drivers/gpu/drm/panel/panel-simple.ko
> [ 25.487002] panel-simple display: display supply power not found, using dummy regulator
> [ 25.495241] ------------[ cut here ]------------
> [ 25.499900] WARNING: CPU: 0 PID: 303 at drivers/gpu/drm/panel/panel-simple.c:378 panel_simple_probe+0x34c/0x3b4 [panel_simple]
How am I expected to sneak patches in if you test them ? :-)
This has been introduced by a recent rebase, and I've only tested the
series on the pandaboard since then. It looks like the problem comes
from
commit b8a2948fa2b3a5a6da67fd57aa01c7318d795125
Author: Sean Paul <seanpaul at chromium.org>
Date: Thu Jul 11 13:34:53 2019 -0700
drm/panel: simple: Add ability to override typical timing
which breaks our out-of-tree DT. As a short term fix I can simply drop
the panel timings from DT, but I think this issue can affect more
boards, and should thus probably be addressed on the kernel side.
One option is to patch osddisplays_osd070t1718_19ts to specify timings
instead of a fixed mode, but I don't have access to the panel's
datasheet. I'm also concerned this wouldn't scale.
Another option is to avoid the WARN_ON() if the timings parsed from DT
are identifical to the timings in the panel-simple driver. Sean, what's
your opinion ?
> [ 25.511691] Modules linked in: panel_simple(+) tc358767 sii902x ti_tfp410 drm_kms_helper drm drm_panel_orientation_quirks cfbfillrect cfbimgblt cfbcopyarea cec
> [ 25.526341] CPU: 0 PID: 303 Comm: insmod Tainted: G W 5.3.0-rc3-01400-g27515343445e #1
> [ 25.535602] Hardware name: Generic DRA74X (Flattened Device Tree)
> [ 25.541740] [<c01139b4>] (unwind_backtrace) from [<c010da68>] (show_stack+0x10/0x14)
> [ 25.549526] [<c010da68>] (show_stack) from [<c0941138>] (dump_stack+0xa8/0xc4)
> [ 25.556789] [<c0941138>] (dump_stack) from [<c013a57c>] (__warn.part.3+0xa8/0xd4)
> [ 25.564309] [<c013a57c>] (__warn.part.3) from [<c013a700>] (warn_slowpath_null+0x40/0x4c)
> [ 25.572540] [<c013a700>] (warn_slowpath_null) from [<bf0b86f0>] (panel_simple_probe+0x34c/0x3b4 [panel_simple])
> [ 25.582699] [<bf0b86f0>] (panel_simple_probe [panel_simple]) from [<c05f845c>] (platform_drv_probe+0x48/0x98)
> [ 25.592664] [<c05f845c>] (platform_drv_probe) from [<c05f5f4c>] (really_probe+0x100/0x410)
> [ 25.600969] [<c05f5f4c>] (really_probe) from [<c05f6428>] (driver_probe_device+0x6c/0x1b4)
> [ 25.609273] [<c05f6428>] (driver_probe_device) from [<c05f67c0>] (device_driver_attach+0x58/0x60)
> [ 25.618188] [<c05f67c0>] (device_driver_attach) from [<c05f686c>] (__driver_attach+0xa4/0x148)
> [ 25.626843] [<c05f686c>] (__driver_attach) from [<c05f3f24>] (bus_for_each_dev+0x70/0xb4)
> [ 25.635060] [<c05f3f24>] (bus_for_each_dev) from [<c05f5268>] (bus_add_driver+0x1a8/0x200)
> [ 25.643365] [<c05f5268>] (bus_add_driver) from [<c05f7414>] (driver_register+0x74/0x108)
> [ 25.651506] [<c05f7414>] (driver_register) from [<bf0aa010>] (panel_simple_init+0x10/0x1000 [panel_simple])
> [ 25.661634] ---[ end trace 1bb774fc77a9c1a2 ]---
> [ 25.666414] panel-simple display: Reject override mode: panel has a fixed mode
> insmod nfs/work/linux/drivers/gpu/drm/omapdrm/dss/omapdss-base.ko
> insmod nfs/work/linux/drivers/gpu/drm/omapdrm/dss/omapdss.ko
> [ 25.846736] DSS: OMAP DSS rev 6.1
> insmod nfs/work/linux/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.ko
> insmod nfs/work/linux/drivers/gpu/drm/omapdrm/omapdrm.ko
> [ 26.274382] dmm 4e000000.dmm: workaround for errata i878 in use
> [ 26.281981] dmm 4e000000.dmm: initialized all PAT entries
> [ 26.289408] ------------[ cut here ]------------
> [ 26.294298] WARNING: CPU: 1 PID: 64 at lib/list_debug.c:28 __list_add_valid+0x74/0xb0
> [ 26.302166] list_add corruption. prev->next should be next (bf0692bc), but was 6b6b6b6b. (prev=eadcd384).
> [ 26.314711] Modules linked in: omapdrm panel_dsi_cm omapdss omapdss_base panel_simple tc358767 sii902x ti_tfp410 drm_kms_helper drm drm_panel_orientation_quirks cfbf
> illrect cfbimgblt cfbcopyarea cec
> # [ 26.332661] CPU: 1 PID: 64 Comm: kworker/1:1 Tainted: G W 5.3.0-rc3-01400-g27515343445e #1
> [ 26.342354] Hardware name: Generic DRA74X (Flattened Device Tree)
> [ 26.348483] Workqueue: events deferred_probe_work_func
> [ 26.353658] [<c01139b4>] (unwind_backtrace) from [<c010da68>] (show_stack+0x10/0x14)
> [ 26.361445] [<c010da68>] (show_stack) from [<c0941138>] (dump_stack+0xa8/0xc4)
> [ 26.368707] [<c0941138>] (dump_stack) from [<c013a57c>] (__warn.part.3+0xa8/0xd4)
> [ 26.376229] [<c013a57c>] (__warn.part.3) from [<c013a604>] (warn_slowpath_fmt+0x5c/0x88)
> [ 26.384360] [<c013a604>] (warn_slowpath_fmt) from [<c04e5ef4>] (__list_add_valid+0x74/0xb0)
> [ 26.392806] [<c04e5ef4>] (__list_add_valid) from [<bf037c34>] (drm_bridge_add+0x40/0x6c [drm])
> [ 26.401545] [<bf037c34>] (drm_bridge_add [drm]) from [<bf0e2a0c>] (hdmi5_probe+0x17c/0x264 [omapdss])
> [ 26.410845] [<bf0e2a0c>] (hdmi5_probe [omapdss]) from [<c05f845c>] (platform_drv_probe+0x48/0x98)
> [ 26.419762] [<c05f845c>] (platform_drv_probe) from [<c05f5f4c>] (really_probe+0x100/0x410)
> [ 26.428068] [<c05f5f4c>] (really_probe) from [<c05f6428>] (driver_probe_device+0x6c/0x1b4)
> [ 26.436373] [<c05f6428>] (driver_probe_device) from [<c05f3ff8>] (bus_for_each_drv+0x7c/0xc4)
> [ 26.444938] [<c05f3ff8>] (bus_for_each_drv) from [<c05f5da4>] (__device_attach+0xc8/0x168)
> [ 26.453243] [<c05f5da4>] (__device_attach) from [<c05f4f80>] (bus_probe_device+0x84/0x8c)
> [ 26.461458] [<c05f4f80>] (bus_probe_device) from [<c05f54cc>] (deferred_probe_work_func+0x84/0xcc)
> [ 26.470463] [<c05f54cc>] (deferred_probe_work_func) from [<c0155c98>] (process_one_work+0x184/0x504)
> [ 26.479641] [<c0155c98>] (process_one_work) from [<c015691c>] (worker_thread+0x2c/0x51c)
> [ 26.487773] [<c015691c>] (worker_thread) from [<c015bd04>] (kthread+0x140/0x158)
> [ 26.495205] [<c015bd04>] (kthread) from [<c01010e8>] (ret_from_fork+0x14/0x2c)
> [ 26.502461] Exception stack(0xeaba3fb0 to 0xeaba3ff8)
> [ 26.507536] 3fa0: 00000000 00000000 00000000 00000000
> [ 26.515750] 3fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
> [ 26.523964] 3fe0: 00000000 00000000 00000000 00000000 00000013 00000000
> [ 26.531766] ---[ end trace 1bb774fc77a9c1a3 ]---
> [ 26.536482] 8<--- cut here ---
> [ 26.539550] Unable to handle kernel paging request at virtual address 6b6b6b67
> [ 26.546845] pgd = e9e66080
> [ 26.549651] [6b6b6b67] *pgd=00000000
> [ 26.553249] Internal error: Oops: 5 [#1] PREEMPT SMP ARM
> [ 26.558584] Modules linked in: omapdrm panel_dsi_cm omapdss omapdss_base panel_simple tc358767 sii902x ti_tfp410 drm_kms_helper drm drm_panel_orientation_quirks cfbf
> illrect cfbimgblt cfbcopyarea cec
> [ 26.576327] CPU: 1 PID: 64 Comm: kworker/1:1 Tainted: G W 5.3.0-rc3-01400-g27515343445e #1
> [ 26.585933] Hardware name: Generic DRA74X (Flattened Device Tree)
> [ 26.592057] Workqueue: events deferred_probe_work_func
> [ 26.597270] PC is at of_drm_find_bridge+0x38/0x7c [drm]
> [ 26.602519] LR is at 0x0
> [ 26.605063] pc : [<bf037bb0>] lr : [<00000000>] psr: 900b0013
> [ 26.611356] sp : eaba3de0 ip : eaba2000 fp : 00000013
> [ 26.616604] r10: c0ebcc98 r9 : bf0e83c8 r8 : eaf69120
> [ 26.621852] r7 : eaf69174 r6 : eaf69174 r5 : efde6760 r4 : 6b6b6b5b
> [ 26.628406] r3 : 6b6b6b6b r2 : 00000000 r1 : 00000000 r0 : bf0692bc
> [ 26.634964] Flags: NzcV IRQs on FIQs on Mode SVC_32 ISA ARM Segment none
> [ 26.642132] Control: 10c5387d Table: aafa806a DAC: 00000051
> [ 26.647904] Process kworker/1:1 (pid: 64, stack limit = 0xef0d19b6)
> [ 26.654195] Stack: (0xeaba3de0 to 0xeaba4000)
> [ 26.658575] 3de0: eaf69120 efde6760 eaf69174 bf0aab64 eaf69000 ea0e8810 00000000 bf0e2a54
> [ 26.666790] 3e00: 00002000 bf0f02fc eaf69000 ea0e8810 c0f13054 ea0e8810 00000000 bf0f2220
> [ 26.675005] 3e20: 00000000 00000000 bf0f2220 c05f845c ea0e8810 c0f13054 c0f13058 00000000
> [ 26.683219] 3e40: 00000000 c05f5f4c c05f666c ea0e8810 c0b95478 ea0e8810 bf0f2220 c05f666c
> [ 26.691432] 3e60: c0e05148 00000001 c0ebcc98 c0ebcc98 c0b95478 c05f6428 00000001 c05f6638
> [ 26.699647] 3e80: bf0f2220 00000000 eaba3ecc c05f666c c0e05148 00000001 c0ebcc98 c05f3ff8
> [ 26.707862] 3ea0: c0b95478 eb8e0b6c eafda3b8 db20362b ea0e8810 ea0e8810 ea0e8854 c0e05148
> [ 26.716076] 3ec0: c0e88e78 c05f5da4 ea0e8810 ea0e8810 00000001 db20362b eafda2d4 ea0e8810
> [ 26.724291] 3ee0: c0e89100 c0e88e78 c0e88e8c c05f4f80 eafda2d4 ea0e8810 c0e88e78 c05f54cc
> [ 26.732505] 3f00: c05f5448 c0e88ea0 ea884780 efd8ef80 efd92300 00000000 c0eb30b0 00000000
> [ 26.740719] 3f20: ffffe000 c0155c98 ea869800 efd8ef80 00000008 ea884780 ea884794 efd8ef80
> [ 26.748934] 3f40: 00000008 efd8ef98 c0e03d00 efd8ef80 ffffe000 c015691c eaaeca9c c095f020
> [ 26.757150] 3f60: eaaeca9c 00000000 eaaeca80 eaaecac0 eaba2000 ea884780 c01568f0 eb91feb4
> [ 26.765365] 3f80: eaaeca9c c015bd04 00000000 eaaecac0 c015bbc4 00000000 00000000 00000000
> [ 26.773580] 3fa0: 00000000 00000000 00000000 c01010e8 00000000 00000000 00000000 00000000
> [ 26.781794] 3fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
> [ 26.790009] 3fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
> [ 26.798278] [<bf037bb0>] (of_drm_find_bridge [drm]) from [<bf0aab64>] (omapdss_device_init_output+0x38/0x4d4 [omapdss_base])
> [ 26.809583] [<bf0aab64>] (omapdss_device_init_output [omapdss_base]) from [<bf0e2a54>] (hdmi5_probe+0x1c4/0x264 [omapdss])
> [ 26.820709] [<bf0e2a54>] (hdmi5_probe [omapdss]) from [<c05f845c>] (platform_drv_probe+0x48/0x98)
> [ 26.829627] [<c05f845c>] (platform_drv_probe) from [<c05f5f4c>] (really_probe+0x100/0x410)
> [ 26.837932] [<c05f5f4c>] (really_probe) from [<c05f6428>] (driver_probe_device+0x6c/0x1b4)
> [ 26.846236] [<c05f6428>] (driver_probe_device) from [<c05f3ff8>] (bus_for_each_drv+0x7c/0xc4)
> [ 26.854802] [<c05f3ff8>] (bus_for_each_drv) from [<c05f5da4>] (__device_attach+0xc8/0x168)
> [ 26.863106] [<c05f5da4>] (__device_attach) from [<c05f4f80>] (bus_probe_device+0x84/0x8c)
> [ 26.871323] [<c05f4f80>] (bus_probe_device) from [<c05f54cc>] (deferred_probe_work_func+0x84/0xcc)
> [ 26.880326] [<c05f54cc>] (deferred_probe_work_func) from [<c0155c98>] (process_one_work+0x184/0x504)
> [ 26.889503] [<c0155c98>] (process_one_work) from [<c015691c>] (worker_thread+0x2c/0x51c)
> [ 26.897634] [<c015691c>] (worker_thread) from [<c015bd04>] (kthread+0x140/0x158)
> [ 26.905065] [<c015bd04>] (kthread) from [<c01010e8>] (ret_from_fork+0x14/0x2c)
> [ 26.912318] Exception stack(0xeaba3fb0 to 0xeaba3ff8)
> [ 26.917393] 3fa0: 00000000 00000000 00000000 00000000
> [ 26.925607] 3fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
> [ 26.933821] 3fe0: 00000000 00000000 00000000 00000000 00000013 00000000
> [ 26.940469] Code: e5133004 e1550003 1a000003 ea00000b (e5133004)
> [ 26.946649] ---[ end trace 1bb774fc77a9c1a4 ]---
--
Regards,
Laurent Pinchart
More information about the dri-devel
mailing list