summaryrefslogtreecommitdiffstats
path: root/drivers/ata
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2013-04-06 09:35:23 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2013-04-11 11:48:35 +0200
commitf3b911c82032d718e937bc5b0e80b61097fe5073 (patch)
treee748fd3a347f7e842135ebb2c92f9959591b0b9e /drivers/ata
parentfff0e0f741875f464b5b023f520a03df75193a76 (diff)
downloadbarebox-f3b911c82032d718e937bc5b0e80b61097fe5073.tar.gz
barebox-f3b911c82032d718e937bc5b0e80b61097fe5073.tar.xz
ata: Use dev_add_param_bool for probe parameter
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/ata')
-rw-r--r--drivers/ata/disk_ata_drive.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/drivers/ata/disk_ata_drive.c b/drivers/ata/disk_ata_drive.c
index 6fe526acc8..2cff584d2a 100644
--- a/drivers/ata/disk_ata_drive.c
+++ b/drivers/ata/disk_ata_drive.c
@@ -325,20 +325,18 @@ on_error:
return rc;
}
-static int ata_set_probe(struct device_d *class_dev, struct param_d *param,
- const char *val)
+static int ata_set_probe(struct param_d *param, void *priv)
{
- struct ata_port *port = container_of(class_dev, struct ata_port, class_dev);
- int ret, probe;
+ struct ata_port *port = priv;
+ int ret;
- if (port->initialized) {
- dev_info(class_dev, "already initialized\n");
+ if (!port->probe)
return 0;
- }
- probe = !!simple_strtoul(val, NULL, 0);
- if (!probe)
+ if (port->initialized) {
+ dev_info(&port->class_dev, "already initialized\n");
return 0;
+ }
ret = ata_port_init(port);
if (ret)
@@ -346,7 +344,7 @@ static int ata_set_probe(struct device_d *class_dev, struct param_d *param,
port->initialized = 1;
- return dev_param_set_generic(class_dev, param, "1");
+ return 0;
}
/**
@@ -367,7 +365,8 @@ int ata_port_register(struct ata_port *port)
if (ret)
return ret;
- dev_add_param(&port->class_dev, "probe", ata_set_probe, NULL, 0);
+ dev_add_param_bool(&port->class_dev, "probe", ata_set_probe,
+ NULL, &port->probe, port);
return ret;
}