All of lore.kernel.org
 help / color / mirror / Atom feed
From: George Cherian <george.cherian@ti.com>
To: Daniel Mack <zonque@gmail.com>,
	linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org,
	linux-omap@vger.kernel.org
Cc: balbi@ti.com, gregkh@linuxfoundation.org
Subject: Re: [PATCH v3 0/5] Add support for SW babble Control
Date: Tue, 13 May 2014 18:27:16 +0530	[thread overview]
Message-ID: <537216AC.4090401@ti.com> (raw)
In-Reply-To: <53720E0F.3070008@gmail.com>

On 5/13/2014 5:50 PM, Daniel Mack wrote:
> On 05/13/2014 01:57 PM, George Cherian wrote:
>> On 5/13/2014 3:16 PM, Daniel Mack wrote:
>>> On 05/13/2014 10:31 AM, George Cherian wrote:
>>>> Series add support for SW babble control logic found in
>>>> new silicon versions of AM335x. Runtime differentiation of
>>>> silicon version is done by checking the BABBLE_CTL register.
>>>> For newer silicon the register default value read is 0x4 and
>>>> for older versions its 0x0.
>>> I tested this on a AM33xx platform and don't see any regression at
>>> least. This hardware has MUSB_BABBLE_CTL == MUSB_BABBLE_RCV_DISABLE.
>>> Anything particular you want me to test as well?
>> Are you seeing a wrapper restart done always or does it continue with a
>> restart
>> after the babble condition?
> MUSB_BABBLE_CTL == MUSB_BABBLE_RCV_DISABLE, so sw_babble_control() is
> called from dsps_musb_reset(). However, MUSB_BABBLE_CTL still returns
> 0x04 (MUSB_BABBLE_RCV_DISABLE) inside that function, which means
> (babble_ctl & MUSB_BABBLE_STUCK_J) is false, and hence
> sw_babble_control() returns 1.
Ah.... Missed a critical portion....
My bad...

I never enabled the MUSB_BABBLE_SW_SESSION_CTRL in the MUSB_BABBLE_CTL reg.
can you try with the following patch.

diff --git a/drivers/usb/musb/musb_dsps.c b/drivers/usb/musb/musb_dsps.c
index 1ae6681..1160cd1 100644
--- a/drivers/usb/musb/musb_dsps.c
+++ b/drivers/usb/musb/musb_dsps.c
@@ -477,8 +477,11 @@ static int dsps_musb_init(struct musb *musb)
  	 * logic enabled.
  	 */
  	val = dsps_readb(musb->mregs, MUSB_BABBLE_CTL);
-	if (val == MUSB_BABBLE_RCV_DISABLE)
+	if (val == MUSB_BABBLE_RCV_DISABLE) {
  		glue->sw_babble_enabled = true;
+		val |= MUSB_BABBLE_SW_SESSION_CTRL;
+	        dsps_writeb(musb->mregs, MUSB_BABBLE_CTL, val);
+	}
  
  	ret = dsps_musb_dbg_init(musb, glue);
  	if (ret)
-- 1.8.3.1

I will resend the series, if this works fine.
Thanks for all your help.

>   Consequently, the glue is fully reset in
> this case. Does this help?
>
> FWIW, this is the output of dsps_musb_reset() with dev_dbg() enabled:
>
> [   54.066124] CAUTION: musb: Babble Interrupt Occurred
> [   54.071856] usb 1-1: USB disconnect, device number 8
> [   54.159495] musb-hdrc musb-hdrc.0.auto: babble: MUSB_BABBLE_CTL value 4
> [   54.166446] musb-hdrc musb-hdrc.0.auto: STUCK_J is reset
>
>
> I only have one exact USB device to reproduce the babble condition, so I
> guess this is all I can do for now.
Same with me also . I also have only one device with which i get the issue.
>
>
> Thanks,
> Daniel
>


-- 
-George

WARNING: multiple messages have this Message-ID (diff)
From: George Cherian <george.cherian@ti.com>
To: Daniel Mack <zonque@gmail.com>, <linux-kernel@vger.kernel.org>,
	<linux-usb@vger.kernel.org>, <linux-omap@vger.kernel.org>
Cc: <balbi@ti.com>, <gregkh@linuxfoundation.org>
Subject: Re: [PATCH v3 0/5] Add support for SW babble Control
Date: Tue, 13 May 2014 18:27:16 +0530	[thread overview]
Message-ID: <537216AC.4090401@ti.com> (raw)
In-Reply-To: <53720E0F.3070008@gmail.com>

On 5/13/2014 5:50 PM, Daniel Mack wrote:
> On 05/13/2014 01:57 PM, George Cherian wrote:
>> On 5/13/2014 3:16 PM, Daniel Mack wrote:
>>> On 05/13/2014 10:31 AM, George Cherian wrote:
>>>> Series add support for SW babble control logic found in
>>>> new silicon versions of AM335x. Runtime differentiation of
>>>> silicon version is done by checking the BABBLE_CTL register.
>>>> For newer silicon the register default value read is 0x4 and
>>>> for older versions its 0x0.
>>> I tested this on a AM33xx platform and don't see any regression at
>>> least. This hardware has MUSB_BABBLE_CTL == MUSB_BABBLE_RCV_DISABLE.
>>> Anything particular you want me to test as well?
>> Are you seeing a wrapper restart done always or does it continue with a
>> restart
>> after the babble condition?
> MUSB_BABBLE_CTL == MUSB_BABBLE_RCV_DISABLE, so sw_babble_control() is
> called from dsps_musb_reset(). However, MUSB_BABBLE_CTL still returns
> 0x04 (MUSB_BABBLE_RCV_DISABLE) inside that function, which means
> (babble_ctl & MUSB_BABBLE_STUCK_J) is false, and hence
> sw_babble_control() returns 1.
Ah.... Missed a critical portion....
My bad...

I never enabled the MUSB_BABBLE_SW_SESSION_CTRL in the MUSB_BABBLE_CTL reg.
can you try with the following patch.

diff --git a/drivers/usb/musb/musb_dsps.c b/drivers/usb/musb/musb_dsps.c
index 1ae6681..1160cd1 100644
--- a/drivers/usb/musb/musb_dsps.c
+++ b/drivers/usb/musb/musb_dsps.c
@@ -477,8 +477,11 @@ static int dsps_musb_init(struct musb *musb)
  	 * logic enabled.
  	 */
  	val = dsps_readb(musb->mregs, MUSB_BABBLE_CTL);
-	if (val == MUSB_BABBLE_RCV_DISABLE)
+	if (val == MUSB_BABBLE_RCV_DISABLE) {
  		glue->sw_babble_enabled = true;
+		val |= MUSB_BABBLE_SW_SESSION_CTRL;
+	        dsps_writeb(musb->mregs, MUSB_BABBLE_CTL, val);
+	}
  
  	ret = dsps_musb_dbg_init(musb, glue);
  	if (ret)
-- 1.8.3.1

I will resend the series, if this works fine.
Thanks for all your help.

>   Consequently, the glue is fully reset in
> this case. Does this help?
>
> FWIW, this is the output of dsps_musb_reset() with dev_dbg() enabled:
>
> [   54.066124] CAUTION: musb: Babble Interrupt Occurred
> [   54.071856] usb 1-1: USB disconnect, device number 8
> [   54.159495] musb-hdrc musb-hdrc.0.auto: babble: MUSB_BABBLE_CTL value 4
> [   54.166446] musb-hdrc musb-hdrc.0.auto: STUCK_J is reset
>
>
> I only have one exact USB device to reproduce the babble condition, so I
> guess this is all I can do for now.
Same with me also . I also have only one device with which i get the issue.
>
>
> Thanks,
> Daniel
>


-- 
-George


  reply	other threads:[~2014-05-13 12:57 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-13  8:31 [PATCH v3 0/5] Add support for SW babble Control George Cherian
2014-05-13  8:31 ` George Cherian
2014-05-13  8:31 ` [PATCH v3 1/5] usb: musb: core: Convert babble recover work to delayed work George Cherian
2014-05-13  8:31   ` George Cherian
2014-05-13  8:31 ` [PATCH v3 2/5] usb: musb: dsps: Call usb_phy(_shutdown/_init) during musb_platform_reset() George Cherian
2014-05-13  8:31   ` George Cherian
2014-05-13  8:31 ` [PATCH v3 3/5] usb: musb: core: Convert the musb_platform_reset to have a return value George Cherian
2014-05-13  8:31   ` George Cherian
2014-05-13  8:31 ` [PATCH v3 4/5] usb: musb: dsps: Add the sw_babble_control() George Cherian
2014-05-13  8:31   ` George Cherian
2014-05-13  8:31 ` [PATCH v3 5/5] usb: musb: dsps: Enable sw babble control for newer silicon George Cherian
2014-05-13  8:31   ` George Cherian
2014-05-13  9:46 ` [PATCH v3 0/5] Add support for SW babble Control Daniel Mack
2014-05-13 11:57   ` George Cherian
2014-05-13 11:57     ` George Cherian
2014-05-13 12:20     ` Daniel Mack
2014-05-13 12:57       ` George Cherian [this message]
2014-05-13 12:57         ` George Cherian
2014-05-13 13:14         ` Daniel Mack
2014-05-13 13:24           ` George Cherian
2014-05-13 13:24             ` George Cherian
2014-05-13 13:30             ` Daniel Mack
2014-05-13 18:37             ` Bin Liu
2014-05-14  5:37               ` George Cherian
2014-05-14  5:37                 ` George Cherian
2014-05-14 14:34                 ` Bin Liu
2014-05-14 16:43                   ` Bin Liu
2014-05-15  6:28                     ` George Cherian
2014-05-15  6:28                       ` George Cherian
2014-05-15 15:19                       ` Bin Liu
2014-05-19  8:40                         ` George Cherian
2014-05-19  8:40                           ` George Cherian
2014-05-19 13:53                           ` Bin Liu

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=537216AC.4090401@ti.com \
    --to=george.cherian@ti.com \
    --cc=balbi@ti.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=zonque@gmail.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.