From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752938AbbETIXz (ORCPT ); Wed, 20 May 2015 04:23:55 -0400 Received: from cantor2.suse.de ([195.135.220.15]:51163 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752053AbbETIXx (ORCPT ); Wed, 20 May 2015 04:23:53 -0400 Date: Wed, 20 May 2015 10:23:49 +0200 From: Jean Delvare To: Sudip Mukherjee Cc: Greg KH , Dan Carpenter , One Thousand Gnomes , linux-kernel@vger.kernel.org Subject: Re: [PATCH v5 WIP 2/5] staging: panel: use new parport device model Message-ID: <20150520102349.25c5d4a8@endymion.delvare> In-Reply-To: <1430907377-17147-2-git-send-email-sudipm.mukherjee@gmail.com> References: <1430907377-17147-1-git-send-email-sudipm.mukherjee@gmail.com> <1430907377-17147-2-git-send-email-sudipm.mukherjee@gmail.com> Organization: SUSE Linux X-Mailer: Claws Mail 3.10.1 (GTK+ 2.24.23; x86_64-suse-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Sudip, On Wed, 6 May 2015 15:46:14 +0530, Sudip Mukherjee wrote: > converted to use the new device-model parallel port. Hmm, leading capital? :-D > > Signed-off-by: Sudip Mukherjee > --- > drivers/staging/panel/panel.c | 20 +++++++++++++++----- > 1 file changed, 15 insertions(+), 5 deletions(-) > > diff --git a/drivers/staging/panel/panel.c b/drivers/staging/panel/panel.c > index 1d8ed8b..772a82a 100644 > --- a/drivers/staging/panel/panel.c > +++ b/drivers/staging/panel/panel.c > @@ -2188,6 +2188,18 @@ static struct notifier_block panel_notifier = { > 0 > }; > > +static int panel_probe(struct pardevice *par_dev) > +{ > + if (strcmp(par_dev->name, "panel")) > + return -ENODEV; > + return 0; > +} > + > +struct pardev_cb panel_cb = { If this stays there, it should be static. And it could be const as you never modify it. But as with i2c-parport I believe this variable should be local to function panel_attach(). > + .flags = 0, /*PARPORT_DEV_EXCL */ 0/NULL fields don't need to be explicitly initialized. > + .private = &pprt, > +}; > + > static void panel_attach(struct parport *port) > { > if (port->number != parport) > @@ -2199,10 +2211,7 @@ static void panel_attach(struct parport *port) > return; > } > > - pprt = parport_register_device(port, "panel", NULL, NULL, /* pf, kf */ > - NULL, > - /*PARPORT_DEV_EXCL */ > - 0, (void *)&pprt); > + pprt = parport_register_dev_model(port, "panel", &panel_cb, 0); > if (pprt == NULL) { > pr_err("%s: port->number=%d parport=%d, parport_register_device() failed\n", > __func__, port->number, parport); > @@ -2256,8 +2265,9 @@ static void panel_detach(struct parport *port) > > static struct parport_driver panel_driver = { > .name = "panel", > - .attach = panel_attach, > + .match_port = panel_attach, > .detach = panel_detach, > + .probe = panel_probe, > }; > > /* init function */ -- Jean Delvare SUSE L3 Support