summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/mips/cavium-octeon/octeon-usb.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/arch/mips/cavium-octeon/octeon-usb.c b/arch/mips/cavium-octeon/octeon-usb.c
index 97f6dc31e1b4..950e6c6e8629 100644
--- a/arch/mips/cavium-octeon/octeon-usb.c
+++ b/arch/mips/cavium-octeon/octeon-usb.c
@@ -498,6 +498,7 @@ static int __init dwc3_octeon_device_init(void)
const char compat_node_name[] = "cavium,octeon-7130-usb-uctl";
struct platform_device *pdev;
struct device_node *node;
+ struct resource *res;
void __iomem *base;
/*
@@ -515,13 +516,20 @@ static int __init dwc3_octeon_device_init(void)
if (!pdev)
return -ENODEV;
+ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ if (res == NULL) {
+ put_device(&pdev->dev);
+ dev_err(&pdev->dev, "No memory resources\n");
+ return -ENXIO;
+ }
+
/*
* The code below maps in the registers necessary for
* setting up the clocks and reseting PHYs. We must
* release the resources so the dwc3 subsystem doesn't
* know the difference.
*/
- base = devm_platform_ioremap_resource(pdev, 0);
+ base = devm_ioremap_resource(&pdev->dev, res);
if (IS_ERR(base)) {
put_device(&pdev->dev);
return PTR_ERR(base);