Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b03732f0 authored by Brian King's avatar Brian King Committed by Jeff Garzik
Browse files

[PATCH] libata: Add ata_host_set_init



Add ata_host_set_init in preparation for SAS attached SATA.

Signed-off-by: default avatarBrian King <brking@us.ibm.com>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent c256e95f
Loading
Loading
Loading
Loading
+24 −4
Original line number Diff line number Diff line
@@ -5350,6 +5350,28 @@ static struct ata_port * ata_host_add(const struct ata_probe_ent *ent,
	return NULL;
}

/**
 *	ata_sas_host_init - Initialize a host_set struct
 *	@host_set:	host_set to initialize
 *	@dev:		device host_set is attached to
 *	@flags:	host_set flags
 *	@ops:		port_ops
 *
 *	LOCKING:
 *	PCI/etc. bus probe sem.
 *
 */

void ata_host_set_init(struct ata_host_set *host_set,
		       struct device *dev, unsigned long flags,
		       const struct ata_port_operations *ops)
{
	spin_lock_init(&host_set->lock);
	host_set->dev = dev;
	host_set->flags = flags;
	host_set->ops = ops;
}

/**
 *	ata_device_add - Register hardware device with ATA and SCSI layers
 *	@ent: Probe information describing hardware device to be registered
@@ -5381,15 +5403,12 @@ int ata_device_add(const struct ata_probe_ent *ent)
			   (ent->n_ports * sizeof(void *)), GFP_KERNEL);
	if (!host_set)
		return 0;
	spin_lock_init(&host_set->lock);

	host_set->dev = dev;
	ata_host_set_init(host_set, dev, ent->host_set_flags, ent->port_ops);
	host_set->n_ports = ent->n_ports;
	host_set->irq = ent->irq;
	host_set->mmio_base = ent->mmio_base;
	host_set->private_data = ent->private_data;
	host_set->ops = ent->port_ops;
	host_set->flags = ent->host_set_flags;

	/* register each port bound to this device */
	for (i = 0; i < ent->n_ports; i++) {
@@ -5908,6 +5927,7 @@ EXPORT_SYMBOL_GPL(sata_deb_timing_hotplug);
EXPORT_SYMBOL_GPL(sata_deb_timing_long);
EXPORT_SYMBOL_GPL(ata_std_bios_param);
EXPORT_SYMBOL_GPL(ata_std_ports);
EXPORT_SYMBOL_GPL(ata_host_set_init);
EXPORT_SYMBOL_GPL(ata_device_add);
EXPORT_SYMBOL_GPL(ata_port_detach);
EXPORT_SYMBOL_GPL(ata_host_set_remove);
+2 −0
Original line number Diff line number Diff line
@@ -684,6 +684,8 @@ extern int ata_pci_clear_simplex(struct pci_dev *pdev);
#endif /* CONFIG_PCI */
extern int ata_device_add(const struct ata_probe_ent *ent);
extern void ata_port_detach(struct ata_port *ap);
extern void ata_host_set_init(struct ata_host_set *, struct device *,
			      unsigned long, const struct ata_port_operations *);
extern void ata_host_set_remove(struct ata_host_set *host_set);
extern int ata_scsi_detect(struct scsi_host_template *sht);
extern int ata_scsi_ioctl(struct scsi_device *dev, int cmd, void __user *arg);