mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 08:14:15 +08:00
ALSA: hda - Fix regression on ATI HDMI audio
The HDMI/DP audio output on ATI/AMD chips got broken due to the recent restructuring of chmap. Fortunately, Daniel Exner could bisect, and pointed the culprit commit [739ffee97e
: ALSA: hda - Add hdmi chmap verb programming ops to chmap object]. This commit moved some ops from hdmi_ops to chmap_ops, and reassigned the ops in the embedded chmap object in hdmi_spec instead. Unfortunately, the reassignment of these ops in patch_atihdmi() were moved into an if block that is performed only for old chips. Thus, on newer chips, the generic ops is still used, which doesn't work for such ATI/AMD chips. This patch addresses the regression, simply by moving the assignment of chmap ops to the right place. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=114981 Fixes:739ffee97e
('ALSA: hda - Add hdmi chmap verb programming ops to chmap object') Reported-and-tested-by: Daniel Exner <dex@dragonslave.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
3231e2053e
commit
3966922548
@ -3401,6 +3401,9 @@ static int patch_atihdmi(struct hda_codec *codec)
|
||||
spec->ops.pin_hbr_setup = atihdmi_pin_hbr_setup;
|
||||
spec->ops.setup_stream = atihdmi_setup_stream;
|
||||
|
||||
spec->chmap.ops.pin_get_slot_channel = atihdmi_pin_get_slot_channel;
|
||||
spec->chmap.ops.pin_set_slot_channel = atihdmi_pin_set_slot_channel;
|
||||
|
||||
if (!has_amd_full_remap_support(codec)) {
|
||||
/* override to ATI/AMD-specific versions with pairwise mapping */
|
||||
spec->chmap.ops.chmap_cea_alloc_validate_get_type =
|
||||
@ -3408,10 +3411,6 @@ static int patch_atihdmi(struct hda_codec *codec)
|
||||
spec->chmap.ops.cea_alloc_to_tlv_chmap =
|
||||
atihdmi_paired_cea_alloc_to_tlv_chmap;
|
||||
spec->chmap.ops.chmap_validate = atihdmi_paired_chmap_validate;
|
||||
spec->chmap.ops.pin_get_slot_channel =
|
||||
atihdmi_pin_get_slot_channel;
|
||||
spec->chmap.ops.pin_set_slot_channel =
|
||||
atihdmi_pin_set_slot_channel;
|
||||
}
|
||||
|
||||
/* ATI/AMD converters do not advertise all of their capabilities */
|
||||
|
Loading…
Reference in New Issue
Block a user