[PATCH] libata: Add ata_port_init
authorBrian King <brking@us.ibm.com>
Mon, 7 Aug 2006 19:27:17 +0000 (14:27 -0500)
committerJeff Garzik <jeff@garzik.org>
Wed, 9 Aug 2006 04:08:38 +0000 (00:08 -0400)
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>
drivers/scsi/libata-core.c
drivers/scsi/libata.h

index 886440b128a5925753778c508f2cbad51f528370..f553c9dd962db88c42731a34656604f2dcab6c88 100644 (file)
@@ -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;
@@ -5297,6 +5287,35 @@ static void ata_host_init(struct ata_port *ap, struct Scsi_Host *host,
        memcpy(&ap->ioaddr, &ent->port[port_no], sizeof(struct ata_ioports));
 }
 
+/**
+ *     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
index c325679d9b545dc666496b941f91128d39a38546..b38aa4a286be5f7b62a6883bd09e7c7859ce92b0 100644 (file)
@@ -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 */