static void mcb_shutdown(struct device *dev) { struct mcb_driver *mdrv = to_mcb_driver(dev->driver); struct mcb_device *mdev = to_mcb_device(dev); if (mdrv && mdrv->shutdown) mdrv->shutdown(mdev); }
static int mcb_remove(struct device *dev) { struct mcb_driver *mdrv = to_mcb_driver(dev->driver); struct mcb_device *mdev = to_mcb_device(dev); mdrv->remove(mdev); put_device(&mdev->dev); return 0; }
static int mcb_probe(struct device *dev) { struct mcb_driver *mdrv = to_mcb_driver(dev->driver); struct mcb_device *mdev = to_mcb_device(dev); const struct mcb_device_id *found_id; found_id = mcb_match_id(mdrv->id_table, mdev); if (!found_id) return -ENODEV; return mdrv->probe(mdev, found_id); }
static int mcb_match(struct device *dev, struct device_driver *drv) { struct mcb_driver *mdrv = to_mcb_driver(drv); struct mcb_device *mdev = to_mcb_device(dev); const struct mcb_device_id *found_id; found_id = mcb_match_id(mdrv->id_table, mdev); if (found_id) return 1; return 0; }