Re: [PATCHv2 01/13] usb: dwc2: Update Kconfig to support dual-role

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

 



On Thu, Aug 7, 2014 at 4:04 PM, Paul Zimmerman
<Paul.Zimmerman@xxxxxxxxxxxx> wrote:
>> From: Dinh Nguyen [mailto:dinh.linux@xxxxxxxxx]
>> Sent: Thursday, August 07, 2014 2:01 PM
>>
>> On Thu, Aug 7, 2014 at 3:55 PM, Paul Zimmerman
>> <Paul.Zimmerman@xxxxxxxxxxxx> wrote:
>> >> From: Dinh Nguyen [mailto:dinh.linux@xxxxxxxxx]
>> >> Sent: Thursday, August 07, 2014 5:12 AM
>> >>
>> >> On 8/1/14, 4:41 PM, Dinh Nguyen wrote:
>> >> > On Fri, 2014-08-01 at 20:42 +0000, Paul Zimmerman wrote:
>> >> >>> From: linux-usb-owner@xxxxxxxxxxxxxxx [mailto:linux-usb-owner@xxxxxxxxxxxxxxx] On Behalf Of
>> dinguyen@xxxxxxxxxx
>> >> >>> Sent: Wednesday, July 30, 2014 8:21 AM
>> >
>> > ...
>> >
>> >> >>>  config USB_DWC2_PERIPHERAL
>> >> >>> - tristate "Gadget only mode"
>> >> >>> + bool "Gadget only mode"
>> >> >>>   depends on USB_GADGET
>> >> >>>   help
>> >> >>>     The Designware USB2.0 high-speed gadget controller
>> >> >>> -   integrated into many SoCs.
>> >> >>> +   integrated into many SoCs. Select this option if you want the
>> >> >>> +   driver to operate in Peripheral-only mode.
>> >> >>> +
>> >> >>> +config USB_DWC2_DUAL_ROLE
>> >> >>> + bool "Dual Role mode"
>> >> >>> + depends on ((USB=y || USB=USB_DWC2) && (USB_GADGET=y))
>> >> >>
>> >> >> Hi Dinh,
>> >> >>
>> >> >> I just noticed that for dual-role mode, you are not allowing USB_GADGET
>> >> >> to be modular. Is there a reason for that? If so, please mention it in
>> >> >> the commit message. It should also be explained in the help text. Or
>> >> >> maybe add another comment line saying "Dual-role mode requires USB Gadget
>> >> >>  = y" or something like that.
>> >> >>
>> >> >
>> >> > I think it was an oversight on my part and there's not reason why
>> >> > USB_GADGET can't be modular.
>> >> >
>> >>
>> >> I went back to look this for v3 and it appears that I need USB_GADGET=y
>> >> to avoid a build error when building the new driver for Gadget or Dual-role.
>> >>
>> >> drivers/built-in.o: In function `dwc2_gadget_init':
>> >> /home/dinguyen/linux_dev/linux-socfpga/drivers/usb/dwc2/gadget.c:3516:
>> >> undefined reference to `usb_add_gadget_udc'
>> >> drivers/built-in.o: In function `s3c_hsotg_remove':
>> >> /home/dinguyen/linux_dev/linux-socfpga/drivers/usb/dwc2/gadget.c:3543:
>> >> undefined reference to `usb_del_gadget_udc'
>> >> /home/dinguyen/linux_dev/linux-socfpga/drivers/usb/dwc2/gadget.c:3549:
>> >> undefined reference to `usb_gadget_unregister_driver'
>> >
>> > I don't see why that shouldn't work. usb_add_gadget_udc is defined in
>> > udc-core.c, which gets built if CONFIG_USB_GADGET is set. What Kconfig
>> > line did you use when you got this build error? I think it should be:
>> >
>> > config USB_DWC2_DUAL_ROLE
>> >         bool "Dual Role mode"
>> >         depends on (USB=y || USB=USB_DWC2) && (USB_GADGET=y || USB_GADGET=USB_DWC2)
>> >
>>
>> Right, I think your original comment was why I had "USB_GADGET=y" as a
>> dependency for DWC2_DUAL_ROLE. If I replace USB_GADGET=y with just
>> USB_GADGET, and make USB_GADGET a module. This is fine if I build DWC
>> as module, but If I build DWC2 into the kernel, then the driver cannot
>> link those gadget functions in.
> I don't think just USB_GADGET will work. Please try it with the line I
> showed above.
>

Yes, your suggestion works fine. It's an additional
"USB_GADGET=USB_DWC2" from what I had in v2.

Thanks,
Dinh
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux