aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2008-06-10 11:53:35 -0400
committerJaroslav Kysela <perex@perex.cz>2008-06-13 10:34:25 -0400
commit5c0d7bc103dd1ae85967fbcf70be8d1ae3aa3d79 (patch)
treed7c3ee90cd64da05b802924ab32f16999909083b
parent555e219ffaeecbd08d1603e1551188483e7e3b64 (diff)
ALSA: hda - Fix bdl_pos_adj value for ATI SB chipsets
ATI SB controllers seem to report the DMA ahead in the amount of FIFO. Thus bdl_pos_adj should be 32 for them as default. Also, the default value is set to -1, which means to make the driver to choose the appropriate value. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
-rw-r--r--sound/pci/hda/hda_intel.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index ddae3c479a88..9b2dc0669b94 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -55,7 +55,7 @@ static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;
55static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP; 55static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP;
56static char *model[SNDRV_CARDS]; 56static char *model[SNDRV_CARDS];
57static int position_fix[SNDRV_CARDS]; 57static int position_fix[SNDRV_CARDS];
58static int bdl_pos_adj[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)] = 1}; 58static int bdl_pos_adj[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)] = -1};
59static int probe_mask[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)] = -1}; 59static int probe_mask[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)] = -1};
60static int single_cmd; 60static int single_cmd;
61static int enable_msi; 61static int enable_msi;
@@ -2013,6 +2013,18 @@ static int __devinit azx_create(struct snd_card *card, struct pci_dev *pci,
2013 2013
2014 chip->single_cmd = single_cmd; 2014 chip->single_cmd = single_cmd;
2015 2015
2016 if (bdl_pos_adj[dev] < 0) {
2017 switch (chip->driver_type) {
2018 case AZX_DRIVER_ATI:
2019 case AZX_DRIVER_ATIHDMI:
2020 bdl_pos_adj[dev] = 32;
2021 break;
2022 default:
2023 bdl_pos_adj[dev] = 1;
2024 break;
2025 }
2026 }
2027
2016#if BITS_PER_LONG != 64 2028#if BITS_PER_LONG != 64
2017 /* Fix up base address on ULI M5461 */ 2029 /* Fix up base address on ULI M5461 */
2018 if (chip->driver_type == AZX_DRIVER_ULI) { 2030 if (chip->driver_type == AZX_DRIVER_ULI) {