Messages in this thread Patch in this message | | | From | Sudip Mukherjee <> | Subject | [PATCH v5 WIP 4/5] i2c-parport: use new parport device model | Date | Wed, 6 May 2015 15:46:16 +0530 |
| |
modify i2c-parport driver to use the new parallel port device model.
Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org> --- drivers/i2c/busses/i2c-parport.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-)
diff --git a/drivers/i2c/busses/i2c-parport.c b/drivers/i2c/busses/i2c-parport.c index a9b25c3..6db5b45 100644 --- a/drivers/i2c/busses/i2c-parport.c +++ b/drivers/i2c/busses/i2c-parport.c @@ -163,6 +163,11 @@ static void i2c_parport_irq(void *data) "SMBus alert received but no ARA client!\n"); } +static struct pardev_cb i2c_parport_cb = { + .flags = PARPORT_FLAG_EXCL, + .irq_func = i2c_parport_irq, +}; + static void i2c_parport_attach(struct parport *port) { struct i2c_par *adapter; @@ -184,11 +189,12 @@ static void i2c_parport_attach(struct parport *port) printk(KERN_ERR "i2c-parport: Failed to kzalloc\n"); return; } + i2c_parport_cb.private = adapter; pr_debug("i2c-parport: attaching to %s\n", port->name); parport_disable_irq(port); - adapter->pdev = parport_register_device(port, "i2c-parport", - NULL, NULL, i2c_parport_irq, PARPORT_FLAG_EXCL, adapter); + adapter->pdev = parport_register_dev_model(port, "i2c-parport", + &i2c_parport_cb, i); if (!adapter->pdev) { printk(KERN_ERR "i2c-parport: Unable to register with parport\n"); goto err_free; @@ -281,10 +287,18 @@ static void i2c_parport_detach(struct parport *port) mutex_unlock(&adapter_list_lock); } +static int i2c_parport_probe(struct pardevice *par_dev) +{ + if (strcmp(par_dev->name, "i2c-parport")) + return -ENODEV; + return 0; +} + static struct parport_driver i2c_parport_driver = { .name = "i2c-parport", - .attach = i2c_parport_attach, + .match_port = i2c_parport_attach, .detach = i2c_parport_detach, + .probe = i2c_parport_probe, }; /* ----- Module loading, unloading and information ------------------------ */ -- 1.8.1.2
| |