Hi Tomi, I did some more testing, and I discovered a bug in this code, but I am not sure how to solve it. On 04/14/2017 12:25 PM, Hans Verkuil wrote: > From: Hans Verkuil <hans.verkuil@xxxxxxxxx> > > Hook up the HDMI CEC support in the hdmi4 driver. > > It add the CEC irq handler, the CEC (un)init calls and tells the CEC > implementation when the physical address changes. > > Signed-off-by: Hans Verkuil <hans.verkuil@xxxxxxxxx> > --- > drivers/gpu/drm/omapdrm/dss/Kconfig | 9 +++++++++ > drivers/gpu/drm/omapdrm/dss/Makefile | 1 + > drivers/gpu/drm/omapdrm/dss/hdmi4.c | 23 ++++++++++++++++++++++- > 3 files changed, 32 insertions(+), 1 deletion(-) > <snip> > diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi4.c b/drivers/gpu/drm/omapdrm/dss/hdmi4.c > index e371b47ff6ff..ebe5b27cee6f 100644 > --- a/drivers/gpu/drm/omapdrm/dss/hdmi4.c > +++ b/drivers/gpu/drm/omapdrm/dss/hdmi4.c <snip> > @@ -392,6 +401,8 @@ static void hdmi_display_disable(struct omap_dss_device *dssdev) > > DSSDBG("Enter hdmi_display_disable\n"); > > + hdmi4_cec_set_phys_addr(&hdmi.core, CEC_PHYS_ADDR_INVALID); > + > mutex_lock(&hdmi.lock); > > spin_lock_irqsave(&hdmi.audio_playing_lock, flags); My assumption was that hdmi_display_disable() was called when the hotplug would go away. But I discovered that that isn't the case, or at least not when X is running. It seems that the actual HPD check is done in hdmic_detect() in omapdrm/displays/connector-hdmi.c. But there I have no access to hdmi.core (needed for the hdmi4_cec_set_phys_addr() call). Any idea how to solve this? I am not all that familiar with drm, let alone omapdrm, so if you can point me in the right direction, then that would be very helpful. Regards, Hans