Hi Hans,
On 24/03/16 23:20, Hans Verkuil wrote:
Hi Tomi,
I hope you (or someone else on this list) can help me find the problem in this code.
I am working on a kernel framework for HDMI CEC (see https://lwn.net/Articles/680942/). In order to get as much experience with different devices as possible I am trying to implement it on my omap4430 Pandaboard. The big problem I am facing is that the CEC interrupts come in through the HDMI_IRQ_CORE interrupt, and that just refuses to trigger.
The code below adds support for this core interrupt and it is supposed to trigger it using the Software Induced interrupt to keep the code as simple as possible.
So this irq is just for testing?
On boot I get this debug line from the pr_info in my code:
irqstat 02000000 wp_irq 06000001 raw 20010000 intr_state 00000001 intr1 00000080 unmask1 00000080 intr_ctrl 0000000a
As far as I can see everything looks perfectly fine, except for the fact that bit 0 of the irqstat is stubbornly 0.
This is using kernel 4.5 with only this patch applied.
What am I missing?
Set SYS_CTRL1:PD to 1 (I presume you have the NDA HDMI TRM?).
Apparently we set it always to 0 in hdmi4_core.c:hdmi_core_powerdown_disable(), but never enable it. I guess it only affects core irqs, so there have been no side effects.
But it would make sense to either have a matching call in the enable path, or then just set it to 0 when initializing the IP.
The reward for the right answer will be HDMI CEC support for omap4 (and any other TI device with the same CEC IP).
Ok. When is it ready? ;)
Tomi