Signed-off-by: Sascha Hauer <[email protected]>
---
 drivers/ata/disk_ata_drive.c | 21 ++++++++++-----------
 include/ata_drive.h          |  1 +
 2 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/drivers/ata/disk_ata_drive.c b/drivers/ata/disk_ata_drive.c
index 6fe526a..2cff584 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;
 }
diff --git a/include/ata_drive.h b/include/ata_drive.h
index 4f8b6c0..049082f 100644
--- a/include/ata_drive.h
+++ b/include/ata_drive.h
@@ -95,6 +95,7 @@ struct ata_port {
        struct block_device blk;
        uint16_t *id;
        int initialized;
+       int probe;
 };
 
 int ide_port_register(struct device_d *, struct ata_ioports *);
-- 
1.8.2.rc2


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to