Re: [RFC][PATCH 2/9] usb: gadget: add usb_gadget_start/stop()

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

 



On 19/03/15 16:09, Li Jun wrote:
> On Thu, Mar 19, 2015 at 12:14:39PM +0200, Roger Quadros wrote:
>> On 19/03/15 05:30, Peter Chen wrote:
>>> On Wed, Mar 18, 2015 at 03:55:56PM +0200, Roger Quadros wrote:
>>>> The OTG state machine needs a mechanism to start and
>>>> stop the gadget controller. Add usb_gadget_start()
>>>> and usb_gadget_stop().
>>>>
>>>> Signed-off-by: Roger Quadros <rogerq@xxxxxx>
>>>> ---
>>>>  drivers/usb/gadget/udc/udc-core.c | 166 +++++++++++++++++++++++++++++++++++---
>>>>  include/linux/usb/gadget.h        |   3 +
>>>>  2 files changed, 158 insertions(+), 11 deletions(-)
>>>>
>>>> diff --git a/drivers/usb/gadget/udc/udc-core.c b/drivers/usb/gadget/udc/udc-core.c
>>>> index 5a81cb0..69b4123 100644
>>>> --- a/drivers/usb/gadget/udc/udc-core.c
>>>> +++ b/drivers/usb/gadget/udc/udc-core.c
>>>> @@ -35,6 +35,8 @@
>>>>   * @dev - the child device to the actual controller
>>>>   * @gadget - the gadget. For use by the class code
>>>>   * @list - for use by the udc class driver
>>>> + * @running - udc is running
>>>
>>> Doesn't OTG FSM should know it?
>>
>> Not really, as the gadget driver might not have been loaded yet or userspace might
>> have disabled softconnect when the OTG FSM wants UDC to start.
>>
>> So only UDC knows if it has really started or not based on this flag.
>>
> 
> why this can not be known by check the otg fsm state? i.e. if the device in
> b_peripheral or a_peripheral state, udc should had started, isn't it?

If gadget function driver (which is different from UDC driver) is not yet loaded
then we can't start UDC even if otg fsm is in b_peripheral.
Also, if userspace has disabled softconnect we can't start UDC.

So, b_peripheral != UDC_started.

I've tried to address this issue by adding the checks in usb_gadget_start().

cheers,
-roger
--
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