[PATCH v2 06/20] Staging: ipack: remove field driver from struct ipack_device.

From: Samuel Iglesias GonsÃlvez
Date: Tue Sep 11 2012 - 07:39:16 EST


From: Jens Taprogge <jens.taprogge@xxxxxxxxxxxx>

After a successful match is found the driver field in struct device is
set by the core device code. We can use this field.

Signed-off-by: Jens Taprogge <jens.taprogge@xxxxxxxxxxxx>
Signed-off-by: Samuel Iglesias GonsÃlvez <siglesias@xxxxxxxxxx>
---
drivers/staging/ipack/ipack.c | 17 +++++++----------
drivers/staging/ipack/ipack.h | 2 --
2 files changed, 7 insertions(+), 12 deletions(-)

diff --git a/drivers/staging/ipack/ipack.c b/drivers/staging/ipack/ipack.c
index 1ad73e5..6895426 100644
--- a/drivers/staging/ipack/ipack.c
+++ b/drivers/staging/ipack/ipack.c
@@ -59,32 +59,29 @@ static int ipack_bus_match(struct device *dev, struct device_driver *drv)
const struct ipack_device_id *found_id;

found_id = ipack_match_id(idrv->id_table, idev);
- if (found_id) {
- idev->driver = idrv;
- return 1;
- }
-
- return 0;
+ return found_id ? 1 : 0;
}

static int ipack_bus_probe(struct device *device)
{
struct ipack_device *dev = to_ipack_dev(device);
+ struct ipack_driver *drv = to_ipack_driver(device->driver);

- if (!dev->driver->ops->probe)
+ if (!drv->ops->probe)
return -EINVAL;

- return dev->driver->ops->probe(dev);
+ return drv->ops->probe(dev);
}

static int ipack_bus_remove(struct device *device)
{
struct ipack_device *dev = to_ipack_dev(device);
+ struct ipack_driver *drv = to_ipack_driver(device->driver);

- if (!dev->driver->ops->remove)
+ if (!drv->ops->remove)
return -EINVAL;

- dev->driver->ops->remove(dev);
+ drv->ops->remove(dev);
return 0;
}

diff --git a/drivers/staging/ipack/ipack.h b/drivers/staging/ipack/ipack.h
index 89af9e4..ad4c3bf 100644
--- a/drivers/staging/ipack/ipack.h
+++ b/drivers/staging/ipack/ipack.h
@@ -53,7 +53,6 @@ struct ipack_addr_space {
* @bus_nr: IP bus number where the device is plugged
* @slot: Slot where the device is plugged in the carrier board
* @irq: IRQ vector
- * @driver: Pointer to the ipack_driver that manages the device
* @bus: ipack_bus_device where the device is plugged to.
* @id_space: Virtual address to ID space.
* @io_space: Virtual address to IO space.
@@ -68,7 +67,6 @@ struct ipack_device {
unsigned int bus_nr;
unsigned int slot;
unsigned int irq;
- struct ipack_driver *driver;
struct ipack_bus_device *bus;
struct ipack_addr_space id_space;
struct ipack_addr_space io_space;
--
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/