Hi,
(I have added you to another thread which is where we'll be collecting
discussion about this, however ...)
Alan Stern writes:
> On Fri, 14 Oct 2016, Felipe Balbi wrote:
>
>> argh, we have nested spinlocks :-( Well, we shouldn't call
>> usb_ep_disable() with locks
Hi,
(I have added you to another thread which is where we'll be collecting
discussion about this, however ...)
Alan Stern writes:
> On Fri, 14 Oct 2016, Felipe Balbi wrote:
>
>> argh, we have nested spinlocks :-( Well, we shouldn't call
>> usb_ep_disable() with locks held AFAICR. So the
On Fri, 14 Oct 2016, Felipe Balbi wrote:
> argh, we have nested spinlocks :-( Well, we shouldn't call
> usb_ep_disable() with locks held AFAICR. So the following should be
> enough:
>
> diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c
> index
On Fri, 14 Oct 2016, Felipe Balbi wrote:
> argh, we have nested spinlocks :-( Well, we shouldn't call
> usb_ep_disable() with locks held AFAICR. So the following should be
> enough:
>
> diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c
> index
Hi,
Baolin Wang writes:
>> Baolin Wang writes:
>>> I see what the problem is. Databook tells us we *must* set CMDIOC
>>> when
>>> issuing EndTransfer command and we should always wait for Command
>>> Complete IRQ.
Hi,
Baolin Wang writes:
>> Baolin Wang writes:
>>> I see what the problem is. Databook tells us we *must* set CMDIOC
>>> when
>>> issuing EndTransfer command and we should always wait for Command
>>> Complete IRQ. However, we took a shortcut and just delayed
Hi Felipe,
On 14 October 2016 at 15:46, Felipe Balbi wrote:
>
> Hi,
>
> Baolin Wang writes:
>> I see what the problem is. Databook tells us we *must* set CMDIOC
>> when
>> issuing EndTransfer command and we should always wait
Hi Felipe,
On 14 October 2016 at 15:46, Felipe Balbi wrote:
>
> Hi,
>
> Baolin Wang writes:
>> I see what the problem is. Databook tells us we *must* set CMDIOC
>> when
>> issuing EndTransfer command and we should always wait for Command
>> Complete IRQ.
Hi,
Baolin Wang writes:
> I see what the problem is. Databook tells us we *must* set CMDIOC when
> issuing EndTransfer command and we should always wait for Command
> Complete IRQ. However, we took a shortcut and just delayed for 100us
>
Hi,
Baolin Wang writes:
> I see what the problem is. Databook tells us we *must* set CMDIOC when
> issuing EndTransfer command and we should always wait for Command
> Complete IRQ. However, we took a shortcut and just delayed for 100us
> after issuing End
Hi Felipe,
On 13 October 2016 at 21:34, Felipe Balbi wrote:
>
>
> Hi,
>
> Baolin Wang writes:
>>> Baolin Wang writes:
>> Baolin Wang writes:
>> I'm thinking this is a bug in configfs
Hi Felipe,
On 13 October 2016 at 21:34, Felipe Balbi wrote:
>
>
> Hi,
>
> Baolin Wang writes:
>>> Baolin Wang writes:
>> Baolin Wang writes:
>> I'm thinking this is a bug in configfs interface of Gadget API, not
>> dwc3. The only reason for this to happen would be if we
Hi,
Baolin Wang writes:
>> Baolin Wang writes:
> Baolin Wang writes:
> I'm thinking this is a bug in configfs interface of Gadget API, not
> dwc3. The only reason for this to happen would be if we get
Hi,
Baolin Wang writes:
>> Baolin Wang writes:
> Baolin Wang writes:
> I'm thinking this is a bug in configfs interface of Gadget API, not
> dwc3. The only reason for this to happen would be if we get to
> ->udc_stop() with endpoints still enabled.
>
Hi Felipe,
On 13 October 2016 at 19:23, Felipe Balbi wrote:
>
> Hi,
>
> Baolin Wang writes:
Baolin Wang writes:
I'm thinking this is a bug in configfs interface of Gadget API, not
dwc3. The only reason for
Hi Felipe,
On 13 October 2016 at 19:23, Felipe Balbi wrote:
>
> Hi,
>
> Baolin Wang writes:
Baolin Wang writes:
I'm thinking this is a bug in configfs interface of Gadget API, not
dwc3. The only reason for this to happen would be if we get to
->udc_stop() with
Hi,
Baolin Wang writes:
>>> Baolin Wang writes:
>>> I'm thinking this is a bug in configfs interface of Gadget API, not
>>> dwc3. The only reason for this to happen would be if we get to
>>> ->udc_stop() with endpoints still enabled.
Hi,
Baolin Wang writes:
>>> Baolin Wang writes:
>>> I'm thinking this is a bug in configfs interface of Gadget API, not
>>> dwc3. The only reason for this to happen would be if we get to
>>> ->udc_stop() with endpoints still enabled.
>>>
>>> Can you check if that's the
On 13 October 2016 at 18:56, Felipe Balbi wrote:
>
> Hi,
>
> Felipe Balbi writes:
>> Hi,
>>
>> Baolin Wang writes:
>> I'm thinking this is a bug in configfs interface of Gadget API, not
>> dwc3. The only reason for this to
On 13 October 2016 at 18:56, Felipe Balbi wrote:
>
> Hi,
>
> Felipe Balbi writes:
>> Hi,
>>
>> Baolin Wang writes:
>> I'm thinking this is a bug in configfs interface of Gadget API, not
>> dwc3. The only reason for this to happen would be if we get to
>> ->udc_stop() with endpoints
Hi,
Felipe Balbi writes:
> Hi,
>
> Baolin Wang writes:
> I'm thinking this is a bug in configfs interface of Gadget API, not
> dwc3. The only reason for this to happen would be if we get to
> ->udc_stop() with endpoints still enabled.
>
Hi,
Felipe Balbi writes:
> Hi,
>
> Baolin Wang writes:
> I'm thinking this is a bug in configfs interface of Gadget API, not
> dwc3. The only reason for this to happen would be if we get to
> ->udc_stop() with endpoints still enabled.
>
> Can you check if that's the case?
Hi,
Baolin Wang writes:
I'm thinking this is a bug in configfs interface of Gadget API, not
dwc3. The only reason for this to happen would be if we get to
->udc_stop() with endpoints still enabled.
Can you check if that's the case? i.e. can you
Hi,
Baolin Wang writes:
I'm thinking this is a bug in configfs interface of Gadget API, not
dwc3. The only reason for this to happen would be if we get to
->udc_stop() with endpoints still enabled.
Can you check if that's the case? i.e. can you check if any endpoints
Hi,
On 13 October 2016 at 15:51, Felipe Balbi wrote:
>
> Hi,
>
> Baolin Wang writes:
>> Hi,
>>
>> On 13 October 2016 at 15:02, Felipe Balbi wrote:
>>>
>>> Hi,
>>>
>>> Baolin Wang writes:
@@ -1742,6
Hi,
On 13 October 2016 at 15:51, Felipe Balbi wrote:
>
> Hi,
>
> Baolin Wang writes:
>> Hi,
>>
>> On 13 October 2016 at 15:02, Felipe Balbi wrote:
>>>
>>> Hi,
>>>
>>> Baolin Wang writes:
@@ -1742,6 +1791,17 @@ static int dwc3_gadget_stop(struct usb_gadget *g)
Hi,
Baolin Wang writes:
> Hi,
>
> On 13 October 2016 at 15:02, Felipe Balbi wrote:
>>
>> Hi,
>>
>> Baolin Wang writes:
>>> @@ -1742,6 +1791,17 @@ static int dwc3_gadget_stop(struct usb_gadget *g)
>>> dwc->gadget_driver
Hi,
Baolin Wang writes:
> Hi,
>
> On 13 October 2016 at 15:02, Felipe Balbi wrote:
>>
>> Hi,
>>
>> Baolin Wang writes:
>>> @@ -1742,6 +1791,17 @@ static int dwc3_gadget_stop(struct usb_gadget *g)
>>> dwc->gadget_driver = NULL;
>>> spin_unlock_irqrestore(>lock, flags);
>>>
>>>
Hi,
On 13 October 2016 at 15:02, Felipe Balbi wrote:
>
> Hi,
>
> Baolin Wang writes:
>> @@ -1742,6 +1791,17 @@ static int dwc3_gadget_stop(struct usb_gadget *g)
>> dwc->gadget_driver = NULL;
>> spin_unlock_irqrestore(>lock, flags);
>>
Hi,
On 13 October 2016 at 15:02, Felipe Balbi wrote:
>
> Hi,
>
> Baolin Wang writes:
>> @@ -1742,6 +1791,17 @@ static int dwc3_gadget_stop(struct usb_gadget *g)
>> dwc->gadget_driver = NULL;
>> spin_unlock_irqrestore(>lock, flags);
>>
>> + /*
>> + * Since the xHCI will
Hi,
Baolin Wang writes:
> @@ -1742,6 +1791,17 @@ static int dwc3_gadget_stop(struct usb_gadget *g)
> dwc->gadget_driver = NULL;
> spin_unlock_irqrestore(>lock, flags);
>
> + /*
> + * Since the xHCI will share the same interrupt with gadget,
Hi,
Baolin Wang writes:
> @@ -1742,6 +1791,17 @@ static int dwc3_gadget_stop(struct usb_gadget *g)
> dwc->gadget_driver = NULL;
> spin_unlock_irqrestore(>lock, flags);
>
> + /*
> + * Since the xHCI will share the same interrupt with gadget, thus when
> + * free
32 matches
Mail list logo