drm/edid: parse CEA blocks embedded in DisplayID
authorAndres Rodriguez <andresx7@gmail.com>
Wed, 19 Jun 2019 18:09:01 +0000 (14:09 -0400)
committerDave Airlie <airlied@redhat.com>
Tue, 25 Jun 2019 04:32:26 +0000 (14:32 +1000)
commite28ad544f462231d3fd081a7316339359efbb481
tree4e5a91bdb0e5f27cd4904f6c4918210449d33e6c
parentdfd03396d7b66f90071aa5e8fdc0f3c4a66471c5
drm/edid: parse CEA blocks embedded in DisplayID

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
drivers/gpu/drm/drm_edid.c
include/drm/drm_displayid.h