summaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/hda_intel.c
diff options
context:
space:
mode:
authorTakashi Iwai2008-02-06 15:05:57 +0100
committerTakashi Iwai2008-04-24 12:00:08 +0200
commitcf7aaca8bae3a719db47ff6eca5f6f2f42eba05a (patch)
tree2af8d01bc049db833e87602ea25ab1abe8f91cd8 /sound/pci/hda/hda_intel.c
parent[ALSA] hda-intel - Use SG buffer (diff)
downloadkernel-qcow2-linux-cf7aaca8bae3a719db47ff6eca5f6f2f42eba05a.tar.gz
kernel-qcow2-linux-cf7aaca8bae3a719db47ff6eca5f6f2f42eba05a.tar.xz
kernel-qcow2-linux-cf7aaca8bae3a719db47ff6eca5f6f2f42eba05a.zip
[ALSA] hda-intel - Support 64bit buffer allocation
The HD-audio hardware usually supports 64bit address for DMA and other buffers. The patch enables the feature if supported. 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.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index b38a5a70ff08..ec3ddda30beb 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -1843,6 +1843,10 @@ static int __devinit azx_create(struct snd_card *card, struct pci_dev *pci,
gcap = azx_readw(chip, GCAP);
snd_printdd("chipset global capabilities = 0x%x\n", gcap);
+ /* allow 64bit DMA address if supported by H/W */
+ if ((gcap & 0x01) && !pci_set_dma_mask(pci, DMA_64BIT_MASK))
+ pci_set_consistent_dma_mask(pci, DMA_64BIT_MASK);
+
if (gcap) {
/* read number of streams from GCAP register instead of using
* hardcoded value