Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki On 11/08/17 13:57, Tomi Valkeinen wrote: > Hi Hans, > > On 02/08/17 11:53, Hans Verkuil wrote: >> From: Hans Verkuil <hans.verkuil@xxxxxxxxx> >> >> This patch series adds CEC support for the omap4. It is based on >> the 4.13-rc2 kernel with this patch series applied: >> >> http://www.spinics.net/lists/dri-devel/msg143440.html >> >> It is virtually identical to the first patch series posted in >> April: >> >> http://www.spinics.net/lists/dri-devel/msg138950.html >> >> The only two changes are in the Kconfig due to CEC Kconfig >> changes in 4.13 (it now selects CEC_CORE instead of depending on >> CEC_CORE) and a final patch was added adding a lost_hotplug op >> since for proper CEC support I have to know when the hotplug >> signal goes away. >> >> Tested with my Pandaboard. > > I'm doing some testing with this series on my panda. One issue I see is > that when I unload the display modules, I get: > > [ 75.180206] platform 58006000.encoder: enabled after unload, idling > [ 75.187896] platform 58001000.dispc: enabled after unload, idling > [ 75.198242] platform 58000000.dss: enabled after unload, idling > > So I think something is left enabled, most likely in the HDMI driver. I > haven't debugged this yet. > > The first time I loaded the modules I also got "operation stopped when > reading edid", but I haven't seen that since. Possibly not related to > this series. Sorry that I have had very little time to debug this. I rebased the cec code on top of the latest omapdrm patches, and tested on AM5 EVM (which is more or less equivalent to OMAP5 on the HDMI front). I get the following crash when I turn on my monitor, which causes a HPD irq. I'll continue looking at this as soon as I again find time, but I thought I'll share what I have at the moment. I've pushed the branch to: git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux.git 4.14/omapdrm-cec Tomi [ 34.640159] Unable to handle kernel NULL pointer dereference at virtual address 00000000 [ 34.648449] pgd = c0004000 [ 34.651249] [00000000] *pgd=00000000 [ 34.654921] Internal error: Oops: 80000007 [#1] PREEMPT SMP ARM [ 34.660879] Modules linked in: omapdrm drm_kms_helper drm connector_dvi panel_dsi_cm panel_dpi connector_analog_tv connector_hdmi encode r_tpd12s015 encoder_tfp410 omapdss omapdss_base snd_soc_omap_hdmi_audio cec cfbfillrect cfbimgblt cfbcopyarea [last unloaded: omapdss_base] [ 34.685482] CPU: 0 PID: 264 Comm: irq/248-tpd12s0 Not tainted 4.13.0-rc5-00626-gbf51300abae9 #99 [ 34.694314] Hardware name: Generic DRA74X (Flattened Device Tree) [ 34.700442] task: ed108140 task.stack: ed190000 [ 34.705002] PC is at 0x0 [ 34.707561] LR is at tpd_detect+0x3c/0x44 [encoder_tpd12s015] [ 34.713340] pc : [<00000000>] lr : [<bf200340>] psr: 600c0013 [ 34.719642] sp : ed191ee8 ip : ed191e68 fp : ed191efc [ 34.724897] r10: 00000001 r9 : ee2e0200 r8 : c01b45c8 [ 34.730153] r7 : ed10b064 r6 : 00000000 r5 : bf1d716c r4 : 00000000 [ 34.736716] r3 : 00000000 r2 : 00000000 r1 : ffffffff r0 : bf1d716c [ 34.743283] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none [ 34.750458] Control: 10c5387d Table: ad26406a DAC: 00000051 [ 34.756236] Process irq/248-tpd12s0 (pid: 264, stack limit = 0xed190218) [ 34.762976] Stack: (0xed191ee8 to 0xed192000) [ 34.767363] 1ee0: ed27e610 ed27e6d4 ed191f14 ed191f00 bf200388 bf200310 [ 34.775587] 1f00: ed10b040 ee2e0200 ed191f34 ed191f18 c01b433c bf200354 ed190000 00000001 [ 34.783812] 1f20: 00000000 ed10b064 ed191f74 ed191f38 c01b4660 c01b4324 c01b4318 ed10b040 [ 34.792036] 1f40: 00000000 c01b4418 ed191f74 ed1ebc80 00000000 ed392500 ed190000 ed10b040 [ 34.800261] 1f60: ed1ebcb8 ed24fb08 ed191fac ed191f78 c0163e60 c01b4504 00000000 c01b44f8 [ 34.808486] 1f80: ed191fac ed392500 c0163d30 00000000 00000000 00000000 00000000 00000000 [ 34.816710] 1fa0: 00000000 ed191fb0 c0108af0 c0163d3c 00000000 00000000 00000000 00000000 [ 34.824934] 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 34.833157] 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000 [ 34.841376] Backtrace: [ 34.843861] [<bf200304>] (tpd_detect [encoder_tpd12s015]) from [<bf200388>] (tpd_hpd_isr+0x40/0x68 [encoder_tpd12s015]) [ 34.854701] r5:ed27e6d4 r4:ed27e610 [ 34.858310] [<bf200348>] (tpd_hpd_isr [encoder_tpd12s015]) from [<c01b433c>] (irq_thread_fn+0x24/0x5c) [ 34.867667] r5:ee2e0200 r4:ed10b040 [ 34.871270] [<c01b4318>] (irq_thread_fn) from [<c01b4660>] (irq_thread+0x168/0x254) [ 34.878970] r7:ed10b064 r6:00000000 r5:00000001 r4:ed190000 [ 34.884670] [<c01b44f8>] (irq_thread) from [<c0163e60>] (kthread+0x130/0x174) [ 34.891847] r10:ed24fb08 r9:ed1ebcb8 r8:ed10b040 r7:ed190000 r6:ed392500 r5:00000000 [ 34.899719] r4:ed1ebc80 [ 34.902280] [<c0163d30>] (kthread) from [<c0108af0>] (ret_from_fork+0x14/0x24) [ 34.909544] r10:00000000 r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:c0163d30 [ 34.917415] r4:ed392500 [ 34.919969] Code: bad PC value [ 34.923157] ---[ end trace 81cba660da396e25 ]--- [ 34.927828] genirq: exiting task "irq/248-tpd12s0" (264) is an active IRQ thread (irq 248)