summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian King <brking@us.ibm.com>2006-08-07 14:27:17 -0500
committerJeff Garzik <jeff@garzik.org>2006-08-09 00:08:38 -0400
commit155a8a9c8f4084016d9e27bf03ba1f19201438f4 (patch)
tree31ea68dd479537b3d1e039f124e34d4270cb9eb8
parentb03732f006bd1ecee32587ec8235c41af5ad905f (diff)
[PATCH] libata: Add ata_port_init
Separate out the ata_port initialization from ata_host_init so that it can be used in future SAS patches. Signed-off-by: Brian King <brking@us.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
-rw-r--r--drivers/scsi/libata-core.c49
-rw-r--r--drivers/scsi/libata.h2
2 files changed, 36 insertions, 15 deletions
diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c
index 886440b128a5..f553c9dd962d 100644
--- a/drivers/scsi/libata-core.c
+++ b/drivers/scsi/libata-core.c
@@ -5218,35 +5218,25 @@ void ata_dev_init(struct ata_device *dev)
}
/**
- * ata_host_init - Initialize an ata_port structure
+ * ata_port_init - Initialize an ata_port structure
* @ap: Structure to initialize
- * @host: associated SCSI mid-layer structure
* @host_set: Collection of hosts to which @ap belongs
* @ent: Probe information provided by low-level driver
* @port_no: Port number associated with this ata_port
*
- * Initialize a new ata_port structure, and its associated
- * scsi_host.
+ * Initialize a new ata_port structure.
*
* LOCKING:
* Inherited from caller.
*/
-static void ata_host_init(struct ata_port *ap, struct Scsi_Host *host,
- struct ata_host_set *host_set,
- const struct ata_probe_ent *ent, unsigned int port_no)
+void ata_port_init(struct ata_port *ap, struct ata_host_set *host_set,
+ const struct ata_probe_ent *ent, unsigned int port_no)
{
unsigned int i;
- host->max_id = 16;
- host->max_lun = 1;
- host->max_channel = 1;
- host->unique_id = ata_unique_id++;
- host->max_cmd_len = 12;
-
ap->lock = &host_set->lock;
ap->flags = ATA_FLAG_DISABLED;
- ap->id = host->unique_id;
- ap->host = host;
+ ap->id = ata_unique_id++;
ap->ctl = ATA_DEVCTL_OBS;
ap->host_set = host_set;
ap->dev = ent->dev;
@@ -5298,6 +5288,35 @@ static void ata_host_init(struct ata_port *ap, struct Scsi_Host *host,
}
/**
+ * ata_host_init - Initialize an ata_port structure
+ * @ap: Structure to initialize
+ * @host: associated SCSI mid-layer structure
+ * @host_set: Collection of hosts to which @ap belongs
+ * @ent: Probe information provided by low-level driver
+ * @port_no: Port number associated with this ata_port
+ *
+ * Initialize a new ata_port structure, and its associated
+ * scsi_host.
+ *
+ * LOCKING:
+ * Inherited from caller.
+ */
+
+static void ata_host_init(struct ata_port *ap, struct Scsi_Host *host,
+ struct ata_host_set *host_set,
+ const struct ata_probe_ent *ent, unsigned int port_no)
+{
+ ata_port_init(ap, host_set, ent, port_no);
+ ap->host = host;
+
+ host->unique_id = ap->id;
+ host->max_id = 16;
+ host->max_lun = 1;
+ host->max_channel = 1;
+ host->max_cmd_len = 12;
+}
+
+/**
* ata_host_add - Attach low-level ATA driver to system
* @ent: Information provided by low-level driver
* @host_set: Collections of ports to which we add
diff --git a/drivers/scsi/libata.h b/drivers/scsi/libata.h
index c325679d9b54..b38aa4a286be 100644
--- a/drivers/scsi/libata.h
+++ b/drivers/scsi/libata.h
@@ -69,6 +69,8 @@ extern int ata_flush_cache(struct ata_device *dev);
extern void ata_dev_init(struct ata_device *dev);
extern int ata_task_ioctl(struct scsi_device *scsidev, void __user *arg);
extern int ata_cmd_ioctl(struct scsi_device *scsidev, void __user *arg);
+extern void ata_port_init(struct ata_port *ap, struct ata_host_set *host_set,
+ const struct ata_probe_ent *ent, unsigned int port_no);
/* libata-scsi.c */