ASoC: codec: hdac_hdmi: fix pin connections at cvt enable#1024
ASoC: codec: hdac_hdmi: fix pin connections at cvt enable#1024ranj063 merged 1 commit intothesofproject:topic/sof-devfrom
Conversation
|
@libinyang Please review, you've been doing many patches in this area. This is a clear bug and the fix works on all hw I have. @plbossart I want to get initial review from Libin, CI results and have a patch to share to @mengdonglin . But, but, I assume this should be reviewed and merged via alsa-devel, right? |
|
@kv2019i the port/pin/cvt issues should be identical with the legacy HDAudio driver, no? What's specific about hdac_hdmi? |
|
@plbossart wrote:
Yes, HDaudio driver handles this case, but the two codebases (patch_hdmi.c for legacy driver) and hdac_hdmi in asoc are completely different. The issue needs to be tackled in hdac_hdmi separately. There is a lot of delicate logic duplicated now, so longer term some kind of refactoring is needed to share the logic between the drivers. But as they are now, we need to port critical bugfixes to hdac_hdmi, and as in this case, this requires some rework due to different design and data structures used. |
|
Sent to alsa-devel: |
|
As #878 (comment) commented, the PR has fixed the #878 issue. |
In display codecs supported by hdac_hdmi, the connection indices are shared by all converters. At boot and resume from suspend, the connection state may be reset to default values. In case of multiple connected pins (multiple monitors connected with audio capability), routing and mute status of pins that are not connected to any PCM, may interfere with other pins. E.g. after resume from S3 with multiple monitors, unless all converters are in active use, playback to some PCMs may be muted due to the default settings of unrelated converters. Avoid this by ensuring all pin:cvt selections are correct in codec whenever a converter is enabled for playback. Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
|
@kv2019i could you please update this one with the same version as the one applied upstream? |
@ranj063 Ack, reuploaded the version that was accepted upstream as: |
ranj063
left a comment
There was a problem hiding this comment.
already upstream. need another approval to merge
Fixes #878
In display codecs supported by hdac_hdmi, the connection indices are
shared by all converters. At boot and resume from suspend,
the connection state may be reset to default values.
In case of multiple connected pins (multiple monitors connected
with audio capability), routing and mute status of pins that
are not connected to any PCM, may interfere with other pins.
E.g. after resume from S3 with multiple monitors, unless
all converters are in active use, playback to some PCMs may
be muted due to the default settings of unrelated converters.
Avoid this by ensuring all pin:cvt selections are correct
in codec whenever a converter is enabled for playback.