[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>
This commit is contained in:
@@ -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
|
* @ap: Structure to initialize
|
||||||
* @host: associated SCSI mid-layer structure
|
|
||||||
* @host_set: Collection of hosts to which @ap belongs
|
* @host_set: Collection of hosts to which @ap belongs
|
||||||
* @ent: Probe information provided by low-level driver
|
* @ent: Probe information provided by low-level driver
|
||||||
* @port_no: Port number associated with this ata_port
|
* @port_no: Port number associated with this ata_port
|
||||||
*
|
*
|
||||||
* Initialize a new ata_port structure, and its associated
|
* Initialize a new ata_port structure.
|
||||||
* scsi_host.
|
|
||||||
*
|
*
|
||||||
* LOCKING:
|
* LOCKING:
|
||||||
* Inherited from caller.
|
* Inherited from caller.
|
||||||
*/
|
*/
|
||||||
static void ata_host_init(struct ata_port *ap, struct Scsi_Host *host,
|
void ata_port_init(struct ata_port *ap, struct ata_host_set *host_set,
|
||||||
struct ata_host_set *host_set,
|
const struct ata_probe_ent *ent, unsigned int port_no)
|
||||||
const struct ata_probe_ent *ent, unsigned int port_no)
|
|
||||||
{
|
{
|
||||||
unsigned int i;
|
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->lock = &host_set->lock;
|
||||||
ap->flags = ATA_FLAG_DISABLED;
|
ap->flags = ATA_FLAG_DISABLED;
|
||||||
ap->id = host->unique_id;
|
ap->id = ata_unique_id++;
|
||||||
ap->host = host;
|
|
||||||
ap->ctl = ATA_DEVCTL_OBS;
|
ap->ctl = ATA_DEVCTL_OBS;
|
||||||
ap->host_set = host_set;
|
ap->host_set = host_set;
|
||||||
ap->dev = ent->dev;
|
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));
|
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
|
* ata_host_add - Attach low-level ATA driver to system
|
||||||
* @ent: Information provided by low-level driver
|
* @ent: Information provided by low-level driver
|
||||||
|
@@ -69,6 +69,8 @@ extern int ata_flush_cache(struct ata_device *dev);
|
|||||||
extern void ata_dev_init(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_task_ioctl(struct scsi_device *scsidev, void __user *arg);
|
||||||
extern int ata_cmd_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 */
|
/* libata-scsi.c */
|
||||||
|
Reference in New Issue
Block a user