On Sun, 7 Oct 2012, Tony Prisk wrote:

> Device-tree probed devices don't get a dev.dma_mask set. This patch
> sets a default 32bit mask on platforms using devicetree.
> 
> Without this patch, arch-vt8500 cannot detect uhci attached devices.
> 
> Signed-off-by: Tony Prisk <li...@prisktech.co.nz>

This patch has a small problem...

> --- a/drivers/usb/host/uhci-platform.c
> +++ b/drivers/usb/host/uhci-platform.c
> @@ -60,6 +60,7 @@ static const struct hc_driver uhci_platform_hc_driver = {
>       .hub_control =          uhci_hub_control,
>  };
>  
> +static u64 platform_uhci_dma_mask = DMA_BIT_MASK(32);
>  
>  static int __devinit uhci_hcd_platform_probe(struct platform_device *pdev)
>  {
> @@ -71,6 +72,14 @@ static int __devinit uhci_hcd_platform_probe(struct 
> platform_device *pdev)
>       if (usb_disabled())
>               return -ENODEV;
>  
> +     /*
> +      * Right now device-tree probed devices don't get dma_mask set.
> +      * Since shared usb code relies on it, set it here for now.
> +      * Once we have dma capability bindings this can go away.
> +      */
> +     if (!pdev->dev.dma_mask)
> +             pdev->dev.dma_mask = &platform_uhci_dma_mask;
> +
>       hcd = usb_create_hcd(&uhci_platform_hc_driver, &pdev->dev,
>                       pdev->name);
>       if (!hcd)
> @@ -82,7 +91,7 @@ static int __devinit uhci_hcd_platform_probe(struct 
> platform_device *pdev)
>  
>       if (!request_mem_region(hcd->rsrc_start, hcd->rsrc_len, hcd_name)) {
>               pr_err("%s: request_mem_region failed\n", __func__);
> -             ret = -EBUSY;
> +             ret = -EBUSY;static u64 platform_uhci_dma_mask = 
> DMA_BIT_MASK(32);

What happened here?  Did you try compiling this patch?

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to