diff options
author | Takashi Iwai <tiwai@suse.de> | 2008-06-10 11:53:35 -0400 |
---|---|---|
committer | Jaroslav Kysela <perex@perex.cz> | 2008-06-13 10:34:25 -0400 |
commit | 5c0d7bc103dd1ae85967fbcf70be8d1ae3aa3d79 (patch) | |
tree | d7c3ee90cd64da05b802924ab32f16999909083b | |
parent | 555e219ffaeecbd08d1603e1551188483e7e3b64 (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.c | 14 |
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; | |||
55 | static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP; | 55 | static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP; |
56 | static char *model[SNDRV_CARDS]; | 56 | static char *model[SNDRV_CARDS]; |
57 | static int position_fix[SNDRV_CARDS]; | 57 | static int position_fix[SNDRV_CARDS]; |
58 | static int bdl_pos_adj[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)] = 1}; | 58 | static int bdl_pos_adj[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)] = -1}; |
59 | static int probe_mask[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)] = -1}; | 59 | static int probe_mask[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)] = -1}; |
60 | static int single_cmd; | 60 | static int single_cmd; |
61 | static int enable_msi; | 61 | static 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) { |