Re: [PATCH 4/7] usb: otg: twl4030-usb: poll for ID disconnect

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Mar 10, 2013 at 1:03 PM, Michael Trimarchi
<michael@xxxxxxxxxxxxxxxxxxxx> wrote:
> Hi
>
> just one comment.
>
> On 10/03/13 02:07, Grazvydas Ignotas wrote:
>> On pandora, STS_USB interrupt doesn't arrive on USB host cable disconnect
>> for some reason while VBUS is driven by twl itself, but STS_HW_CONDITIONS
>> is updated correctly. It does work fine when PHY is powered down though.
>> To work around that we have to poll.
>>
>> TI PSP kernels have similar workarounds, so (many?) more boards are likely
>> affected.
>>
>> Signed-off-by: Grazvydas Ignotas <notasas@xxxxxxxxx>
>> ---
>>  drivers/usb/otg/twl4030-usb.c |   37 +++++++++++++++++++++++++++++++++++++
>>  1 file changed, 37 insertions(+)
>>
>> diff --git a/drivers/usb/otg/twl4030-usb.c b/drivers/usb/otg/twl4030-usb.c
>> index 90a19ff..2c1c27e 100644
>> --- a/drivers/usb/otg/twl4030-usb.c
>> +++ b/drivers/usb/otg/twl4030-usb.c
...
>> @@ -513,6 +525,28 @@ static irqreturn_t twl4030_usb_irq(int irq, void *_twl)
>>       return IRQ_HANDLED;
>>  }
>>
>> +static void twl4030_id_workaround_work(struct work_struct *work)
>> +{
>> +     struct twl4030_usb *twl = container_of(work, struct twl4030_usb,
>> +             id_workaround_work.work);
>> +     enum omap_musb_vbus_id_status status_prev = twl->linkstat;
>> +     enum omap_musb_vbus_id_status status;
>> +
>> +     status = twl4030_usb_linkstat(twl);
>> +     if (status != status_prev) {
>> +             dev_dbg(twl->dev, "handle missing status change: %d->%d\n",
>> +                     status_prev, status);
>> +             twl->linkstat = status_prev;
>> +             twl4030_usb_irq(0, twl);
>
> As I understand from the subject this happen in Pandora board and
> many boards can be affected.
> do you need any protection between the worker and the irq when
> the irq arrive as expected?

Hmm I guess i do, I'll add some locking in v2, which I'll send after
collecting more feedback.

>
> Michael
>


-- 
Gražvydas
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux