Re: [PATCH] USB: ehci-mxc: i.MX35: add workaround for ENGcm11601

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

 



On Wed, Mar 11, 2015 at 01:42:42PM +0100, Bas Vermeulen wrote:
> i.MX35 has an issue that when USB DMA (SINGLE) transfers
> are interrupted, the usb core can hang.
> 
> This patch implements the workaround described in ENGcm11601
> by setting the AHB to use INCR transfers instead of SINGLE
> transfers.
> 
> Signed-off-by: Bas Vermeulen <bas.vermeulen@xxxxxxxxxxxx>
> CC: Sasha Hauer <kernel@xxxxxxxxxxxxxx>
> CC: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>
> ---
>  drivers/usb/host/ehci-mxc.c | 17 +++++++++++++++++
>  1 file changed, 17 insertions(+)
> 
> diff --git a/drivers/usb/host/ehci-mxc.c b/drivers/usb/host/ehci-mxc.c
> index c7a9b31..1a00492 100644
> --- a/drivers/usb/host/ehci-mxc.c
> +++ b/drivers/usb/host/ehci-mxc.c
> @@ -36,6 +36,7 @@
>  static const char hcd_name[] = "ehci-mxc";
>  
>  #define ULPI_VIEWPORT_OFFSET	0x170
> +#define SBUSCFG_OFFSET		0x090
>  
>  struct ehci_mxc_priv {
>  	struct clk *usbclk, *ahbclk, *phyclk;
> @@ -43,8 +44,24 @@ struct ehci_mxc_priv {
>  
>  static struct hc_driver __read_mostly ehci_mxc_hc_driver;
>  
> +static int ehci_mxc_reset(struct usb_hcd *hcd)
> +{
> +	int retval;
> +
> +	retval = ehci_setup(hcd);
> +	if (retval)
> +		return retval;
> +
> +	/* workaround for ENGcm11601 */
> +	if (of_machine_is_compatible("fsl,imx35"))
> +		writel(0, hcd->regs + SBUSCFG_OFFSET);

This driver normally is not used with device tree. Without additional
kernel changes the chipidea driver is used instead.

Sascha


-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
--
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