[PATCH 3/5] ata: Add init callback to ata_port_operations

Sascha Hauer s.hauer at pengutronix.de
Fri Mar 8 05:35:49 EST 2013


Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
 drivers/ata/disk_ata_drive.c | 6 ++++++
 include/ata_drive.h          | 1 +
 2 files changed, 7 insertions(+)

diff --git a/drivers/ata/disk_ata_drive.c b/drivers/ata/disk_ata_drive.c
index a6deb74..6fe526a 100644
--- a/drivers/ata/disk_ata_drive.c
+++ b/drivers/ata/disk_ata_drive.c
@@ -261,6 +261,12 @@ static int ata_port_init(struct ata_port *port)
 	struct ata_port_operations *ops = port->ops;
 	struct device_d *dev = &port->class_dev;
 
+	if (ops->init) {
+		rc = ops->init(port);
+		if (rc)
+			return rc;
+	}
+
 	port->id = dma_alloc(SECTOR_SIZE);
 
 	port->blk.dev = dev;
diff --git a/include/ata_drive.h b/include/ata_drive.h
index 876aa74..4f8b6c0 100644
--- a/include/ata_drive.h
+++ b/include/ata_drive.h
@@ -80,6 +80,7 @@ struct ata_ioports {
 struct ata_port;
 
 struct ata_port_operations {
+	int (*init)(struct ata_port *port);
 	int (*read)(struct ata_port *port, void *buf, unsigned int block, int num_blocks);
 	int (*write)(struct ata_port *port, const void *buf, unsigned int block, int num_blocks);
 	int (*read_id)(struct ata_port *port, void *buf);
-- 
1.8.2.rc2




More information about the barebox mailing list