From: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
To: George Cherian <george.cherian@ti.com>,
linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org,
linux-omap@vger.kernel.org
Cc: gregkh@linuxfoundation.org, balbi@ti.com, zonque@gmail.com, b-liu@ti.com
Subject: Re: [PATCH v5 5/6] usb: musb: dsps: Add the sw_babble_control()
Date: Thu, 22 May 2014 15:23:16 +0400 [thread overview]
Message-ID: <537DDE24.9040105@cogentembedded.com> (raw)
In-Reply-To: <1400740181-31213-6-git-send-email-george.cherian@ti.com>
Hello.
On 22-05-2014 10:29, George Cherian wrote:
> Add sw_babble_control() logic to differentiate between transient
> babble and real babble condition. Also add the SW babble control
> register definitions.
> Babble control register logic is implemented in the latest
> revision of AM335x.
> Signed-off-by: George Cherian <george.cherian@ti.com>
Sorry for the late comments, I probably didn't pay enough attention to
this series before...
> diff --git a/drivers/usb/musb/musb_dsps.c b/drivers/usb/musb/musb_dsps.c
> index f6f3087..868caf8 100644
> --- a/drivers/usb/musb/musb_dsps.c
> +++ b/drivers/usb/musb/musb_dsps.c
> @@ -536,6 +536,56 @@ static int dsps_musb_set_mode(struct musb *musb, u8 mode)
> return 0;
> }
>
> +static int sw_babble_control(struct musb *musb)
Perhaps the result type should be *bool* instead of *int*?
> +{
> + int timeout = 10;
> + u8 babble_ctl, session_restart = 0;
> +
> + babble_ctl = dsps_readb(musb->mregs, MUSB_BABBLE_CTL);
> + dev_dbg(musb->controller, "babble: MUSB_BABBLE_CTL value %x\n",
> + babble_ctl);
> + /*
> + * check line monitor flag to check whether babble is
> + * due to noise
> + */
> + dev_dbg(musb->controller, "STUCK_J is %s\n",
> + babble_ctl & MUSB_BABBLE_STUCK_J ? "set" : "reset");
> +
> + if (babble_ctl & MUSB_BABBLE_STUCK_J) {
'timeout' could be declared here, local to the block using it.
> + /*
> + * babble is due to noise, then set transmit idle (d7 bit)
> + * to resume normal operation
> + */
> + babble_ctl = dsps_readb(musb->mregs, MUSB_BABBLE_CTL);
> + babble_ctl |= MUSB_BABBLE_FORCE_TXIDLE;
> + dsps_writeb(musb->mregs, MUSB_BABBLE_CTL, babble_ctl);
> +
> + /* wait till line monitor flag cleared */
> + dev_dbg(musb->controller, "Set TXIDLE, wait J to clear\n");
> + do {
> + babble_ctl = dsps_readb(musb->mregs, MUSB_BABBLE_CTL);
> + udelay(1);
> + } while ((babble_ctl & MUSB_BABBLE_STUCK_J) && timeout--);
> +
> + /* check whether stuck_at_j bit cleared */
> + if (babble_ctl & MUSB_BABBLE_STUCK_J) {
> + /*
> + * real babble condition is occured
s/is occured/has occurred/.
> + * restart the controller to start the
> + * session again
> + */
> + dev_dbg(musb->controller, "J not cleared, misc (%x)\n",
> + babble_ctl);
> + session_restart = 1;
> + }
> +
Empty line not needed here.
> + } else {
> + session_restart = 1;
> + }
> +
> + return session_restart;
> +}
WBR, Sergei
next prev parent reply other threads:[~2014-05-22 11:23 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-22 6:29 [PATCH v5 0/6] Add support for SW babble Control George Cherian
2014-05-22 6:29 ` George Cherian
2014-05-22 6:29 ` [PATCH v5 1/6] usb: musb: core: Handle Babble condition only in HOST mode George Cherian
2014-05-22 6:29 ` George Cherian
2014-05-22 6:29 ` [PATCH v5 2/6] usb: musb: core: Convert babble recover work to delayed work George Cherian
2014-05-22 6:29 ` George Cherian
[not found] ` <1400740181-31213-1-git-send-email-george.cherian-l0cyMroinI0@public.gmane.org>
2014-05-22 6:29 ` [PATCH v5 3/6] usb: musb: dsps: Call usb_phy(_shutdown/_init) during musb_platform_reset() George Cherian
2014-05-22 6:29 ` George Cherian
2014-05-22 6:29 ` [PATCH v5 4/6] usb: musb: core: Convert the musb_platform_reset to have a return value George Cherian
2014-05-22 6:29 ` George Cherian
2014-05-22 6:29 ` [PATCH v5 5/6] usb: musb: dsps: Add the sw_babble_control() George Cherian
2014-05-22 6:29 ` George Cherian
2014-05-22 11:23 ` Sergei Shtylyov [this message]
2014-05-22 11:39 ` Sergei Shtylyov
2014-05-22 6:29 ` [PATCH v5 6/6] usb: musb: dsps: Enable sw babble control for newer silicon George Cherian
2014-05-22 6:29 ` George Cherian
[not found] ` <1400740181-31213-7-git-send-email-george.cherian-l0cyMroinI0@public.gmane.org>
2014-05-22 11:58 ` Sergei Shtylyov
2014-05-22 11:58 ` Sergei Shtylyov
2014-05-22 12:52 ` George Cherian
2014-05-22 12:52 ` George Cherian
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=537DDE24.9040105@cogentembedded.com \
--to=sergei.shtylyov@cogentembedded.com \
--cc=b-liu@ti.com \
--cc=balbi@ti.com \
--cc=george.cherian@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.