From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752069AbbEFKQt (ORCPT ); Wed, 6 May 2015 06:16:49 -0400 Received: from mail-pd0-f174.google.com ([209.85.192.174]:36110 "EHLO mail-pd0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751962AbbEFKQn (ORCPT ); Wed, 6 May 2015 06:16:43 -0400 From: Sudip Mukherjee To: Greg KH , Dan Carpenter , One Thousand Gnomes , Jean Delvare Cc: linux-kernel@vger.kernel.org, Sudip Mukherjee Subject: [PATCH v5 WIP 4/5] i2c-parport: use new parport device model Date: Wed, 6 May 2015 15:46:16 +0530 Message-Id: <1430907377-17147-4-git-send-email-sudipm.mukherjee@gmail.com> X-Mailer: git-send-email 1.8.1.2 In-Reply-To: <1430907377-17147-1-git-send-email-sudipm.mukherjee@gmail.com> References: <1430907377-17147-1-git-send-email-sudipm.mukherjee@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org modify i2c-parport driver to use the new parallel port device model. Signed-off-by: Sudip Mukherjee --- 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