Loading drivers/dma/ioat/dca.c +1 −1 Original line number Diff line number Diff line Loading @@ -103,7 +103,7 @@ static int dca_enabled_in_bios(struct pci_dev *pdev) return res; } static int system_has_dca_enabled(struct pci_dev *pdev) int system_has_dca_enabled(struct pci_dev *pdev) { if (boot_cpu_has(X86_FEATURE_DCA)) return dca_enabled_in_bios(pdev); Loading drivers/dma/ioat/dma_v3.c +6 −0 Original line number Diff line number Diff line Loading @@ -1117,6 +1117,7 @@ static int __devinit ioat3_dma_self_test(struct ioatdma_device *device) int __devinit ioat3_dma_probe(struct ioatdma_device *device, int dca) { struct pci_dev *pdev = device->pdev; int dca_en = system_has_dca_enabled(pdev); struct dma_device *dma; struct dma_chan *c; struct ioat_chan_common *chan; Loading @@ -1137,6 +1138,11 @@ int __devinit ioat3_dma_probe(struct ioatdma_device *device, int dca) dma->device_prep_dma_interrupt = ioat3_prep_interrupt_lock; cap = readl(device->reg_base + IOAT_DMA_CAP_OFFSET); /* dca is incompatible with raid operations */ if (dca_en && (cap & (IOAT_CAP_XOR|IOAT_CAP_PQ))) cap &= ~(IOAT_CAP_XOR|IOAT_CAP_PQ); if (cap & IOAT_CAP_XOR) { is_raid_device = true; dma->max_xor = 8; Loading drivers/dma/ioat/hw.h +2 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,8 @@ #define IOAT_VER_3_0 0x30 /* Version 3.0 */ #define IOAT_VER_3_2 0x32 /* Version 3.2 */ int system_has_dca_enabled(struct pci_dev *pdev); struct ioat_dma_descriptor { uint32_t size; union { Loading Loading
drivers/dma/ioat/dca.c +1 −1 Original line number Diff line number Diff line Loading @@ -103,7 +103,7 @@ static int dca_enabled_in_bios(struct pci_dev *pdev) return res; } static int system_has_dca_enabled(struct pci_dev *pdev) int system_has_dca_enabled(struct pci_dev *pdev) { if (boot_cpu_has(X86_FEATURE_DCA)) return dca_enabled_in_bios(pdev); Loading
drivers/dma/ioat/dma_v3.c +6 −0 Original line number Diff line number Diff line Loading @@ -1117,6 +1117,7 @@ static int __devinit ioat3_dma_self_test(struct ioatdma_device *device) int __devinit ioat3_dma_probe(struct ioatdma_device *device, int dca) { struct pci_dev *pdev = device->pdev; int dca_en = system_has_dca_enabled(pdev); struct dma_device *dma; struct dma_chan *c; struct ioat_chan_common *chan; Loading @@ -1137,6 +1138,11 @@ int __devinit ioat3_dma_probe(struct ioatdma_device *device, int dca) dma->device_prep_dma_interrupt = ioat3_prep_interrupt_lock; cap = readl(device->reg_base + IOAT_DMA_CAP_OFFSET); /* dca is incompatible with raid operations */ if (dca_en && (cap & (IOAT_CAP_XOR|IOAT_CAP_PQ))) cap &= ~(IOAT_CAP_XOR|IOAT_CAP_PQ); if (cap & IOAT_CAP_XOR) { is_raid_device = true; dma->max_xor = 8; Loading
drivers/dma/ioat/hw.h +2 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,8 @@ #define IOAT_VER_3_0 0x30 /* Version 3.0 */ #define IOAT_VER_3_2 0x32 /* Version 3.2 */ int system_has_dca_enabled(struct pci_dev *pdev); struct ioat_dma_descriptor { uint32_t size; union { Loading