Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 324801
b: refs/heads/master
c: 4aa09d4
h: refs/heads/master
i:
  324799: d3a6042
v: v3
  • Loading branch information
Jens Taprogge authored and Greg Kroah-Hartman committed Sep 4, 2012
1 parent dd4ba10 commit 5a93a95
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 36 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: fdfc8cf5d28d6ce6fbf795aab456921f4f64d063
refs/heads/master: 4aa09d47d45ee8ced196c49031159ada2aef5b1d
24 changes: 1 addition & 23 deletions trunk/drivers/staging/ipack/devices/ipoctal.c
Original file line number Diff line number Diff line change
Expand Up @@ -777,27 +777,6 @@ static const struct tty_operations ipoctal_fops = {
.hangup = ipoctal_hangup,
};

static int ipoctal_match(struct ipack_device *dev)
{
int res;
unsigned char board_id;

if ((!dev->bus->ops) || (!dev->bus->ops->map_space) ||
(!dev->bus->ops->unmap_space))
return 0;

res = dev->bus->ops->map_space(dev, 0, IPACK_ID_SPACE);
if (res)
return 0;

res = ipoctal_check_model(dev, &board_id);
dev->bus->ops->unmap_space(dev, IPACK_ID_SPACE);
if (!res)
return 1;

return 0;
}

static int ipoctal_probe(struct ipack_device *dev)
{
int res;
Expand Down Expand Up @@ -858,8 +837,7 @@ static DEFINE_IPACK_DEVICE_TABLE(ipoctal_ids) = {
MODULE_DEVICE_TABLE(ipack, ipoctal_ids);

static const struct ipack_driver_ops ipoctal_drv_ops = {
.match = ipoctal_match,
.probe = ipoctal_probe,
.probe = ipoctal_probe,
.remove = ipoctal_remove,
};

Expand Down
43 changes: 33 additions & 10 deletions trunk/drivers/staging/ipack/ipack.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,20 +26,43 @@ static void ipack_device_release(struct device *dev)
kfree(device);
}

static int ipack_bus_match(struct device *device, struct device_driver *driver)
static inline const struct ipack_device_id *
ipack_match_one_device(const struct ipack_device_id *id,
const struct ipack_device *device)
{
int ret;
struct ipack_device *dev = to_ipack_dev(device);
struct ipack_driver *drv = to_ipack_driver(driver);
if ((id->format == IPACK_ANY_ID || id->format == device->id_format) &&
(id->vendor == IPACK_ANY_ID || id->vendor == device->id_vendor) &&
(id->device == IPACK_ANY_ID || id->device == device->id_device))
return id;
return NULL;
}

if ((!drv->ops) || (!drv->ops->match))
return -EINVAL;
static const struct ipack_device_id *
ipack_match_id(const struct ipack_device_id *ids, struct ipack_device *idev)
{
if (ids) {
while (ids->vendor || ids->device) {
if (ipack_match_one_device(ids, idev))
return ids;
ids++;
}
}
return NULL;
}

ret = drv->ops->match(dev);
if (ret)
dev->driver = drv;
static int ipack_bus_match(struct device *dev, struct device_driver *drv)
{
struct ipack_device *idev = to_ipack_dev(dev);
struct ipack_driver *idrv = to_ipack_driver(drv);
const struct ipack_device_id *found_id;

return ret;
found_id = ipack_match_id(idrv->id_table, idev);
if (found_id) {
idev->driver = idrv;
return 1;
}

return 0;
}

static int ipack_bus_probe(struct device *device)
Expand Down
2 changes: 0 additions & 2 deletions trunk/drivers/staging/ipack/ipack.h
Original file line number Diff line number Diff line change
Expand Up @@ -84,13 +84,11 @@ struct ipack_device {
/**
* struct ipack_driver_ops -- callbacks to mezzanine driver for installing/removing one device
*
* @match: Match function
* @probe: Probe function
* @remove: tell the driver that the carrier board wants to remove one device
*/

struct ipack_driver_ops {
int (*match) (struct ipack_device *dev);
int (*probe) (struct ipack_device *dev);
void (*remove) (struct ipack_device *dev);
};
Expand Down

0 comments on commit 5a93a95

Please sign in to comment.