Re: [PATCH 1/1] usb: chipidea: Improve kconfig

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

 



Peter Chen <hzpeterchen@xxxxxxxxx> writes:

> On Thu, May 9, 2013 at 3:51 AM, Randy Dunlap <rdunlap@xxxxxxxxxxxxx> wrote:
>> On 05/08/13 03:02, Peter Chen wrote:
>>> Randy Dunlap <rdunlap@xxxxxxxxxxxxx> reported below problem
>>> at i386:
>>>> drivers/built-in.o: In function `ci_hdrc_host_init':
>>>> (.text+0x2ce75c): undefined reference to `ehci_init_driver'
>>>
>>>> When USB_EHCI_HCD=m and USB_CHIPIDEA=y.
>>>
>>> In fact, this problem is existed at all platforms which are using
>>> chipidea driver. The root cause of this problem is the chipidea host
>>> uses symbol exported from ehci-hcd, but chipidea core
>>> does not depends on USB_EHCI_HCD. So, chipidea driver
>>> will not be compiled as module if USB_EHCI_HCD=m.
>>>
>>> It is very hard to give a perfect solution since chipidea core
>>> depends on USB || USB_GADGET, and chipdiea host depends on
>>> both USB_EHCI_HCD and USB_CHIPIDEA, the same problem exists for
>>> gadget.
>>>
>>> To fix this problem, we had to have below assumptions:
>>>
>>> - If USB_EHCI_HCD=y && USB_GADGET=y, USB_CHIPIDEA can be 'y'.
>>>
>>> - If USB_EHCI_HCD=m && USB_GADGET=y, USB_CHIPIDEA=m
>>> or USB_CHIPIDEA_HOST can't be seen if USB_CHIPIDEA=y.
>>> It will cause compile error as no glue layer for ehci.
>>>> error: #error "missing bus glue for ehci-hcd"
>>> So, we had to compile USB_CHIPIDEA=m if USB_EHCI_HCD=m,
>>> current ehci hcd core guarantee it.
>>>
>>> - If USB_EHCI_HCD=y && USB_GADGET=m, USB_CHIPIDEA=m
>>> or USB_CHIPIDEA_UDC can't be seen if USB_CHIPIDEA=y.
>>> Of cos, the gadget will out of working at this situation,
>>> so the user had to compile USB_CHIPIDEA=m.
>>>
>>> - USB_EHCI_HCD=m && USB_GADGET=m, we can't see
>>> USB_CHIPIDEA_HOST and USB_CHIPIDEA_UDC unless
>>> USB_CHIPIDEA=m.
>>>
>>> The reason why it has abvoe assumptions:
>>> - If both ehci core and gadget core build as module,
>>> the chipidea has to build as module.
>>> - If one of ehci core or gadget core is built in, another
>>> is built as module, we can only enable the function which
>>> is built in, or enable both roles as modules (USB_CHIPIDEA=m),
>>> since chipidea driver is unify core driver, the host or udc
>>> is not a individual driver.
>>>
>>> Signed-off-by: Peter Chen <peter.chen@xxxxxxxxxxxxx>
>>
>> Acked-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
>>
>> Thanks.
>>
>>
>>> ---
>>>  drivers/usb/chipidea/Kconfig |    6 +++---
>>>  1 files changed, 3 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/drivers/usb/chipidea/Kconfig b/drivers/usb/chipidea/Kconfig
>>> index 608a2ae..eb2aa2e 100644
>>> --- a/drivers/usb/chipidea/Kconfig
>>> +++ b/drivers/usb/chipidea/Kconfig
>>> @@ -12,15 +12,15 @@ if USB_CHIPIDEA
>>>
>>>  config USB_CHIPIDEA_UDC
>>>       bool "ChipIdea device controller"
>>> -     depends on USB_GADGET=y || USB_GADGET=USB_CHIPIDEA
>>> +     depends on USB_GADGET=y || USB_CHIPIDEA=m
>>>       help
>>>         Say Y here to enable device controller functionality of the
>>>         ChipIdea driver.
>>>
>>>  config USB_CHIPIDEA_HOST
>>>       bool "ChipIdea host controller"
>>> -     depends on USB=y || USB=USB_CHIPIDEA
>>> -     depends on USB_EHCI_HCD
>>> +     depends on USB=y
>>> +     depends on USB_EHCI_HCD=y || USB_CHIPIDEA=m
>>>       select USB_EHCI_ROOT_HUB_TT
>>>       help
>>>         Say Y here to enable host controller functionality of the
>>>
>>
>>
>
> Alex, will you queue this one?

I did actually have this one in my tree, but since that time this

commit 7c8bfed7aaeba690de30835fe89882e1047a55fd
Author: David Rientjes <rientjes@xxxxxxxxxx>
Date:   Fri Apr 26 13:25:01 2013 -0700

    usb, chipidea: fix link error when USB_EHCI_HCD is a module

has turned up in usb-next, and there's a conflict. So if you have time
to have a look at this, I'd appreciate that.

My tree is at the same address on github.

Regards,
--
Alex
--
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