Commit b000bced authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Martin K. Petersen

scsi: 3w-9xxx: fully convert to the generic DMA API

The driver is currently using an odd mix of legacy PCI DMA API and
generic DMA API calls, switch it over to the generic API entirely.
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Acked-by: default avatarAdam Radford <aradford@gmail.com>
Reviewed-by: default avatarJohannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 3a21986f
...@@ -518,7 +518,8 @@ static int twa_allocate_memory(TW_Device_Extension *tw_dev, int size, int which) ...@@ -518,7 +518,8 @@ static int twa_allocate_memory(TW_Device_Extension *tw_dev, int size, int which)
unsigned long *cpu_addr; unsigned long *cpu_addr;
int retval = 1; int retval = 1;
cpu_addr = pci_alloc_consistent(tw_dev->tw_pci_dev, size*TW_Q_LENGTH, &dma_handle); cpu_addr = dma_alloc_coherent(&tw_dev->tw_pci_dev->dev,
size * TW_Q_LENGTH, &dma_handle, GFP_KERNEL);
if (!cpu_addr) { if (!cpu_addr) {
TW_PRINTK(tw_dev->host, TW_DRIVER, 0x5, "Memory allocation failed"); TW_PRINTK(tw_dev->host, TW_DRIVER, 0x5, "Memory allocation failed");
goto out; goto out;
...@@ -526,7 +527,8 @@ static int twa_allocate_memory(TW_Device_Extension *tw_dev, int size, int which) ...@@ -526,7 +527,8 @@ static int twa_allocate_memory(TW_Device_Extension *tw_dev, int size, int which)
if ((unsigned long)cpu_addr % (TW_ALIGNMENT_9000)) { if ((unsigned long)cpu_addr % (TW_ALIGNMENT_9000)) {
TW_PRINTK(tw_dev->host, TW_DRIVER, 0x6, "Failed to allocate correctly aligned memory"); TW_PRINTK(tw_dev->host, TW_DRIVER, 0x6, "Failed to allocate correctly aligned memory");
pci_free_consistent(tw_dev->tw_pci_dev, size*TW_Q_LENGTH, cpu_addr, dma_handle); dma_free_coherent(&tw_dev->tw_pci_dev->dev, size * TW_Q_LENGTH,
cpu_addr, dma_handle);
goto out; goto out;
} }
...@@ -1027,16 +1029,16 @@ static int twa_fill_sense(TW_Device_Extension *tw_dev, int request_id, int copy_ ...@@ -1027,16 +1029,16 @@ static int twa_fill_sense(TW_Device_Extension *tw_dev, int request_id, int copy_
static void twa_free_device_extension(TW_Device_Extension *tw_dev) static void twa_free_device_extension(TW_Device_Extension *tw_dev)
{ {
if (tw_dev->command_packet_virt[0]) if (tw_dev->command_packet_virt[0])
pci_free_consistent(tw_dev->tw_pci_dev, dma_free_coherent(&tw_dev->tw_pci_dev->dev,
sizeof(TW_Command_Full)*TW_Q_LENGTH, sizeof(TW_Command_Full) * TW_Q_LENGTH,
tw_dev->command_packet_virt[0], tw_dev->command_packet_virt[0],
tw_dev->command_packet_phys[0]); tw_dev->command_packet_phys[0]);
if (tw_dev->generic_buffer_virt[0]) if (tw_dev->generic_buffer_virt[0])
pci_free_consistent(tw_dev->tw_pci_dev, dma_free_coherent(&tw_dev->tw_pci_dev->dev,
TW_SECTOR_SIZE*TW_Q_LENGTH, TW_SECTOR_SIZE * TW_Q_LENGTH,
tw_dev->generic_buffer_virt[0], tw_dev->generic_buffer_virt[0],
tw_dev->generic_buffer_phys[0]); tw_dev->generic_buffer_phys[0]);
kfree(tw_dev->event_queue[0]); kfree(tw_dev->event_queue[0]);
} /* End twa_free_device_extension() */ } /* End twa_free_device_extension() */
...@@ -2015,14 +2017,12 @@ static int twa_probe(struct pci_dev *pdev, const struct pci_device_id *dev_id) ...@@ -2015,14 +2017,12 @@ static int twa_probe(struct pci_dev *pdev, const struct pci_device_id *dev_id)
pci_set_master(pdev); pci_set_master(pdev);
pci_try_set_mwi(pdev); pci_try_set_mwi(pdev);
if (pci_set_dma_mask(pdev, DMA_BIT_MASK(64)) if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64)) ||
|| pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64))) dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32))) {
if (pci_set_dma_mask(pdev, DMA_BIT_MASK(32)) TW_PRINTK(host, TW_DRIVER, 0x23, "Failed to set dma mask");
|| pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32))) { retval = -ENODEV;
TW_PRINTK(host, TW_DRIVER, 0x23, "Failed to set dma mask"); goto out_disable_device;
retval = -ENODEV; }
goto out_disable_device;
}
host = scsi_host_alloc(&driver_template, sizeof(TW_Device_Extension)); host = scsi_host_alloc(&driver_template, sizeof(TW_Device_Extension));
if (!host) { if (!host) {
...@@ -2237,14 +2237,12 @@ static int twa_resume(struct pci_dev *pdev) ...@@ -2237,14 +2237,12 @@ static int twa_resume(struct pci_dev *pdev)
pci_set_master(pdev); pci_set_master(pdev);
pci_try_set_mwi(pdev); pci_try_set_mwi(pdev);
if (pci_set_dma_mask(pdev, DMA_BIT_MASK(64)) if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64)) ||
|| pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64))) dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32))) {
if (pci_set_dma_mask(pdev, DMA_BIT_MASK(32)) TW_PRINTK(host, TW_DRIVER, 0x40, "Failed to set dma mask during resume");
|| pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32))) { retval = -ENODEV;
TW_PRINTK(host, TW_DRIVER, 0x40, "Failed to set dma mask during resume"); goto out_disable_device;
retval = -ENODEV; }
goto out_disable_device;
}
/* Initialize the card */ /* Initialize the card */
if (twa_reset_sequence(tw_dev, 0)) { if (twa_reset_sequence(tw_dev, 0)) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment