All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Lee Jones <lee.jones@linaro.org>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
	linux-kernel@vger.kernel.org,
	Samuel Ortiz <sameo@linux.intel.com>,
	Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
Subject: Re: [PATCH v1 1/5] mfd: lpc_sch: reduce duplicate code
Date: Mon, 01 Sep 2014 13:21:43 +0300	[thread overview]
Message-ID: <1409566903.30155.47.camel@linux.intel.com> (raw)
In-Reply-To: <20140901091317.GG7374@lee--X1>

On Mon, 2014-09-01 at 10:13 +0100, Lee Jones wrote:
> On Fri, 22 Aug 2014, Andy Shevchenko wrote:
> 
> > This patch refactors the driver to use helper functions instead of
> > copy'n'pasted pieces of code.
> > 
> > Tested-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
> > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > ---
> >  drivers/mfd/lpc_sch.c | 146 ++++++++++++++++++++++----------------------------
> >  1 file changed, 64 insertions(+), 82 deletions(-)
> > 
> > diff --git a/drivers/mfd/lpc_sch.c b/drivers/mfd/lpc_sch.c
> > index 4ee7550..0f01ef0 100644
> > --- a/drivers/mfd/lpc_sch.c
> > +++ b/drivers/mfd/lpc_sch.c
> > @@ -40,41 +40,6 @@
> 
> [...]

Thanks for review, my answers below.

> 
> > -static int lpc_sch_probe(struct pci_dev *dev,
> > -				const struct pci_device_id *id)
> > +static int lpc_sch_get_io(struct pci_dev *pdev, int where, const char *name,
> > +			  struct resource *res, int size)
> >  {
> >  	unsigned int base_addr_cfg;
> >  	unsigned short base_addr;
> > -	int i, cells = 0;
> > -	int ret;
> >  
> > -	pci_read_config_dword(dev, SMBASE, &base_addr_cfg);
> > +	pci_read_config_dword(pdev, where, &base_addr_cfg);
> >  	base_addr = 0;
> >  	if (!(base_addr_cfg & (1 << 31)))
> > -		dev_warn(&dev->dev, "Decode of the SMBus I/O range disabled\n");
> > +		dev_warn(&pdev->dev, "Decode of the %s I/O range disabled\n",
> > +			 name);
> >  	else
> >  		base_addr = (unsigned short)base_addr_cfg;
> >  
> >  	if (base_addr == 0) {
> > -		dev_warn(&dev->dev, "I/O space for SMBus uninitialized\n");
> > -	} else {
> > -		lpc_sch_cells[cells++] = isch_smbus_cell;
> > -		smbus_sch_resource.start = base_addr;
> > -		smbus_sch_resource.end = base_addr + SMBUS_IO_SIZE - 1;
> > +		dev_warn(&pdev->dev, "I/O space for %s uninitialized\n", name);
> > +		return -ENODEV;
> 
> If you're going to return an error, you need to use dev_err() above.

Okay.

> >  	}
> >  
> > -	pci_read_config_dword(dev, GPIOBASE, &base_addr_cfg);
> > -	base_addr = 0;
> > -	if (!(base_addr_cfg & (1 << 31)))
> > -		dev_warn(&dev->dev, "Decode of the GPIO I/O range disabled\n");
> > +	res->start = base_addr;
> > +	res->end = base_addr + size - 1;
> > +	res->flags = IORESOURCE_IO;
> > +
> > +	return 0;
> > +}
> > +
> > +static int lpc_sch_populate_cell(struct pci_dev *pdev, int where,
> > +				 const char *name, int size, int id,
> > +				 struct mfd_cell *cell)
> > +{
> > +	struct resource *res;
> > +	int ret;
> > +
> > +	res = devm_kzalloc(&pdev->dev, sizeof(*res), GFP_KERNEL);
> > +	if (!res)
> > +		return -ENOMEM;
> > +
> > +	ret = lpc_sch_get_io(pdev, where, name, res, size);
> > +	if (ret)
> > +		return ret;
> > +
> > +	memset(cell, 0, sizeof(*cell));
> > +
> > +	cell->name = name;
> > +	cell->resources = res;
> > +	cell->num_resources = 1;
> > +	cell->ignore_resource_conflicts = true;
> > +	cell->id = id;
> > +
> > +	return 0;
> > +}
> > +
> > +static int lpc_sch_probe(struct pci_dev *dev,
> > +			 const struct pci_device_id *id)
> > +{
> > +	struct mfd_cell lpc_sch_cells[3];
> > +	int size, cells = 0;
> > +	int ret;
> > +
> > +	ret = lpc_sch_populate_cell(dev, SMBASE, "isch_smbus", SMBUS_IO_SIZE,
> > +				    id->device, &lpc_sch_cells[cells]);
> > +	if (!ret)
> > +		cells++;
> 
> You're masking errors here.  You need to return on error.

No, I don't. It's a local error, I just need to understand if the HW has
or hasn't the IP part we're looking for.

I could, let's say, return true or false, if you prefer, with the above
meaning.


-- 
Andy Shevchenko <andriy.shevchenko@intel.com>
Intel Finland Oy


  reply	other threads:[~2014-09-01 10:22 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-22 10:58 [PATCH v1 0/5] mfd: lpc_sch: Intel Quark support Andy Shevchenko
2014-08-22 10:58 ` [PATCH v1 1/5] mfd: lpc_sch: reduce duplicate code Andy Shevchenko
2014-09-01  9:13   ` Lee Jones
2014-09-01 10:21     ` Andy Shevchenko [this message]
2014-09-01 11:38       ` Lee Jones
2014-09-01 11:48         ` Andy Shevchenko
2014-09-01 13:46           ` Lee Jones
2014-09-01 14:00             ` Andy Shevchenko
2014-08-22 10:58 ` [PATCH v1 2/5] mfd: lpc_sch: better code manageability with chipset info struct Andy Shevchenko
2014-09-01  9:16   ` Lee Jones
2014-09-01 10:25     ` Andy Shevchenko
2014-09-02  0:17       ` Chang, Rebecca Swee Fun
2014-09-02  7:25         ` Lee Jones
2014-08-22 10:58 ` [PATCH v1 3/5] pci_ids: add support for Intel Quark ILB Andy Shevchenko
2014-08-29 14:27   ` Bjorn Helgaas
2014-09-01  9:14     ` Andy Shevchenko
2014-09-02  0:14       ` Chang, Rebecca Swee Fun
2014-08-22 10:58 ` [PATCH v1 4/5] mfd: lpc_sch: Add support for Intel Quark X1000 Andy Shevchenko
2014-09-01  9:22   ` Lee Jones
2014-09-01 10:28     ` Andy Shevchenko
2014-09-01 11:31       ` Lee Jones
2014-08-22 10:58 ` [PATCH v1 5/5] mfd: lpc_sch: remove FSF address Andy Shevchenko
2014-08-29 14:26   ` Bjorn Helgaas
2014-08-29  9:57 ` [PATCH v1 0/5] mfd: lpc_sch: Intel Quark support Andy Shevchenko
2014-08-29 11:00   ` Lee Jones
2014-09-01 11:40     ` Andy Shevchenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1409566903.30155.47.camel@linux.intel.com \
    --to=andriy.shevchenko@linux.intel.com \
    --cc=bhelgaas@google.com \
    --cc=lee.jones@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rebecca.swee.fun.chang@intel.com \
    --cc=sameo@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.