All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dejin Zheng <zhengdejin5@gmail.com>
To: Grygorii Strashko <grygorii.strashko@ti.com>
Cc: gregkh@linuxfoundation.org, linux-i2c@vger.kernel.org,
	linux-kernel@vger.kernel.org, Wolfram Sang <wsa@the-dreams.de>
Subject: Re: [PATCH v2 1/2] drivers: provide devm_platform_request_irq()
Date: Wed, 27 May 2020 21:31:12 +0800	[thread overview]
Message-ID: <20200527133112.GC7143@nuc8i5> (raw)
In-Reply-To: <c280f421-fadf-41ab-3227-6377906f2a1c@ti.com>

On Tue, May 26, 2020 at 08:11:22PM +0300, Grygorii Strashko wrote:
> 
> 
> On 23/05/2020 17:51, Dejin Zheng wrote:
> > It will call devm_request_irq() after platform_get_irq() function
> > in many drivers, sometimes, it is not right for the error handling
> > of these two functions in some drivers. so provide this function
> > to simplify the driver.
> > 
> > Cc: Michal Simek <michal.simek@xilinx.com>
> > Cc: Wolfram Sang <wsa@the-dreams.de>
> > Signed-off-by: Dejin Zheng <zhengdejin5@gmail.com>
> > ---
> > v1 -> v2:
> > 	- The patch content has not changed. just resend it by this discussion:
> > 	  https://patchwork.ozlabs.org/project/linux-i2c/patch/20200520144821.8069-1-zhengdejin5@gmail.com/
> > 
> >   drivers/base/platform.c         | 33 +++++++++++++++++++++++++++++++++
> >   include/linux/platform_device.h |  4 ++++
> >   2 files changed, 37 insertions(+)
> > 
> > diff --git a/drivers/base/platform.c b/drivers/base/platform.c
> > index c0d0a5490ac6..1d2fd1ea3bc5 100644
> > --- a/drivers/base/platform.c
> > +++ b/drivers/base/platform.c
> > @@ -275,6 +275,39 @@ int platform_irq_count(struct platform_device *dev)
> >   }
> >   EXPORT_SYMBOL_GPL(platform_irq_count);
> > +/**
> > + * devm_platform_request_irq - get an irq and allocate an interrupt
> > + *				line for a managed device
> > + * @pdev: platform device
> > + * @num: IRQ number index
> > + * @irq: get an IRQ for a device if irq != NULL
> > + * @handler: function to be called when the IRQ occurs
> > + * @irqflags: interrupt type flags
> > + * @devname: an ascii name for the claiming device, dev_name(dev) if NULL
> > + * @dev_id: a cookie passed back to the handler function
> > + *
> > + * Return: zero on success, negative error number on failure.
> > + */
> > +int devm_platform_request_irq(struct platform_device *pdev, unsigned int num,
> > +		unsigned int *irq, irq_handler_t handler,
> > +		unsigned long irqflags, const char *devname, void *dev_id)
> > +{
> > +	int tmp_irq, ret;
> > +
> > +	tmp_irq = platform_get_irq(pdev, num);
> > +	if (tmp_irq < 0)
> > +		return tmp_irq;
> > +
> > +	ret = devm_request_irq(&pdev->dev, tmp_irq, handler, irqflags,
> > +				devname, dev_id);
> > +	if (ret < 0)
> > +		dev_err(&pdev->dev, "can't request IRQ\n");
> > +	else if (irq != NULL)
> > +		*irq = tmp_irq;
> > +	return ret;
> > +}
> > +EXPORT_SYMBOL_GPL(devm_platform_request_irq);
> > +
> >   /**
> >    * platform_get_resource_byname - get a resource for a device by name
> >    * @dev: platform device
> > diff --git a/include/linux/platform_device.h b/include/linux/platform_device.h
> > index 77a2aada106d..d94652deea5c 100644
> > --- a/include/linux/platform_device.h
> > +++ b/include/linux/platform_device.h
> > @@ -11,6 +11,7 @@
> >   #define _PLATFORM_DEVICE_H_
> >   #include <linux/device.h>
> > +#include <linux/interrupt.h>
> >   #define PLATFORM_DEVID_NONE	(-1)
> >   #define PLATFORM_DEVID_AUTO	(-2)
> > @@ -70,6 +71,9 @@ devm_platform_ioremap_resource_byname(struct platform_device *pdev,
> >   extern int platform_get_irq(struct platform_device *, unsigned int);
> >   extern int platform_get_irq_optional(struct platform_device *, unsigned int);
> >   extern int platform_irq_count(struct platform_device *);
> > +extern int devm_platform_request_irq(struct platform_device *pdev,
> > +		unsigned int num, unsigned int *irq, irq_handler_t handler,
> > +		unsigned long irqflags, const char *devname, void *dev_id);
> 
> 
> it has to be documented in devres.rst
>
Grygorii, Thnaks! I will add it in patch v3.

BTW, the Gmail will prevent me sending messages to a large number of
recipients, So I reduced some recipients, but still retained i2c and
linux kernel mail list. sorry!

BR,
Dejin

> >   extern struct resource *platform_get_resource_byname(struct platform_device *,
> >   						     unsigned int,
> >   						     const char *);
> > 
> 
> 
> 
> -- 
> Best regards,
> grygorii

  reply	other threads:[~2020-05-27 13:31 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-23 14:51 [PATCH v2 0/2] drivers: provide devm_platform_request_irq() Dejin Zheng
2020-05-23 14:51 ` [PATCH v2 1/2] " Dejin Zheng
2020-05-26 17:11   ` Grygorii Strashko
2020-05-27 13:31     ` Dejin Zheng [this message]
2020-05-23 14:51 ` [PATCH v2 2/2] i2c: busses: convert to devm_platform_request_irq() Dejin Zheng
2020-05-25 11:42   ` Linus Walleij
2020-05-23 16:08 ` [PATCH v2 0/2] drivers: provide devm_platform_request_irq() Wolfram Sang
2020-05-23 17:09   ` Dejin Zheng
2020-05-25  7:05     ` Michal Simek
2020-05-26 17:13       ` Grygorii Strashko
2020-05-27 13:47         ` Dejin Zheng
2020-05-24  7:00 [PATCH v2 1/2] " Markus Elfring
2020-05-24  7:00 ` Markus Elfring

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=20200527133112.GC7143@nuc8i5 \
    --to=zhengdejin5@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=grygorii.strashko@ti.com \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=wsa@the-dreams.de \
    /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.