All of lore.kernel.org
 help / color / mirror / Atom feed
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Shengzhou Liu <Shengzhou.Liu@freescale.com>
Cc: linux-usb@vger.kernel.org, linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH] powerpc/usb: fix bug of kernel hang when initializing usb
Date: Thu, 16 Feb 2012 21:39:15 +1100	[thread overview]
Message-ID: <1329388755.2892.15.camel@pasglop> (raw)
In-Reply-To: <1329386540-12341-1-git-send-email-Shengzhou.Liu@freescale.com>

On Thu, 2012-02-16 at 18:02 +0800, Shengzhou Liu wrote:
> If USB UTMI PHY is not enable, writing to portsc register will lead to
> kernel hang during boot up.

Thanks, I'll try that tomorrow.

Greg, you're picking that up or should I ?

Cheers,
Ben.

> Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
> ---
> Apply for master branch of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git 
> Tested on P5020DS, the issue was reported by Benjamin Herrenschmidt. 
> 
>  drivers/usb/host/ehci-fsl.c |    4 ++++
>  drivers/usb/host/ehci-fsl.h |    1 +
>  2 files changed, 5 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/usb/host/ehci-fsl.c b/drivers/usb/host/ehci-fsl.c
> index c26a82e..0090ed2 100644
> --- a/drivers/usb/host/ehci-fsl.c
> +++ b/drivers/usb/host/ehci-fsl.c
> @@ -216,6 +216,8 @@ static void ehci_fsl_setup_phy(struct ehci_hcd *ehci,
>  			       unsigned int port_offset)
>  {
>  	u32 portsc;
> +	struct usb_hcd *hcd = ehci_to_hcd(ehci);
> +	void __iomem *non_ehci = hcd->regs;
>  
>  	portsc = ehci_readl(ehci, &ehci->regs->port_status[port_offset]);
>  	portsc &= ~(PORT_PTS_MSK | PORT_PTS_PTW);
> @@ -231,6 +233,8 @@ static void ehci_fsl_setup_phy(struct ehci_hcd *ehci,
>  		portsc |= PORT_PTS_PTW;
>  		/* fall through */
>  	case FSL_USB2_PHY_UTMI:
> +		/* enable UTMI PHY */
> +		setbits32(non_ehci + FSL_SOC_USB_CTRL, CTRL_UTMI_PHY_EN);
>  		portsc |= PORT_PTS_UTMI;
>  		break;
>  	case FSL_USB2_PHY_NONE:
> diff --git a/drivers/usb/host/ehci-fsl.h b/drivers/usb/host/ehci-fsl.h
> index bdf43e2..0e400c2 100644
> --- a/drivers/usb/host/ehci-fsl.h
> +++ b/drivers/usb/host/ehci-fsl.h
> @@ -45,6 +45,7 @@
>  #define FSL_SOC_USB_PRICTRL	0x40c	/* NOTE: big-endian */
>  #define FSL_SOC_USB_SICTRL	0x410	/* NOTE: big-endian */
>  #define FSL_SOC_USB_CTRL	0x500	/* NOTE: big-endian */
> +#define CTRL_UTMI_PHY_EN	(1<<9)
>  #define CTRL_PHY_CLK_VALID	(1 << 17)
>  #define SNOOP_SIZE_2GB		0x1e
>  #endif				/* _EHCI_FSL_H */

  reply	other threads:[~2012-02-16 10:39 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-16 10:02 [PATCH] powerpc/usb: fix bug of kernel hang when initializing usb Shengzhou Liu
2012-02-16 10:39 ` Benjamin Herrenschmidt [this message]
2012-02-16 16:19   ` Greg KH
2012-02-16 22:58 ` Benjamin Herrenschmidt
2012-02-17  0:02   ` Benjamin Herrenschmidt
2012-02-17  2:32     ` Liu Shengzhou-B36685
2012-02-17  3:20       ` Pan Jiafei-B37022
2012-02-17  3:42         ` Benjamin Herrenschmidt
2012-02-17  3:46           ` Pan Jiafei-B37022
2012-02-17  3:54           ` Pan Jiafei-B37022
2012-02-18 15:39 ` Sergei Shtylyov

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=1329388755.2892.15.camel@pasglop \
    --to=benh@kernel.crashing.org \
    --cc=Shengzhou.Liu@freescale.com \
    --cc=linux-usb@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.