[U-Boot] [[PATCH v2 5/6] USB: ehci: Add a weak function for resetting devices

Marek Vasut marex at denx.de
Thu Jul 11 00:20:06 CEST 2013


Dear Dan Murphy,

> Add a __weak function that can be overridden to reset devices
> attached to an ehci devices after the FEAT_POWER has been submitted
> 
> Signed-off-by: Dan Murphy <dmurphy at ti.com>
> ---
>  drivers/usb/host/ehci-hcd.c |    7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
> index 706cf0c..fdd3994 100644
> --- a/drivers/usb/host/ehci-hcd.c
> +++ b/drivers/usb/host/ehci-hcd.c
> @@ -616,6 +616,11 @@ __weak uint32_t *ehci_get_portsc_register(struct
> ehci_hcor *hcor, int port) return (uint32_t *)&hcor->or_portsc[port];
>  }
> 
> +__weak void ehci_reset_attached_devices(int port)
> +{
> +	return;
> +}
> +

Can the reset not happen elsewhere?

>  int
>  ehci_submit_root(struct usb_device *dev, unsigned long pipe, void *buffer,
>  		 int length, struct devrequest *req)
> @@ -777,6 +782,7 @@ ehci_submit_root(struct usb_device *dev, unsigned long
> pipe, void *buffer, reg |= EHCI_PS_PP;
>  				ehci_writel(status_reg, reg);
>  			}
> +			ehci_reset_attached_devices(port);
>  			break;
>  		case USB_PORT_FEAT_RESET:
>  			if ((reg & (EHCI_PS_PE | EHCI_PS_CS)) == EHCI_PS_CS &&
> @@ -794,6 +800,7 @@ ehci_submit_root(struct usb_device *dev, unsigned long
> pipe, void *buffer, reg |= EHCI_PS_PR;
>  				reg &= ~EHCI_PS_PE;
>  				ehci_writel(status_reg, reg);
> +

NAK

>  				/*
>  				 * caller must wait, then call GetPortStatus
>  				 * usb 2.0 specification say 50 ms resets on

Best regards,
Marek Vasut


More information about the U-Boot mailing list