From: Sergei Shtylyov on
Hello.

Bryan Wu wrote:

> BugLink: http://bugs.launchpad.net/bugs/608312

> v2:
> fix the building error on latest 2.6.35-rc kernel, since v1 was generated in
> 2.6.33 kernel.

The remarks about patch changes should follow the --- tear line.

> v1:
> usb_add_hcd was only called when we insmod the gadget class module or built-in
> that gadget class driver. If musb is configured as OTG controller, we need to
> insmod or built-in gadget class driver to make our Host mode fucntion works.

> In our Ubuntu system, normally we compiled all the gadget class drivers as
> modules. Then users can insmod the gadget modules as they want. But without the
> gadget class driver running, we needs host function to support common USB
> devices.

> This patch fix this issue and tested on omap3 beagle board and Gumstix board.

> Signed-off-by: Bryan Wu <bryan.wu(a)canonical.com>

WBR, Sergei
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Bryan Wu on
On 07/23/2010 11:28 PM, Sergei Shtylyov wrote:
> Hello.
>
> Bryan Wu wrote:
>
>> BugLink: http://bugs.launchpad.net/bugs/608312
>
>> v2:
>> fix the building error on latest 2.6.35-rc kernel, since v1 was
>> generated in
>> 2.6.33 kernel.
>
> The remarks about patch changes should follow the --- tear line.
>

Thanks Sergei, I will take care of it in the future.

Any other comments about this patch?

Felipe, could you please take a look? or need I ping you in the Facebook, -:))

-Bryan

>> v1:
>> usb_add_hcd was only called when we insmod the gadget class module or
>> built-in
>> that gadget class driver. If musb is configured as OTG controller, we
>> need to
>> insmod or built-in gadget class driver to make our Host mode fucntion
>> works.
>
>> In our Ubuntu system, normally we compiled all the gadget class
>> drivers as
>> modules. Then users can insmod the gadget modules as they want. But
>> without the
>> gadget class driver running, we needs host function to support common USB
>> devices.
>
>> This patch fix this issue and tested on omap3 beagle board and Gumstix
>> board.
>
>> Signed-off-by: Bryan Wu <bryan.wu(a)canonical.com>
>
> WBR, Sergei
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Bryan Wu on
Felipe,

Any comments on this patch?

Thanks a lot,
-Bryan


On 07/23/2010 10:36 PM, Bryan Wu wrote:
> BugLink: http://bugs.launchpad.net/bugs/608312
>
> v2:
> fix the building error on latest 2.6.35-rc kernel, since v1 was generated in
> 2.6.33 kernel.
>
> v1:
> usb_add_hcd was only called when we insmod the gadget class module or built-in
> that gadget class driver. If musb is configured as OTG controller, we need to
> insmod or built-in gadget class driver to make our Host mode fucntion works.
>
> In our Ubuntu system, normally we compiled all the gadget class drivers as
> modules. Then users can insmod the gadget modules as they want. But without the
> gadget class driver running, we needs host function to support common USB
> devices.
>
> This patch fix this issue and tested on omap3 beagle board and Gumstix board.
>
> Signed-off-by: Bryan Wu<bryan.wu(a)canonical.com>
> ---
> drivers/usb/musb/musb_core.c | 13 +++++--------
> drivers/usb/musb/musb_gadget.c | 18 ------------------
> 2 files changed, 5 insertions(+), 26 deletions(-)
>
> diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
> index 3b795c5..1b6d74c 100644
> --- a/drivers/usb/musb/musb_core.c
> +++ b/drivers/usb/musb/musb_core.c
> @@ -1583,14 +1583,6 @@ irqreturn_t musb_interrupt(struct musb *musb)
> (devctl& MUSB_DEVCTL_HM) ? "host" : "peripheral",
> musb->int_usb, musb->int_tx, musb->int_rx);
>
> -#ifdef CONFIG_USB_GADGET_MUSB_HDRC
> - if (is_otg_enabled(musb) || is_peripheral_enabled(musb))
> - if (!musb->gadget_driver) {
> - DBG(5, "No gadget driver loaded\n");
> - return IRQ_HANDLED;
> - }
> -#endif
> -
> /* the core can interrupt us for multiple reasons; docs have
> * a generic interrupt flowchart to follow
> */
> @@ -2128,6 +2120,11 @@ bad_config:
>
> status = musb_gadget_setup(musb);
>
> + if (is_otg_enabled(musb)) {
> + status = usb_add_hcd(musb_to_hcd(musb), -1, 0);
> + musb_start(musb);
> + }
> +
> DBG(1, "%s mode, status %d, dev%02x\n",
> is_otg_enabled(musb) ? "OTG" : "PERIPHERAL",
> status,
> diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c
> index 6fca870..9e55534 100644
> --- a/drivers/usb/musb/musb_gadget.c
> +++ b/drivers/usb/musb/musb_gadget.c
> @@ -1761,24 +1761,6 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver)
> otg_set_peripheral(musb->xceiv,&musb->g);
>
> spin_unlock_irqrestore(&musb->lock, flags);
> -
> - if (is_otg_enabled(musb)) {
> - DBG(3, "OTG startup...\n");
> -
> - /* REVISIT: funcall to other code, which also
> - * handles power budgeting ... this way also
> - * ensures HdrcStart is indirectly called.
> - */
> - retval = usb_add_hcd(musb_to_hcd(musb), -1, 0);
> - if (retval< 0) {
> - DBG(1, "add_hcd failed, %d\n", retval);
> - spin_lock_irqsave(&musb->lock, flags);
> - otg_set_peripheral(musb->xceiv, NULL);
> - musb->gadget_driver = NULL;
> - musb->g.dev.driver = NULL;
> - spin_unlock_irqrestore(&musb->lock, flags);
> - }
> - }
> }
>
> return retval;

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/