Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1426329

Re: [PATCH v10 06/14] usb: gadget.h: Add OTG to gadget interface

From Roger Quadros <rogerq@ti.com>
Newsgroups linux.kernel
Subject Re: [PATCH v10 06/14] usb: gadget.h: Add OTG to gadget interface
Date 2016-06-20 10:40 +0200
Message-ID <rM2Up-5T4-11@gated-at.bofh.it> (permalink)
References <rIumd-4YI-3@gated-at.bofh.it> <rIumd-4YI-1@gated-at.bofh.it> <rM1OF-5eM-9@gated-at.bofh.it> <rM1OF-5eM-25@gated-at.bofh.it> <rM2B3-5Mx-15@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


[Multipart message — attachments visible in raw view] - view raw

On 20/06/16 11:13, Felipe Balbi wrote:
> 
> Hi,
> 
> Roger Quadros <rogerq@ti.com> writes:
>> [ Unknown signature status ]
>> On 20/06/16 10:21, Felipe Balbi wrote:
>>>
>>> Hi,
>>>
>>> Roger Quadros <rogerq@ti.com> writes:
>>>> The OTG core will use struct otg_gadget_ops to
>>>> start/stop the gadget controller.
>>>>
>>>> The main purpose of this interface is to avoid directly
>>>> calling usb_gadget_start/stop() from the OTG core as they
>>>> wouldn't be defined in the built-in symbol table if
>>>> CONFIG_USB_GADGET is m.
>>>>
>>>> Signed-off-by: Roger Quadros <rogerq@ti.com>
>>>> ---
>>>>  include/linux/usb/gadget.h | 16 ++++++++++++++++
>>>>  1 file changed, 16 insertions(+)
>>>>
>>>> diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h
>>>> index 2dd9e6b..f4fc0aa 100644
>>>> --- a/include/linux/usb/gadget.h
>>>> +++ b/include/linux/usb/gadget.h
>>>> @@ -639,6 +639,22 @@ struct usb_gadget_driver {
>>>>  };
>>>>  
>>>>  
>>>> +/*-------------------------------------------------------------------------*/
>>>> +
>>>> +/**
>>>> + * struct otg_gadget_ops - Interface between OTG core and gadget
>>>> + *
>>>> + * Provided by the gadget core to allow the OTG core to start/stop the gadget
>>>> + *
>>>> + * @start: function to start the gadget
>>>> + * @stop: function to stop the gadget
>>>> + * @connect_control: function to connect/disconnect from the bus
>>>> + */
>>>> +struct otg_gadget_ops {
>>>> +	int (*start)(struct usb_gadget *gadget);
>>>> +	int (*stop)(struct usb_gadget *gadget);
>>>> +	int (*connect_control)(struct usb_gadget *gadget, bool connect);
>>>> +};
>>>
>>> you shouldn't need these at all. They are already part of the gadget
>>> framework as ->udc_start(), ->udc_stop() and ->pullup()
>>>
>>
>> This is to avoid the undefined symbol errors during build when OTG has is
>> built-in because USB (host) is built-in but GADGET is still a module.
> 
> change your Kconfig dependencies. OTG layer shouldn't be built-in unless
> both Gadget and Host are built-in.
> 

That is only one side of the story.
What happens if OTG is (m), Host is (m) but Gadget is (built in).

Gadget build will fail because of undefined symbol errors for all of the
OTG APIs.

cheers,
-roger

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Re: [PATCH v10 06/14] usb: gadget.h: Add OTG to gadget interface Felipe Balbi <balbi@kernel.org> - 2016-06-20 09:30 +0200
  Re: [PATCH v10 06/14] usb: gadget.h: Add OTG to gadget interface Roger Quadros <rogerq@ti.com> - 2016-06-20 09:30 +0200
    Re: [PATCH v10 06/14] usb: gadget.h: Add OTG to gadget interface Felipe Balbi <balbi@kernel.org> - 2016-06-20 10:20 +0200
      Re: [PATCH v10 06/14] usb: gadget.h: Add OTG to gadget interface Roger Quadros <rogerq@ti.com> - 2016-06-20 10:40 +0200
        Re: [PATCH v10 06/14] usb: gadget.h: Add OTG to gadget interface Felipe Balbi <balbi@kernel.org> - 2016-06-20 11:30 +0200
          Re: [PATCH v10 06/14] usb: gadget.h: Add OTG to gadget interface Roger Quadros <rogerq@ti.com> - 2016-06-20 12:00 +0200

csiph-web