Question regarding HDMI Audio support on i.MX6 with vanilla kernel

Russell King - ARM Linux linux at armlinux.org.uk
Tue Nov 7 10:15:02 UTC 2017


On Tue, Nov 07, 2017 at 10:00:48AM +0000, Luís Mendes wrote:
> Hi Russell,
> 
> Sorry for sending all these emails, but to me dw_hdmi device driver is
> broken regarding HDMI detection and audio support. I don't want to waste
> your time, but I would like to have your opinion since you're so involved
> in the ARM support for the Linux kernel.

If it is so broken, how come it works for me and others?

> First of all dw_hdmi module only enables audio if it is able to read the
> edid and decode it properly, otherwise it will be always disabled even when

That is correct behaviour.  The EDID is needed to know whether the HDMI
sink supports audio, and what audio parameters it supports.

> an EDID is forced through drm_kms_helper.edid_firmware=edid/ktc_edid.bin,
> because dw_hdmi_connector_get_modes(...) won't get called, causing  the
> edid not to be parsed for audio suppport, nor for the HDMI connector
> support. As a result DVI mode will always be used.

Yes, when using an override EDID, audio probably won't work because the
parsing calls are mis-placed.  I thought that had been fixed.

> I was able to force HDMI audio to work by modifying dw_hdmi.c like this:
> static int dw_hdmi_connector_get_modes(struct drm_connector *connector)
> {
> ...
> if (edid) {
> ...
> } else {
>    hdmi->sink_is_hdmi = 1;
>    hdmi->sink_has_audio = 1;
>    dev_dbg(hdmi_dev, "failed to get edid\n");
> }
> 
> Summarizing the issues IMHO with dw_hdmi:
> - dw_hdmi fails to read edid even when xf86_video_armada and get-edid are
> able to read and decode it

The only way xf86-video-armada can obtain the EDID is from DRM, which
means that DRM must have got an EDID from somewhere.  xf86-video-armada
contains no code to open any i2c adapter and get it via any other
method.

So, somehow DRM obtained the EDID, and if it's the EDID of your monitor,
that can only come via dw-hdmi.

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 8.8Mbps down 630kbps up
According to speedtest.net: 8.21Mbps down 510kbps up


More information about the etnaviv mailing list