diff options
author | Takashi Iwai <tiwai@suse.de> | 2011-04-26 09:25:02 -0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2011-04-26 09:33:43 -0400 |
commit | d507cd668a3f6d07b31e914722b453c454b03204 (patch) | |
tree | 9fd9abef757ac53c5223c4565825b3f5b13982ce /sound/pci/hda/hda_intel.c | |
parent | 0da2692256ed65bec588f7797c77f9c84ef4274e (diff) |
ALSA: hda - Enable sync_write workaround for AMD generically
The workaround for AMD chipset via sync_write flag seems needed for
machines with Realtek codecs. So, it's better to activate it
generically in hda_intel.c from the beginning.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda/hda_intel.c')
-rw-r--r-- | sound/pci/hda/hda_intel.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index 6f891ee82a7c..f95ff6e029a9 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c | |||
@@ -1447,6 +1447,17 @@ static int __devinit azx_codec_create(struct azx *chip, const char *model) | |||
1447 | } | 1447 | } |
1448 | } | 1448 | } |
1449 | 1449 | ||
1450 | /* AMD chipsets often cause the communication stalls upon certain | ||
1451 | * sequence like the pin-detection. It seems that forcing the synced | ||
1452 | * access works around the stall. Grrr... | ||
1453 | */ | ||
1454 | if (chip->pci->vendor == PCI_VENDOR_ID_AMD || | ||
1455 | chip->pci->vendor == PCI_VENDOR_ID_ATI) { | ||
1456 | snd_printk(KERN_INFO SFX "Enable sync_write for AMD chipset\n"); | ||
1457 | chip->bus->sync_write = 1; | ||
1458 | chip->bus->allow_bus_reset = 1; | ||
1459 | } | ||
1460 | |||
1450 | /* Then create codec instances */ | 1461 | /* Then create codec instances */ |
1451 | for (c = 0; c < max_slots; c++) { | 1462 | for (c = 0; c < max_slots; c++) { |
1452 | if ((chip->codec_mask & (1 << c)) & chip->codec_probe_mask) { | 1463 | if ((chip->codec_mask & (1 << c)) & chip->codec_probe_mask) { |