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 <[email protected]>
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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html