diff mbox

usb: renesas_usbhs: Add access control for INTSTS1 and INTENB1 register

Message ID 1420763321-4868-1-git-send-email-nobuhiro.iwamatsu.yj@renesas.com (mailing list archive)
State Accepted
Delegated to: Geert Uytterhoeven
Headers show

Commit Message

Nobuhiro Iwamatsu Jan. 9, 2015, 12:28 a.m. UTC
INTSTS1 and INTENB1 register of renesas_usbhs can access only Host mode.
This adds process of accessing INTSTS1 and INTENB1 only when renesas_usbhs
is Host mode.

Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
---
 drivers/usb/renesas_usbhs/mod.c | 61 +++++++++++++++++++++++------------------
 1 file changed, 34 insertions(+), 27 deletions(-)

Comments

Yoshihiro Shimoda Jan. 16, 2015, 10:10 a.m. UTC | #1
Hi Iwamatsu-san,

> INTSTS1 and INTENB1 register of renesas_usbhs can access only Host mode.
> This adds process of accessing INTSTS1 and INTENB1 only when renesas_usbhs
> is Host mode.
> 
> Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>

Thank you for the patch.

Acked-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>

Best regards,
Yoshihiro Shimoda

--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Nobuhiro Iwamatsu March 6, 2015, 6:54 a.m. UTC | #2
ping?

(2015/01/16 19:10), yoshihiro shimoda wrote:
> Hi Iwamatsu-san,
>
>> INTSTS1 and INTENB1 register of renesas_usbhs can access only Host mode.
>> This adds process of accessing INTSTS1 and INTENB1 only when renesas_usbhs
>> is Host mode.
>>
>> Signed-off-by: Nobuhiro Iwamatsu<nobuhiro.iwamatsu.yj@renesas.com>
>
> Thank you for the patch.
>
> Acked-by: Yoshihiro Shimoda<yoshihiro.shimoda.uh@renesas.com>
>
> Best regards,
> Yoshihiro Shimoda
>

--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Yoshihiro Shimoda May 14, 2015, 6:18 a.m. UTC | #3
Hi Felipe,

> Sent: Friday, March 06, 2015 3:55 PM
> 
> ping?
> 
> (2015/01/16 19:10), yoshihiro shimoda wrote:
> > Hi Iwamatsu-san,
> >
> >> INTSTS1 and INTENB1 register of renesas_usbhs can access only Host mode.
> >> This adds process of accessing INTSTS1 and INTENB1 only when renesas_usbhs
> >> is Host mode.
> >>
> >> Signed-off-by: Nobuhiro Iwamatsu<nobuhiro.iwamatsu.yj@renesas.com>
> >
> > Thank you for the patch.
> >
> > Acked-by: Yoshihiro Shimoda<yoshihiro.shimoda.uh@renesas.com>
> >
> > Best regards,
> > Yoshihiro Shimoda
> >

Would you apply this patch to your testing/next branch?
This patch is very old, but I could apply it to the latest testing/next branch.
(commit id = 1c14905ef951fb968c8da90e4e64be02c309a2ae)

Best regards,
Yoshihiro Shimoda

--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Felipe Balbi May 14, 2015, 6:47 a.m. UTC | #4
Hi,

On Thu, May 14, 2015 at 06:18:06AM +0000, Yoshihiro Shimoda wrote:
> Hi Felipe,
> 
> > Sent: Friday, March 06, 2015 3:55 PM
> > 
> > ping?
> > 
> > (2015/01/16 19:10), yoshihiro shimoda wrote:
> > > Hi Iwamatsu-san,
> > >
> > >> INTSTS1 and INTENB1 register of renesas_usbhs can access only Host mode.
> > >> This adds process of accessing INTSTS1 and INTENB1 only when renesas_usbhs
> > >> is Host mode.
> > >>
> > >> Signed-off-by: Nobuhiro Iwamatsu<nobuhiro.iwamatsu.yj@renesas.com>
> > >
> > > Thank you for the patch.
> > >
> > > Acked-by: Yoshihiro Shimoda<yoshihiro.shimoda.uh@renesas.com>
> > >
> > > Best regards,
> > > Yoshihiro Shimoda
> > >
> 
> Would you apply this patch to your testing/next branch?
> This patch is very old, but I could apply it to the latest testing/next branch.
> (commit id = 1c14905ef951fb968c8da90e4e64be02c309a2ae)

thanks for adding me to Cc list, I wasn't in Cc and ended up missing
this completely. Luckily I still have it in my inbox and will apply it
in the morning (it's 1:50 AM :-p)

regards
Yoshihiro Shimoda May 14, 2015, 7:05 a.m. UTC | #5
Hi,

> Sent: Thursday, May 14, 2015 3:47 PM
> Hi,
< snip >
> On Thu, May 14, 2015 at 06:18:06AM +0000, Yoshihiro Shimoda wrote:
> > Hi Felipe,
> >
> > > Sent: Friday, March 06, 2015 3:55 PM
> > >
> > > ping?
> > >
> > > (2015/01/16 19:10), yoshihiro shimoda wrote:
> > > > Hi Iwamatsu-san,
> > > >
> > > >> INTSTS1 and INTENB1 register of renesas_usbhs can access only Host mode.
> > > >> This adds process of accessing INTSTS1 and INTENB1 only when renesas_usbhs
> > > >> is Host mode.
> > > >>
> > > >> Signed-off-by: Nobuhiro Iwamatsu<nobuhiro.iwamatsu.yj@renesas.com>
> > > >
> > > > Thank you for the patch.
> > > >
> > > > Acked-by: Yoshihiro Shimoda<yoshihiro.shimoda.uh@renesas.com>
> > > >
> > > > Best regards,
> > > > Yoshihiro Shimoda
> > > >
> >
> > Would you apply this patch to your testing/next branch?
> > This patch is very old, but I could apply it to the latest testing/next branch.
> > (commit id = 1c14905ef951fb968c8da90e4e64be02c309a2ae)
> 
> thanks for adding me to Cc list, I wasn't in Cc and ended up missing
> this completely. Luckily I still have it in my inbox and will apply it
> in the morning (it's 1:50 AM :-p)

Thank you very much for your prompt reply at midnight!
I got it.

Best regards,
Yoshihiro Shimoda

> regards
> 
> --
> balbi
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/usb/renesas_usbhs/mod.c b/drivers/usb/renesas_usbhs/mod.c
index 9a705b1..e5ce6e6 100644
--- a/drivers/usb/renesas_usbhs/mod.c
+++ b/drivers/usb/renesas_usbhs/mod.c
@@ -218,10 +218,12 @@  static int usbhs_status_get_each_irq(struct usbhs_priv *priv,
 	/********************  spin lock ********************/
 	usbhs_lock(priv, flags);
 	state->intsts0 = usbhs_read(priv, INTSTS0);
-	state->intsts1 = usbhs_read(priv, INTSTS1);
-
 	intenb0 = usbhs_read(priv, INTENB0);
-	intenb1 = usbhs_read(priv, INTENB1);
+
+	if (usbhs_mod_is_host(priv)) {
+		state->intsts1 = usbhs_read(priv, INTSTS1);
+		intenb1 = usbhs_read(priv, INTENB1);
+	}
 
 	/* mask */
 	if (mod) {
@@ -275,7 +277,8 @@  static irqreturn_t usbhs_interrupt(int irq, void *data)
 	 *	   - Function :: VALID bit should 0
 	 */
 	usbhs_write(priv, INTSTS0, ~irq_state.intsts0 & INTSTS0_MAGIC);
-	usbhs_write(priv, INTSTS1, ~irq_state.intsts1 & INTSTS1_MAGIC);
+	if (usbhs_mod_is_host(priv))
+		usbhs_write(priv, INTSTS1, ~irq_state.intsts1 & INTSTS1_MAGIC);
 
 	usbhs_write(priv, BRDYSTS, ~irq_state.brdysts);
 	usbhs_write(priv, NRDYSTS, ~irq_state.nrdysts);
@@ -303,19 +306,20 @@  static irqreturn_t usbhs_interrupt(int irq, void *data)
 	if (irq_state.intsts0 & BRDY)
 		usbhs_mod_call(priv, irq_ready, priv, &irq_state);
 
-	/* INTSTS1 */
-	if (irq_state.intsts1 & ATTCH)
-		usbhs_mod_call(priv, irq_attch, priv, &irq_state);
-
-	if (irq_state.intsts1 & DTCH)
-		usbhs_mod_call(priv, irq_dtch, priv, &irq_state);
+	if (usbhs_mod_is_host(priv)) {
+		/* INTSTS1 */
+		if (irq_state.intsts1 & ATTCH)
+			usbhs_mod_call(priv, irq_attch, priv, &irq_state);
 
-	if (irq_state.intsts1 & SIGN)
-		usbhs_mod_call(priv, irq_sign, priv, &irq_state);
+		if (irq_state.intsts1 & DTCH)
+			usbhs_mod_call(priv, irq_dtch, priv, &irq_state);
 
-	if (irq_state.intsts1 & SACK)
-		usbhs_mod_call(priv, irq_sack, priv, &irq_state);
+		if (irq_state.intsts1 & SIGN)
+			usbhs_mod_call(priv, irq_sign, priv, &irq_state);
 
+		if (irq_state.intsts1 & SACK)
+			usbhs_mod_call(priv, irq_sack, priv, &irq_state);
+	}
 	return IRQ_HANDLED;
 }
 
@@ -334,7 +338,8 @@  void usbhs_irq_callback_update(struct usbhs_priv *priv, struct usbhs_mod *mod)
 	 *  - update INTSTS0
 	 */
 	usbhs_write(priv, INTENB0, 0);
-	usbhs_write(priv, INTENB1, 0);
+	if (usbhs_mod_is_host(priv))
+		usbhs_write(priv, INTENB1, 0);
 
 	usbhs_write(priv, BEMPENB, 0);
 	usbhs_write(priv, BRDYENB, 0);
@@ -368,25 +373,27 @@  void usbhs_irq_callback_update(struct usbhs_priv *priv, struct usbhs_mod *mod)
 			intenb0 |= BRDYE;
 		}
 
-		/*
-		 * INTSTS1
-		 */
-		if (mod->irq_attch)
-			intenb1 |= ATTCHE;
+		if (usbhs_mod_is_host(priv)) {
+			/*
+			 * INTSTS1
+			 */
+			if (mod->irq_attch)
+				intenb1 |= ATTCHE;
 
-		if (mod->irq_dtch)
-			intenb1 |= DTCHE;
+			if (mod->irq_dtch)
+				intenb1 |= DTCHE;
 
-		if (mod->irq_sign)
-			intenb1 |= SIGNE;
+			if (mod->irq_sign)
+				intenb1 |= SIGNE;
 
-		if (mod->irq_sack)
-			intenb1 |= SACKE;
+			if (mod->irq_sack)
+				intenb1 |= SACKE;
+		}
 	}
 
 	if (intenb0)
 		usbhs_write(priv, INTENB0, intenb0);
 
-	if (intenb1)
+	if (usbhs_mod_is_host(priv) && intenb1)
 		usbhs_write(priv, INTENB1, intenb1);
 }