ALSA: hda: check validity of speaker allocation field
authorNikesh Oswal <noswal@nvidia.com>
Thu, 13 Sep 2012 08:58:02 +0000 (13:58 +0530)
committerRohan Somvanshi <rsomvanshi@nvidia.com>
Fri, 14 Sep 2012 12:42:54 +0000 (05:42 -0700)
commitf7ba8410a3986afea0cce9a21672c74f5e9af221
tree95df840d64dcdd2094f9c0279a5fa9581acf209c
parentcb9034b9e1257ef911b8510bad04df54e969b3be
ALSA: hda: check validity of speaker allocation field

Kernel 3.1 hda driver read the eld data once and if
the speaker allocation field was 0 (not set yet by
hdmi driver) then it considers it as 0xFFFF which
allows multichannel and doesn't block it. In Kernel
3.4 hda driver there is a repolling mechanism added
for ELD data, if the ELD data sanity check fails
then HDA driver re-schedules the work unit to poll
ELD data again hence the check on speaker allocation
field was removed. But the NVIDIA hda/hdmi controller
for some reason fails to update the speaker allocation
field and the read data is not valid even after
repeated attempts, hence the ASP channel mapping
happens for default 2 channel case. Adding the check
for speaker allocation field again solves the issue
and multichannel content plays fine over hda/hdmi.

Bug 1045435
Bug 1043021

Change-Id: I79fe33c0e354142f5af16c3ebbb3611a733dd88d
Signed-off-by: Nikesh Oswal <noswal@nvidia.com>
Reviewed-on: http://git-master/r/132128
Reviewed-by: Sumit Bhattacharya <sumitb@nvidia.com>
Reviewed-by: Scott Peterson <speterson@nvidia.com>
Reviewed-by: Ravindra Lokhande <rlokhande@nvidia.com>
sound/pci/hda/patch_hdmi.c