|
|
|
@ -432,17 +432,16 @@ static int usbhs_probe(struct platform_device *pdev) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* usb private data */ |
|
|
|
|
priv = kzalloc(sizeof(*priv), GFP_KERNEL); |
|
|
|
|
priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); |
|
|
|
|
if (!priv) { |
|
|
|
|
dev_err(&pdev->dev, "Could not allocate priv\n"); |
|
|
|
|
return -ENOMEM; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
priv->base = ioremap_nocache(res->start, resource_size(res)); |
|
|
|
|
priv->base = devm_request_and_ioremap(&pdev->dev, res); |
|
|
|
|
if (!priv->base) { |
|
|
|
|
dev_err(&pdev->dev, "ioremap error.\n"); |
|
|
|
|
ret = -ENOMEM; |
|
|
|
|
goto probe_end_kfree; |
|
|
|
|
return -ENOMEM; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
@ -485,7 +484,7 @@ static int usbhs_probe(struct platform_device *pdev) |
|
|
|
|
/* call pipe and module init */ |
|
|
|
|
ret = usbhs_pipe_probe(priv); |
|
|
|
|
if (ret < 0) |
|
|
|
|
goto probe_end_iounmap; |
|
|
|
|
return ret; |
|
|
|
|
|
|
|
|
|
ret = usbhs_fifo_probe(priv); |
|
|
|
|
if (ret < 0) |
|
|
|
@ -546,10 +545,6 @@ probe_end_fifo_exit: |
|
|
|
|
usbhs_fifo_remove(priv); |
|
|
|
|
probe_end_pipe_exit: |
|
|
|
|
usbhs_pipe_remove(priv); |
|
|
|
|
probe_end_iounmap: |
|
|
|
|
iounmap(priv->base); |
|
|
|
|
probe_end_kfree: |
|
|
|
|
kfree(priv); |
|
|
|
|
|
|
|
|
|
dev_info(&pdev->dev, "probe failed\n"); |
|
|
|
|
|
|
|
|
@ -576,8 +571,6 @@ static int __devexit usbhs_remove(struct platform_device *pdev) |
|
|
|
|
usbhs_mod_remove(priv); |
|
|
|
|
usbhs_fifo_remove(priv); |
|
|
|
|
usbhs_pipe_remove(priv); |
|
|
|
|
iounmap(priv->base); |
|
|
|
|
kfree(priv); |
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|