Skip to content

Commit

Permalink
[SCSI] libsas: Remove PCI dependencies
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Jeff Garzik authored and James Bottomley committed Jul 26, 2007
1 parent fd3adb2 commit 1d1bbee
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 22 deletions.
4 changes: 1 addition & 3 deletions drivers/scsi/aic94xx/aic94xx_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -586,7 +586,7 @@ static int __devinit asd_pci_probe(struct pci_dev *dev,
goto Err;
}
asd_ha->pcidev = dev;
asd_ha->sas_ha.pcidev = asd_ha->pcidev;
asd_ha->sas_ha.dev = &asd_ha->pcidev->dev;
asd_ha->sas_ha.lldd_ha = asd_ha;

asd_ha->name = asd_dev->name;
Expand All @@ -605,8 +605,6 @@ static int __devinit asd_pci_probe(struct pci_dev *dev,
goto Err_free;
}



err = asd_dev->setup(asd_ha);
if (err)
goto Err_free;
Expand Down
30 changes: 15 additions & 15 deletions drivers/scsi/libsas/sas_ata.c
Original file line number Diff line number Diff line change
Expand Up @@ -382,7 +382,7 @@ int sas_ata_init_host_and_port(struct domain_device *found_dev,
struct ata_port *ap;

ata_host_init(&found_dev->sata_dev.ata_host,
&ha->pcidev->dev,
ha->dev,
sata_port_info.flags,
&sas_sata_ops);
ap = ata_sas_port_alloc(&found_dev->sata_dev.ata_host,
Expand Down Expand Up @@ -448,10 +448,10 @@ static void sas_disc_task_done(struct sas_task *task)
* @task: the task to be executed
* @buffer: pointer to buffer to do I/O
* @size: size of @buffer
* @pci_dma_dir: PCI_DMA_...
* @dma_dir: DMA direction. DMA_xxx
*/
static int sas_execute_task(struct sas_task *task, void *buffer, int size,
int pci_dma_dir)
enum dma_data_direction dma_dir)
{
int res = 0;
struct scatterlist *scatter = NULL;
Expand All @@ -461,7 +461,7 @@ static int sas_execute_task(struct sas_task *task, void *buffer, int size,
struct sas_internal *i =
to_sas_internal(task->dev->port->ha->core.shost->transportt);

if (pci_dma_dir != PCI_DMA_NONE) {
if (dma_dir != DMA_NONE) {
scatter = kzalloc(sizeof(*scatter), GFP_KERNEL);
if (!scatter)
goto out;
Expand All @@ -474,11 +474,11 @@ static int sas_execute_task(struct sas_task *task, void *buffer, int size,
task->scatter = scatter;
task->num_scatter = num_scatter;
task->total_xfer_len = size;
task->data_dir = pci_dma_dir;
task->data_dir = dma_dir;
task->task_done = sas_disc_task_done;
if (pci_dma_dir != PCI_DMA_NONE &&
if (dma_dir != DMA_NONE &&
sas_protocol_ata(task->task_proto)) {
task->num_scatter = pci_map_sg(task->dev->port->ha->pcidev,
task->num_scatter = dma_map_sg(task->dev->port->ha->dev,
task->scatter,
task->num_scatter,
task->data_dir);
Expand Down Expand Up @@ -565,9 +565,9 @@ static int sas_execute_task(struct sas_task *task, void *buffer, int size,
}
}
ex_err:
if (pci_dma_dir != PCI_DMA_NONE) {
if (dma_dir != DMA_NONE) {
if (sas_protocol_ata(task->task_proto))
pci_unmap_sg(task->dev->port->ha->pcidev,
dma_unmap_sg(task->dev->port->ha->dev,
task->scatter, task->num_scatter,
task->data_dir);
kfree(scatter);
Expand Down Expand Up @@ -628,11 +628,11 @@ static void sas_get_ata_command_set(struct domain_device *dev)
* @features: the features register
* @buffer: pointer to buffer to do I/O
* @size: size of @buffer
* @pci_dma_dir: PCI_DMA_...
* @dma_dir: DMA direction. DMA_xxx
*/
static int sas_issue_ata_cmd(struct domain_device *dev, u8 command,
u8 features, void *buffer, int size,
int pci_dma_dir)
enum dma_data_direction dma_dir)
{
int res = 0;
struct sas_task *task;
Expand All @@ -652,7 +652,7 @@ static int sas_issue_ata_cmd(struct domain_device *dev, u8 command,
task->ata_task.fis.device = d2h_fis->device;
task->ata_task.retry_count = 1;

res = sas_execute_task(task, buffer, size, pci_dma_dir);
res = sas_execute_task(task, buffer, size, dma_dir);

sas_free_task(task);
out:
Expand Down Expand Up @@ -707,7 +707,7 @@ static int sas_discover_sata_dev(struct domain_device *dev)
}

res = sas_issue_ata_cmd(dev, command, 0, identify_x, 512,
PCI_DMA_FROMDEVICE);
DMA_FROM_DEVICE);
if (res)
goto out_err;

Expand All @@ -720,13 +720,13 @@ static int sas_discover_sata_dev(struct domain_device *dev)
goto cont1;
res = sas_issue_ata_cmd(dev, ATA_SET_FEATURES,
ATA_FEATURE_PUP_STBY_SPIN_UP,
NULL, 0, PCI_DMA_NONE);
NULL, 0, DMA_NONE);
if (res)
goto cont1;

schedule_timeout_interruptible(5*HZ); /* More time? */
res = sas_issue_ata_cmd(dev, command, 0, identify_x, 512,
PCI_DMA_FROMDEVICE);
DMA_FROM_DEVICE);
if (res)
goto out_err;
}
Expand Down
3 changes: 1 addition & 2 deletions drivers/scsi/libsas/sas_discover.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
*
*/

#include <linux/pci.h>
#include <linux/scatterlist.h>
#include <scsi/scsi_host.h>
#include <scsi/scsi_eh.h>
Expand Down Expand Up @@ -170,7 +169,7 @@ int sas_notify_lldd_dev_found(struct domain_device *dev)
if (res) {
printk("sas: driver on pcidev %s cannot handle "
"device %llx, error:%d\n",
pci_name(sas_ha->pcidev),
sas_ha->dev->bus_id,
SAS_ADDR(dev->sas_addr), res);
}
}
Expand Down
2 changes: 1 addition & 1 deletion drivers/scsi/libsas/sas_dump.c
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ void sas_dprint_phye(int phyid, enum phy_event pe)

void sas_dprint_hae(struct sas_ha_struct *sas_ha, enum ha_event he)
{
SAS_DPRINTK("ha %s: %s event\n", pci_name(sas_ha->pcidev),
SAS_DPRINTK("ha %s: %s event\n", sas_ha->dev->bus_id,
sas_hae_str[he]);
}

Expand Down
2 changes: 1 addition & 1 deletion include/scsi/libsas.h
Original file line number Diff line number Diff line change
Expand Up @@ -348,7 +348,7 @@ struct sas_ha_struct {

/* public: */
char *sas_ha_name;
struct pci_dev *pcidev; /* should be set */
struct device *dev; /* should be set */
struct module *lldd_module; /* should be set */

u8 *sas_addr; /* must be set */
Expand Down

0 comments on commit 1d1bbee

Please sign in to comment.