From: George Cherian <george.cherian@ti.com>
To: Bin Liu <binmlist@gmail.com>
Cc: linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org,
linux-omap@vger.kernel.org, gregkh@linuxfoundation.org,
balbi@ti.com, zonque@gmail.com, b-liu@ti.com
Subject: Re: [PATCH v4 1/6] usb: musb: core: Handle Babble condition only in HOST mode
Date: Mon, 26 May 2014 14:16:23 +0530 [thread overview]
Message-ID: <5382FF5F.1050608@ti.com> (raw)
In-Reply-To: <CADYTM3bO5FecJCMMv4iYzugF4DFNmGKs5gtFODLWqnq1u_BDHw@mail.gmail.com>
On 5/23/2014 2:12 AM, Bin Liu wrote:
> Hi George,
>
> On Mon, May 19, 2014 at 11:32 PM, George Cherian <george.cherian@ti.com> wrote:
>> Hi Bin,
>>
>> On 5/19/2014 9:24 PM, Bin Liu wrote:
>>> Hi,
>>>
>>> On Mon, May 19, 2014 at 8:39 AM, George Cherian <george.cherian@ti.com>
>>> wrote:
>>>> BABBLE and RESET share the same interrupt. The interrupt
>>>> is considered to be RESET if MUSB is in peripheral mode and
>>>> as a BABBLE if MUSB is in HOST mode.
>>>>
>>>> Handle babble condition iff MUSB is in HOST mode.
>>>>
>>>> Signed-off-by: George Cherian <george.cherian@ti.com>
>>>> ---
>>>> drivers/usb/musb/musb_core.c | 2 +-
>>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
>>>> index 61da471..eff3c5c 100644
>>>> --- a/drivers/usb/musb/musb_core.c
>>>> +++ b/drivers/usb/musb/musb_core.c
>>>> @@ -849,7 +849,7 @@ b_host:
>>>> }
>>>>
>>>> /* handle babble condition */
>>>> - if (int_usb & MUSB_INTR_BABBLE)
>>>> + if (int_usb & MUSB_INTR_BABBLE && is_host_active(musb))
>>>> schedule_work(&musb->recover_work);
>>> I guess my following comments are for Daniel's patch as while which
>>> initially added the babble work.
>>>
>>> Should this if statement be merged into the previous 'if(int_usb &
>>> MUSB_INTR_RESET)' one, which handles the same interrupt and already
>>> handles host and device mode respectively.
>>
>> Initially I too had the babble handling as part of 'if(int_usb &
>> MUSB_INTR_RESET)'
>> one. But during my tests I hit a corner case where in we hit a BABBLE
>> condition
>> on disconnect. In such case the babble interrupt can be handled only if we
>> have a seperate
>> check, else its considered as a BUS RESET.
>>
>> When all devices are disconnected MUSB_DEVCTL_HM = 0 and the code always
>> enter the
>> else path. In this path it treats the BABBLE as a BUS RESET.
> The code flow is a bit confusing, two if() handle the same interrupt.
> The second one implied using 'handled = IRQ_HANDLED;' from the first
> one.
> Also does the switch() in else{} in the first if() cause any side effect?
No it doesn't.
> Since this babble handing is AM335x specific, how about handle it in
> dsps_interrupt() in musb_dsps.c, which already has an entry for babble
> interrupt? TI 3.2 kernel does this way.
That the reason we have platform specific callbacks added from the main
interrupt handler.
> Regards,
> -Bin.
>
>>
>>> Regards,
>>> -Bin.
>>>
>>>> #if 0
>>>> --
>>>> 1.8.3.1
>>>>
>>>> --
>>>> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
>>>> the body of a message to majordomo@vger.kernel.org
>>>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>
>>
>> --
>> -George
>>
--
-George
WARNING: multiple messages have this Message-ID (diff)
From: George Cherian <george.cherian@ti.com>
To: Bin Liu <binmlist@gmail.com>
Cc: <linux-kernel@vger.kernel.org>, <linux-usb@vger.kernel.org>,
<linux-omap@vger.kernel.org>, <gregkh@linuxfoundation.org>,
<balbi@ti.com>, <zonque@gmail.com>, <b-liu@ti.com>
Subject: Re: [PATCH v4 1/6] usb: musb: core: Handle Babble condition only in HOST mode
Date: Mon, 26 May 2014 14:16:23 +0530 [thread overview]
Message-ID: <5382FF5F.1050608@ti.com> (raw)
In-Reply-To: <CADYTM3bO5FecJCMMv4iYzugF4DFNmGKs5gtFODLWqnq1u_BDHw@mail.gmail.com>
On 5/23/2014 2:12 AM, Bin Liu wrote:
> Hi George,
>
> On Mon, May 19, 2014 at 11:32 PM, George Cherian <george.cherian@ti.com> wrote:
>> Hi Bin,
>>
>> On 5/19/2014 9:24 PM, Bin Liu wrote:
>>> Hi,
>>>
>>> On Mon, May 19, 2014 at 8:39 AM, George Cherian <george.cherian@ti.com>
>>> wrote:
>>>> BABBLE and RESET share the same interrupt. The interrupt
>>>> is considered to be RESET if MUSB is in peripheral mode and
>>>> as a BABBLE if MUSB is in HOST mode.
>>>>
>>>> Handle babble condition iff MUSB is in HOST mode.
>>>>
>>>> Signed-off-by: George Cherian <george.cherian@ti.com>
>>>> ---
>>>> drivers/usb/musb/musb_core.c | 2 +-
>>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
>>>> index 61da471..eff3c5c 100644
>>>> --- a/drivers/usb/musb/musb_core.c
>>>> +++ b/drivers/usb/musb/musb_core.c
>>>> @@ -849,7 +849,7 @@ b_host:
>>>> }
>>>>
>>>> /* handle babble condition */
>>>> - if (int_usb & MUSB_INTR_BABBLE)
>>>> + if (int_usb & MUSB_INTR_BABBLE && is_host_active(musb))
>>>> schedule_work(&musb->recover_work);
>>> I guess my following comments are for Daniel's patch as while which
>>> initially added the babble work.
>>>
>>> Should this if statement be merged into the previous 'if(int_usb &
>>> MUSB_INTR_RESET)' one, which handles the same interrupt and already
>>> handles host and device mode respectively.
>>
>> Initially I too had the babble handling as part of 'if(int_usb &
>> MUSB_INTR_RESET)'
>> one. But during my tests I hit a corner case where in we hit a BABBLE
>> condition
>> on disconnect. In such case the babble interrupt can be handled only if we
>> have a seperate
>> check, else its considered as a BUS RESET.
>>
>> When all devices are disconnected MUSB_DEVCTL_HM = 0 and the code always
>> enter the
>> else path. In this path it treats the BABBLE as a BUS RESET.
> The code flow is a bit confusing, two if() handle the same interrupt.
> The second one implied using 'handled = IRQ_HANDLED;' from the first
> one.
> Also does the switch() in else{} in the first if() cause any side effect?
No it doesn't.
> Since this babble handing is AM335x specific, how about handle it in
> dsps_interrupt() in musb_dsps.c, which already has an entry for babble
> interrupt? TI 3.2 kernel does this way.
That the reason we have platform specific callbacks added from the main
interrupt handler.
> Regards,
> -Bin.
>
>>
>>> Regards,
>>> -Bin.
>>>
>>>> #if 0
>>>> --
>>>> 1.8.3.1
>>>>
>>>> --
>>>> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
>>>> the body of a message to majordomo@vger.kernel.org
>>>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>
>>
>> --
>> -George
>>
--
-George
next prev parent reply other threads:[~2014-05-26 8:46 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-19 13:39 [PATCH v4 0/6] Add support for SW babble Control George Cherian
2014-05-19 13:39 ` George Cherian
2014-05-19 13:39 ` [PATCH v4 1/6] usb: musb: core: Handle Babble condition only in HOST mode George Cherian
2014-05-19 13:39 ` George Cherian
2014-05-19 15:54 ` Bin Liu
[not found] ` <CADYTM3bd8Bq5QTn-HC4jYX-owEw_sF1DOtXsc-cMDqKHGJHXjQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-05-20 4:32 ` George Cherian
2014-05-20 4:32 ` George Cherian
2014-05-22 20:42 ` Bin Liu
2014-05-26 8:46 ` George Cherian [this message]
2014-05-26 8:46 ` George Cherian
2014-05-19 13:39 ` [PATCH v4 2/6] usb: musb: core: Convert babble recover work to delayed work George Cherian
2014-05-19 13:39 ` George Cherian
2014-05-19 13:39 ` [PATCH v4 3/6] usb: musb: dsps: Call usb_phy(_shutdown/_init) during musb_platform_reset() George Cherian
2014-05-19 13:39 ` George Cherian
2014-05-19 13:39 ` [PATCH v4 4/6] usb: musb: core: Convert the musb_platform_reset to have a return value George Cherian
2014-05-19 13:39 ` George Cherian
2014-05-19 16:05 ` Bin Liu
2014-05-19 13:39 ` [PATCH v4 5/6] usb: musb: dsps: Add the sw_babble_control() George Cherian
2014-05-19 13:39 ` George Cherian
[not found] ` <1400506776-2816-1-git-send-email-george.cherian-l0cyMroinI0@public.gmane.org>
2014-05-19 13:39 ` [PATCH v4 6/6] usb: musb: dsps: Enable sw babble control for newer silicon George Cherian
2014-05-19 13:39 ` 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=5382FF5F.1050608@ti.com \
--to=george.cherian@ti.com \
--cc=b-liu@ti.com \
--cc=balbi@ti.com \
--cc=binmlist@gmail.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.