ALSA: ctxfi - Fix DMA mask for emu20k2 chip
Allow 64bit DMA mask for emu20k2 chip, too. Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Родитель
d436dd063b
Коммит
4836ac6554
|
@ -26,7 +26,11 @@
|
|||
#include <linux/interrupt.h>
|
||||
#include <linux/delay.h>
|
||||
|
||||
#define CT_XFI_DMA_MASK DMA_BIT_MASK(32) /* 32 bits */
|
||||
#if BITS_PER_LONG == 32
|
||||
#define CT_XFI_DMA_MASK DMA_BIT_MASK(32) /* 32 bit PTE */
|
||||
#else
|
||||
#define CT_XFI_DMA_MASK DMA_BIT_MASK(64) /* 64 bit PTE */
|
||||
#endif
|
||||
|
||||
static u32 hw_read_20kx(struct hw *hw, u32 reg);
|
||||
static void hw_write_20kx(struct hw *hw, u32 reg, u32 data);
|
||||
|
@ -1834,18 +1838,16 @@ static int hw_card_start(struct hw *hw)
|
|||
int err = 0;
|
||||
struct pci_dev *pci = hw->pci;
|
||||
unsigned int gctl;
|
||||
unsigned int dma_mask = 0;
|
||||
|
||||
err = pci_enable_device(pci);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
/* Set DMA transfer mask */
|
||||
dma_mask = CT_XFI_DMA_MASK;
|
||||
if (pci_set_dma_mask(pci, dma_mask) < 0 ||
|
||||
pci_set_consistent_dma_mask(pci, dma_mask) < 0) {
|
||||
if (pci_set_dma_mask(pci, CT_XFI_DMA_MASK) < 0 ||
|
||||
pci_set_consistent_dma_mask(pci, CT_XFI_DMA_MASK) < 0) {
|
||||
printk(KERN_ERR "ctxfi: architecture does not support PCI "
|
||||
"busmaster DMA with mask 0x%x\n", dma_mask);
|
||||
"busmaster DMA with mask 0x%llx\n", CT_XFI_DMA_MASK);
|
||||
err = -ENXIO;
|
||||
goto error1;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче