drm/edid: parse CEA blocks embedded in DisplayID
authorAndres Rodriguez <andresx7@gmail.com>
Wed, 19 Jun 2019 18:09:01 +0000 (14:09 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 26 Jul 2019 07:14:26 +0000 (09:14 +0200)
commit66a13b5e4e9cc7bb2c6a5d12a650df4309b77c46
treed758510b0eb48f9a0ea0f747e02fc7f237eac29e
parent9854e06842bc9e86a9e9508a527127fe713a711e
drm/edid: parse CEA blocks embedded in DisplayID

commit e28ad544f462231d3fd081a7316339359efbb481 upstream.

DisplayID blocks allow embedding of CEA blocks. The payloads are
identical to traditional top level CEA extension blocks, but the header
is slightly different.

This change allows the CEA parser to find a CEA block inside a DisplayID
block. Additionally, it adds support for parsing the embedded CTA
header. No further changes are necessary due to payload parity.

This change fixes audio support for the Valve Index HMD.

Signed-off-by: Andres Rodriguez <andresx7@gmail.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: <stable@vger.kernel.org> # v4.15
Signed-off-by: Dave Airlie <airlied@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190619180901.17901-1-andresx7@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/drm_edid.c
include/drm/drm_displayid.h