Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[SCSI] libsas: Remove PCI dependencies

Eliminate unnecessary PCI dependencies in libsas. It should use generic
DMA and struct device like other subsystems.

Signed-off-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>

authored by

Jeff Garzik and committed by
James Bottomley
1d1bbee6 fd3adb2a

+19 -22
+1 -3
drivers/scsi/aic94xx/aic94xx_init.c
··· 586 586 goto Err; 587 587 } 588 588 asd_ha->pcidev = dev; 589 - asd_ha->sas_ha.pcidev = asd_ha->pcidev; 589 + asd_ha->sas_ha.dev = &asd_ha->pcidev->dev; 590 590 asd_ha->sas_ha.lldd_ha = asd_ha; 591 591 592 592 asd_ha->name = asd_dev->name; ··· 604 604 scsi_host_put(shost); 605 605 goto Err_free; 606 606 } 607 - 608 - 609 607 610 608 err = asd_dev->setup(asd_ha); 611 609 if (err)
+15 -15
drivers/scsi/libsas/sas_ata.c
··· 382 382 struct ata_port *ap; 383 383 384 384 ata_host_init(&found_dev->sata_dev.ata_host, 385 - &ha->pcidev->dev, 385 + ha->dev, 386 386 sata_port_info.flags, 387 387 &sas_sata_ops); 388 388 ap = ata_sas_port_alloc(&found_dev->sata_dev.ata_host, ··· 448 448 * @task: the task to be executed 449 449 * @buffer: pointer to buffer to do I/O 450 450 * @size: size of @buffer 451 - * @pci_dma_dir: PCI_DMA_... 451 + * @dma_dir: DMA direction. DMA_xxx 452 452 */ 453 453 static int sas_execute_task(struct sas_task *task, void *buffer, int size, 454 - int pci_dma_dir) 454 + enum dma_data_direction dma_dir) 455 455 { 456 456 int res = 0; 457 457 struct scatterlist *scatter = NULL; ··· 461 461 struct sas_internal *i = 462 462 to_sas_internal(task->dev->port->ha->core.shost->transportt); 463 463 464 - if (pci_dma_dir != PCI_DMA_NONE) { 464 + if (dma_dir != DMA_NONE) { 465 465 scatter = kzalloc(sizeof(*scatter), GFP_KERNEL); 466 466 if (!scatter) 467 467 goto out; ··· 474 474 task->scatter = scatter; 475 475 task->num_scatter = num_scatter; 476 476 task->total_xfer_len = size; 477 - task->data_dir = pci_dma_dir; 477 + task->data_dir = dma_dir; 478 478 task->task_done = sas_disc_task_done; 479 - if (pci_dma_dir != PCI_DMA_NONE && 479 + if (dma_dir != DMA_NONE && 480 480 sas_protocol_ata(task->task_proto)) { 481 - task->num_scatter = pci_map_sg(task->dev->port->ha->pcidev, 481 + task->num_scatter = dma_map_sg(task->dev->port->ha->dev, 482 482 task->scatter, 483 483 task->num_scatter, 484 484 task->data_dir); ··· 565 565 } 566 566 } 567 567 ex_err: 568 - if (pci_dma_dir != PCI_DMA_NONE) { 568 + if (dma_dir != DMA_NONE) { 569 569 if (sas_protocol_ata(task->task_proto)) 570 - pci_unmap_sg(task->dev->port->ha->pcidev, 570 + dma_unmap_sg(task->dev->port->ha->dev, 571 571 task->scatter, task->num_scatter, 572 572 task->data_dir); 573 573 kfree(scatter); ··· 628 628 * @features: the features register 629 629 * @buffer: pointer to buffer to do I/O 630 630 * @size: size of @buffer 631 - * @pci_dma_dir: PCI_DMA_... 631 + * @dma_dir: DMA direction. DMA_xxx 632 632 */ 633 633 static int sas_issue_ata_cmd(struct domain_device *dev, u8 command, 634 634 u8 features, void *buffer, int size, 635 - int pci_dma_dir) 635 + enum dma_data_direction dma_dir) 636 636 { 637 637 int res = 0; 638 638 struct sas_task *task; ··· 652 652 task->ata_task.fis.device = d2h_fis->device; 653 653 task->ata_task.retry_count = 1; 654 654 655 - res = sas_execute_task(task, buffer, size, pci_dma_dir); 655 + res = sas_execute_task(task, buffer, size, dma_dir); 656 656 657 657 sas_free_task(task); 658 658 out: ··· 707 707 } 708 708 709 709 res = sas_issue_ata_cmd(dev, command, 0, identify_x, 512, 710 - PCI_DMA_FROMDEVICE); 710 + DMA_FROM_DEVICE); 711 711 if (res) 712 712 goto out_err; 713 713 ··· 720 720 goto cont1; 721 721 res = sas_issue_ata_cmd(dev, ATA_SET_FEATURES, 722 722 ATA_FEATURE_PUP_STBY_SPIN_UP, 723 - NULL, 0, PCI_DMA_NONE); 723 + NULL, 0, DMA_NONE); 724 724 if (res) 725 725 goto cont1; 726 726 727 727 schedule_timeout_interruptible(5*HZ); /* More time? */ 728 728 res = sas_issue_ata_cmd(dev, command, 0, identify_x, 512, 729 - PCI_DMA_FROMDEVICE); 729 + DMA_FROM_DEVICE); 730 730 if (res) 731 731 goto out_err; 732 732 }
+1 -2
drivers/scsi/libsas/sas_discover.c
··· 22 22 * 23 23 */ 24 24 25 - #include <linux/pci.h> 26 25 #include <linux/scatterlist.h> 27 26 #include <scsi/scsi_host.h> 28 27 #include <scsi/scsi_eh.h> ··· 169 170 if (res) { 170 171 printk("sas: driver on pcidev %s cannot handle " 171 172 "device %llx, error:%d\n", 172 - pci_name(sas_ha->pcidev), 173 + sas_ha->dev->bus_id, 173 174 SAS_ADDR(dev->sas_addr), res); 174 175 } 175 176 }
+1 -1
drivers/scsi/libsas/sas_dump.c
··· 56 56 57 57 void sas_dprint_hae(struct sas_ha_struct *sas_ha, enum ha_event he) 58 58 { 59 - SAS_DPRINTK("ha %s: %s event\n", pci_name(sas_ha->pcidev), 59 + SAS_DPRINTK("ha %s: %s event\n", sas_ha->dev->bus_id, 60 60 sas_hae_str[he]); 61 61 } 62 62
+1 -1
include/scsi/libsas.h
··· 348 348 349 349 /* public: */ 350 350 char *sas_ha_name; 351 - struct pci_dev *pcidev; /* should be set */ 351 + struct device *dev; /* should be set */ 352 352 struct module *lldd_module; /* should be set */ 353 353 354 354 u8 *sas_addr; /* must be set */