UPSTREAM: drm/edid: Extract SADs properly from multiple audio data blocks
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 9 Mar 2016 20:07:46 +0000 (22:07 +0200)
committerHuang, Tao <huangtao@rock-chips.com>
Thu, 30 Mar 2017 06:34:07 +0000 (14:34 +0800)
commit79ae01aa89b569ed599d1263eb26c6b98f039c27
treebf35e575ff6e33b5071dc5c76a2817d3b42200f2
parent621fa3942debca83312a9d2090ece004971c10d1
UPSTREAM: drm/edid: Extract SADs properly from multiple audio data blocks

SADs may span multiple CEA audio data blocks in the EDID.

CEA-861-E says:
"The order of the Data Blocks is not constrained. It is also possible
to have more than one of a specific type of data block if necessary to
include all of the descriptors needed to describe the sink’s capabilities."

Each audio data block can carry up to 10 SADs, whereas the ELD SAD limit
is 15 according to HDA 1.0a spec. So we should support at least two data
blocks. And apparently some devices take a more liberal interpretation
and stuff only one SAD per data block even when they would fit into one.

So let's try to extract all the SADs we can fit into the ELD even when
they span multiple data blocks.

While at it, toss in a comment to explain the 13 byte monitor name
string limit which confused me at first.

Cc: Arturo Pérez <artur999555@gmail.com>
Tested-by: Arturo Pérez <artur999555@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94197
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1457554066-8739-1-git-send-email-ville.syrjala@linux.intel.com
(cherry picked from commit 7c01878254daadbb91f5b1137b7404d952e3931b)
Change-Id: I18c5c64b69802a6a50de624d55b4b5217943b76e
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
drivers/gpu/drm/drm_edid.c