From: Felipe Balbi <balbi-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Cc: tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org,
Joao.Pinto-HKixBCOQz3hWk0Htik3J/w@public.gmane.org,
sergei.shtylyov-M4DtvfQ/ZS1MRgGoP+s0PdBPR1lH4CV8@public.gmane.org,
peter.chen-KZfg59tc24xl57MIdRCFDg@public.gmane.org,
jun.li-KZfg59tc24xl57MIdRCFDg@public.gmane.org,
grygorii.strashko-l0cyMroinI0@public.gmane.org,
yoshihiro.shimoda.uh-zM6kxYcvzFBBDgjK7y7TUQ@public.gmane.org,
nsekhar-l0cyMroinI0@public.gmane.org,
linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Roger Quadros <rogerq-l0cyMroinI0@public.gmane.org>
Subject: Re: [PATCH v6 02/10] usb: dwc3: omap: Make the wrapper interrupt shared
Date: Mon, 11 Apr 2016 15:13:43 +0300 [thread overview]
Message-ID: <87h9f8ny14.fsf@intel.com> (raw)
In-Reply-To: <1460374506-9779-3-git-send-email-rogerq-l0cyMroinI0@public.gmane.org>
[-- Attachment #1: Type: text/plain, Size: 2022 bytes --]
Hi,
Roger Quadros <rogerq-l0cyMroinI0@public.gmane.org> writes:
> The wrapper interrupt is shared with OTG core so mark it IRQF_SHARED.
>
> Use request_threaded_irq() to ensure that irqflags match for the
> shared interrupt handlers. If we don't use request_treaded_irq() then
> forced threaded irq will set IRQF_ONESHOT and this won't match with
> the OTG irq handler.
then it seems you need to _first_ fix the OTG IRQ handler. Why does it
defer ? At a minimum, first switch to threaded IRQ handler, then (in
another patch) switch to IRQF_SHARED
> Signed-off-by: Roger Quadros <rogerq-l0cyMroinI0@public.gmane.org>
> ---
> drivers/usb/dwc3/dwc3-omap.c | 12 +++++++++---
> 1 file changed, 9 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/usb/dwc3/dwc3-omap.c b/drivers/usb/dwc3/dwc3-omap.c
> index 22e9606..51ca098 100644
> --- a/drivers/usb/dwc3/dwc3-omap.c
> +++ b/drivers/usb/dwc3/dwc3-omap.c
> @@ -274,19 +274,25 @@ static irqreturn_t dwc3_omap_interrupt(int irq, void *_omap)
> {
> struct dwc3_omap *omap = _omap;
> u32 reg;
> + int ret = IRQ_NONE;
>
> reg = dwc3_omap_read_irqmisc_status(omap);
>
> + if (reg)
> + ret = IRQ_HANDLED;
you can avoid the local variable by returning early here.
if (!reg)
return IRQ_NONE;
> if (reg & USBOTGSS_IRQMISC_DMADISABLECLR)
> omap->dma_status = false;
>
> dwc3_omap_write_irqmisc_status(omap, reg);
>
> reg = dwc3_omap_read_irq0_status(omap);
> + if (reg)
> + ret = IRQ_HANDLED;
and this check is probably unnecessary.
> @@ -506,8 +512,8 @@ static int dwc3_omap_probe(struct platform_device *pdev)
> reg = dwc3_omap_readl(omap->base, USBOTGSS_SYSCONFIG);
> omap->dma_status = !!(reg & USBOTGSS_SYSCONFIG_DMADISABLE);
>
> - ret = devm_request_irq(dev, omap->irq, dwc3_omap_interrupt, 0,
> - "dwc3-omap", omap);
> + ret = devm_request_threaded_irq(dev, omap->irq, dwc3_omap_interrupt,
this switch to threaded IRQ is not part of $subject.
--
balbi
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 818 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: Felipe Balbi <balbi@kernel.org>
To: Roger Quadros <rogerq@ti.com>
Cc: tony@atomide.com, Joao.Pinto@synopsys.com,
sergei.shtylyov@cogentembedded.com, peter.chen@freescale.com,
jun.li@freescale.com, grygorii.strashko@ti.com,
yoshihiro.shimoda.uh@renesas.com, nsekhar@ti.com,
linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-omap@vger.kernel.org, Roger Quadros <rogerq@ti.com>
Subject: Re: [PATCH v6 02/10] usb: dwc3: omap: Make the wrapper interrupt shared
Date: Mon, 11 Apr 2016 15:13:43 +0300 [thread overview]
Message-ID: <87h9f8ny14.fsf@intel.com> (raw)
In-Reply-To: <1460374506-9779-3-git-send-email-rogerq@ti.com>
[-- Attachment #1: Type: text/plain, Size: 1978 bytes --]
Hi,
Roger Quadros <rogerq@ti.com> writes:
> The wrapper interrupt is shared with OTG core so mark it IRQF_SHARED.
>
> Use request_threaded_irq() to ensure that irqflags match for the
> shared interrupt handlers. If we don't use request_treaded_irq() then
> forced threaded irq will set IRQF_ONESHOT and this won't match with
> the OTG irq handler.
then it seems you need to _first_ fix the OTG IRQ handler. Why does it
defer ? At a minimum, first switch to threaded IRQ handler, then (in
another patch) switch to IRQF_SHARED
> Signed-off-by: Roger Quadros <rogerq@ti.com>
> ---
> drivers/usb/dwc3/dwc3-omap.c | 12 +++++++++---
> 1 file changed, 9 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/usb/dwc3/dwc3-omap.c b/drivers/usb/dwc3/dwc3-omap.c
> index 22e9606..51ca098 100644
> --- a/drivers/usb/dwc3/dwc3-omap.c
> +++ b/drivers/usb/dwc3/dwc3-omap.c
> @@ -274,19 +274,25 @@ static irqreturn_t dwc3_omap_interrupt(int irq, void *_omap)
> {
> struct dwc3_omap *omap = _omap;
> u32 reg;
> + int ret = IRQ_NONE;
>
> reg = dwc3_omap_read_irqmisc_status(omap);
>
> + if (reg)
> + ret = IRQ_HANDLED;
you can avoid the local variable by returning early here.
if (!reg)
return IRQ_NONE;
> if (reg & USBOTGSS_IRQMISC_DMADISABLECLR)
> omap->dma_status = false;
>
> dwc3_omap_write_irqmisc_status(omap, reg);
>
> reg = dwc3_omap_read_irq0_status(omap);
> + if (reg)
> + ret = IRQ_HANDLED;
and this check is probably unnecessary.
> @@ -506,8 +512,8 @@ static int dwc3_omap_probe(struct platform_device *pdev)
> reg = dwc3_omap_readl(omap->base, USBOTGSS_SYSCONFIG);
> omap->dma_status = !!(reg & USBOTGSS_SYSCONFIG_DMADISABLE);
>
> - ret = devm_request_irq(dev, omap->irq, dwc3_omap_interrupt, 0,
> - "dwc3-omap", omap);
> + ret = devm_request_threaded_irq(dev, omap->irq, dwc3_omap_interrupt,
this switch to threaded IRQ is not part of $subject.
--
balbi
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 818 bytes --]
next prev parent reply other threads:[~2016-04-11 12:13 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-11 11:34 [PATCH v6 00/10] usb: dwc3: add dual-role support Roger Quadros
2016-04-11 11:34 ` Roger Quadros
2016-04-11 11:34 ` [PATCH v6 01/10] usb: dwc3: core.h: add some register definitions Roger Quadros
2016-04-11 11:34 ` Roger Quadros
2016-04-11 11:34 ` [PATCH v6 02/10] usb: dwc3: omap: Make the wrapper interrupt shared Roger Quadros
2016-04-11 11:34 ` Roger Quadros
[not found] ` <1460374506-9779-3-git-send-email-rogerq-l0cyMroinI0@public.gmane.org>
2016-04-11 12:13 ` Felipe Balbi [this message]
2016-04-11 12:13 ` Felipe Balbi
2016-04-11 12:51 ` Roger Quadros
2016-04-11 12:51 ` Roger Quadros
2016-04-11 12:58 ` Felipe Balbi
2016-04-11 13:15 ` Roger Quadros
2016-04-11 13:15 ` Roger Quadros
[not found] ` <570BA375.2040203-l0cyMroinI0@public.gmane.org>
2016-04-11 13:20 ` Felipe Balbi
2016-04-11 13:20 ` Felipe Balbi
2016-04-11 11:34 ` [PATCH v6 03/10] usb: dwc3: omap: Pass VBUS and ID events transparently Roger Quadros
2016-04-11 11:34 ` Roger Quadros
[not found] ` <1460374506-9779-4-git-send-email-rogerq-l0cyMroinI0@public.gmane.org>
2016-04-11 12:18 ` Felipe Balbi
2016-04-11 12:18 ` Felipe Balbi
2016-04-11 13:03 ` Roger Quadros
2016-04-11 13:03 ` Roger Quadros
[not found] ` <570BA0B1.1060404-l0cyMroinI0@public.gmane.org>
2016-04-11 13:26 ` Felipe Balbi
2016-04-11 13:26 ` Felipe Balbi
2016-04-11 13:51 ` Roger Quadros
2016-04-11 13:51 ` Roger Quadros
2016-04-11 11:35 ` [PATCH v6 04/10] usb: dwc3: omap: fix up error path on probe() Roger Quadros
2016-04-11 11:35 ` Roger Quadros
[not found] ` <1460374506-9779-5-git-send-email-rogerq-l0cyMroinI0@public.gmane.org>
2016-04-11 12:20 ` Felipe Balbi
2016-04-11 12:20 ` Felipe Balbi
[not found] ` <87bn5gnxp9.fsf-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-04-11 13:09 ` Roger Quadros
2016-04-11 13:09 ` Roger Quadros
2016-04-11 11:35 ` [PATCH v6 05/10] usb: dwc3: core: cleanup IRQ resources Roger Quadros
2016-04-11 11:35 ` Roger Quadros
2016-04-11 11:35 ` [PATCH v6 06/10] usb: dwc3: add dual-role support Roger Quadros
2016-04-11 11:35 ` Roger Quadros
2016-04-11 11:35 ` [PATCH v6 07/10] usb: dwc3: gadget: Fix suspend/resume during dual-role mode Roger Quadros
2016-04-11 11:35 ` Roger Quadros
[not found] ` <1460374506-9779-8-git-send-email-rogerq-l0cyMroinI0@public.gmane.org>
2016-04-11 12:23 ` Felipe Balbi
2016-04-11 12:23 ` Felipe Balbi
2016-04-11 13:12 ` Roger Quadros
2016-04-11 13:12 ` Roger Quadros
[not found] ` <570BA2AA.8030308-l0cyMroinI0@public.gmane.org>
2016-04-11 13:26 ` Felipe Balbi
2016-04-11 13:26 ` Felipe Balbi
2016-04-11 13:53 ` Roger Quadros
2016-04-11 13:53 ` Roger Quadros
[not found] ` <570BAC4D.8010209-l0cyMroinI0@public.gmane.org>
2016-04-12 8:00 ` Felipe Balbi
2016-04-12 8:00 ` Felipe Balbi
2016-04-12 8:25 ` Roger Quadros
2016-04-12 8:25 ` Roger Quadros
2016-04-11 11:35 ` [PATCH v6 08/10] usb: dwc3: core: fix PHY handling during suspend Roger Quadros
2016-04-11 11:35 ` Roger Quadros
2016-04-11 12:24 ` Felipe Balbi
2016-04-11 12:24 ` Felipe Balbi
[not found] ` <8760vonxin.fsf-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-04-11 13:13 ` Roger Quadros
2016-04-11 13:13 ` Roger Quadros
2016-04-11 11:35 ` [PATCH v6 09/10] ARM: dts: dra7*-evm: Enable dual-role for usb1 Roger Quadros
2016-04-11 11:35 ` Roger Quadros
2016-04-11 11:35 ` [PATCH v6 10/10] ARM: dts: am43xx: Enable dual-role on USB1 Roger Quadros
2016-04-11 11:35 ` Roger Quadros
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=87h9f8ny14.fsf@intel.com \
--to=balbi-dgejt+ai2ygdnm+yrofe0a@public.gmane.org \
--cc=Joao.Pinto-HKixBCOQz3hWk0Htik3J/w@public.gmane.org \
--cc=grygorii.strashko-l0cyMroinI0@public.gmane.org \
--cc=jun.li-KZfg59tc24xl57MIdRCFDg@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=nsekhar-l0cyMroinI0@public.gmane.org \
--cc=peter.chen-KZfg59tc24xl57MIdRCFDg@public.gmane.org \
--cc=rogerq-l0cyMroinI0@public.gmane.org \
--cc=sergei.shtylyov-M4DtvfQ/ZS1MRgGoP+s0PdBPR1lH4CV8@public.gmane.org \
--cc=tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org \
--cc=yoshihiro.shimoda.uh-zM6kxYcvzFBBDgjK7y7TUQ@public.gmane.org \
/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.