Sending Audio InfoFrames is mandatory for getting audio to work over the HDMI link. Warn if the driver requests HDMI audio support for the HDMI connector, but there is no support for Audio InfoFrames (either software-generated or generated by the hardware). Suggested-by: Maxime Ripard <mripard@xxxxxxxxxx> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxxxxxxxx> --- drivers/gpu/drm/display/drm_hdmi_audio_helper.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/gpu/drm/display/drm_hdmi_audio_helper.c b/drivers/gpu/drm/display/drm_hdmi_audio_helper.c index 7d78b02c144621de528b40b1425f25e465edd1ae..dfcd0e3b4b0d7cd6adda78dbe9d6e3f65e8f7ffe 100644 --- a/drivers/gpu/drm/display/drm_hdmi_audio_helper.c +++ b/drivers/gpu/drm/display/drm_hdmi_audio_helper.c @@ -10,6 +10,7 @@ #include <drm/drm_connector.h> #include <drm/drm_device.h> +#include <drm/drm_print.h> #include <drm/display/drm_hdmi_audio_helper.h> #include <sound/hdmi-codec.h> @@ -178,6 +179,17 @@ int drm_connector_hdmi_audio_init(struct drm_connector *connector, !funcs->shutdown) return -EINVAL; + if (connector->connector_type == DRM_MODE_CONNECTOR_HDMIA || + connector->connector_type == DRM_MODE_CONNECTOR_HDMIB) { + unsigned long supported_infoframes = + connector->hdmi.software_infoframes | + connector->hdmi.autogenerated_infoframes; + + if (!(supported_infoframes & DRM_CONNECTOR_INFOFRAME_AUDIO)) + drm_warn(connector->dev, "HDMI Audio with no support for Audio InfoFrames\n"); + } + + connector->hdmi_audio.funcs = funcs; connector->hdmi_audio.dai_port = dai_port; -- 2.47.2