[PATCH] [UBUNTU:sound/pci/hda/] Don't use the AD1988A rev.2 workaround on AD1988B chips
crimsun at fungus.sh.nu
crimsun at fungus.sh.nu
Tue Jul 4 20:54:20 UTC 2006
Subject: [PATCH] [UBUNTU:sound/pci/hda/] Don't use the AD1988A rev.2 workaround on AD1988B chips
UpstreamStatus: Added in upstream alsa-kernel hg changeset 31ec836d4af4
http://hg-mirror.alsa-project.org/alsa-kernel?cmd=changeset;node=31ec836d4af4f486997d634d8a386c6b9805d47c;style=raw
Takashi Iwai committed this fix for erroneously applying the AD1988A
rev.2 workaround on AD1988B chips.
Signed-off-by: Daniel T Chen <crimsun at ubuntu.com>
---
sound/pci/hda/patch_analog.c | 15 +++++++++------
1 files changed, 9 insertions(+), 6 deletions(-)
e598b651af1d2bf3342b14d47755302a74cf575c
diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c
index 1af74d6..00d91df 100644
--- a/sound/pci/hda/patch_analog.c
+++ b/sound/pci/hda/patch_analog.c
@@ -1534,6 +1534,9 @@ enum {
/* reivision id to check workarounds */
#define AD1988A_REV2 0x100200
+#define is_rev2(codec) \
+ ((codec)->vendor_id == 0x11d41988 && \
+ (codec)->revision_id == AD1988A_REV2)
/*
* mixers
@@ -2184,7 +2187,7 @@ static inline hda_nid_t ad1988_idx_to_da
/* A B C D E F G H */
0x04, 0x05, 0x0a, 0x04, 0x06, 0x05, 0x0a, 0x06
};
- if (codec->revision_id == AD1988A_REV2)
+ if (is_rev2(codec))
return idx_to_dac_rev2[idx];
else
return idx_to_dac[idx];
@@ -2553,7 +2556,7 @@ static int patch_ad1988(struct hda_codec
init_MUTEX(&spec->amp_mutex);
codec->spec = spec;
- if (codec->revision_id == AD1988A_REV2)
+ if (is_rev2(codec))
snd_printk(KERN_INFO "patch_analog: AD1988A rev.2 is detected, enable workarounds\n");
board_config = snd_hda_check_board_config(codec, ad1988_cfg_tbl);
@@ -2579,13 +2582,13 @@ static int patch_ad1988(struct hda_codec
case AD1988_6STACK_DIG:
spec->multiout.max_channels = 8;
spec->multiout.num_dacs = 4;
- if (codec->revision_id == AD1988A_REV2)
+ if (is_rev2(codec))
spec->multiout.dac_nids = ad1988_6stack_dac_nids_rev2;
else
spec->multiout.dac_nids = ad1988_6stack_dac_nids;
spec->input_mux = &ad1988_6stack_capture_source;
spec->num_mixers = 2;
- if (codec->revision_id == AD1988A_REV2)
+ if (is_rev2(codec))
spec->mixers[0] = ad1988_6stack_mixers1_rev2;
else
spec->mixers[0] = ad1988_6stack_mixers1;
@@ -2601,7 +2604,7 @@ static int patch_ad1988(struct hda_codec
case AD1988_3STACK_DIG:
spec->multiout.max_channels = 6;
spec->multiout.num_dacs = 3;
- if (codec->revision_id == AD1988A_REV2)
+ if (is_rev2(codec))
spec->multiout.dac_nids = ad1988_3stack_dac_nids_rev2;
else
spec->multiout.dac_nids = ad1988_3stack_dac_nids;
@@ -2609,7 +2612,7 @@ static int patch_ad1988(struct hda_codec
spec->channel_mode = ad1988_3stack_modes;
spec->num_channel_mode = ARRAY_SIZE(ad1988_3stack_modes);
spec->num_mixers = 2;
- if (codec->revision_id == AD1988A_REV2)
+ if (is_rev2(codec))
spec->mixers[0] = ad1988_3stack_mixers1_rev2;
else
spec->mixers[0] = ad1988_3stack_mixers1;
--
1.1.3
--
Daniel T. Chen crimsun at ubuntu.com
GPG key: www.sh.nu/~crimsun/pubkey.gpg.asc
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20060704/b472d57e/attachment.sig>
More information about the kernel-team
mailing list