From: Bryan Wu <bryan.wu@canonical.com>
To: felipe.balbi@nokia.com, linux-usb@vger.kernel.org
Cc: david-b@pacbell.net, kernel-team@lists.ubuntu.com,
linux-kernel@vger.kernel.org, ricardo.salveti@canonical.com,
linux-omap@vger.kernel.org
Subject: Re: [PATCH] musb: move usb_add_hcd to the core init code from gadget code (v2)
Date: Mon, 09 Aug 2010 21:24:01 +0800 [thread overview]
Message-ID: <4C600171.5020405@canonical.com> (raw)
In-Reply-To: <1279895783-7313-1-git-send-email-bryan.wu@canonical.com>
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@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;
next prev parent reply other threads:[~2010-08-09 13:24 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-23 14:36 [PATCH] musb: move usb_add_hcd to the core init code from gadget code (v2) Bryan Wu
2010-07-23 15:28 ` Sergei Shtylyov
2010-07-30 4:53 ` Bryan Wu
2010-08-09 13:24 ` Bryan Wu [this message]
2011-01-10 11:47 ` Brad Parker
2011-01-10 11:57 ` Felipe Balbi
2011-01-10 14:08 ` UNS: " Brad Parker
2011-01-10 12:38 ` David Brownell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4C600171.5020405@canonical.com \
--to=bryan.wu@canonical.com \
--cc=david-b@pacbell.net \
--cc=felipe.balbi@nokia.com \
--cc=kernel-team@lists.ubuntu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=ricardo.salveti@canonical.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox