usb: musb: remove hand-crafted id handling
This replaced the handcrafted id handling by the PLATFORM_DEVID_AUTO value which should do the same thing. This patch probably also fixes ux500 because I did not find the "musbid" variable to remove. And we close a tiny-unlikely race window becuase the old code gave the id back before device was destroyed in the remove case. [ balbi@ti.com : fixed up two failed hunks when applying patch ] Cc: B, Ravi <ravibabu@ti.com> Cc: Santhapuri, Damodar <damodar.santhapuri@ti.com> Cc: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com> Cc: Bob Liu <lliubbo@gmail.com> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Felipe Balbi <balbi@ti.com>
此提交包含在:

提交者
Felipe Balbi

父節點
b18d26f6ad
當前提交
2f77116425
@@ -455,7 +455,6 @@ static int __devinit bfin_probe(struct platform_device *pdev)
|
||||
struct bfin_glue *glue;
|
||||
|
||||
int ret = -ENOMEM;
|
||||
int musbid;
|
||||
|
||||
glue = kzalloc(sizeof(*glue), GFP_KERNEL);
|
||||
if (!glue) {
|
||||
@@ -463,21 +462,12 @@ static int __devinit bfin_probe(struct platform_device *pdev)
|
||||
goto err0;
|
||||
}
|
||||
|
||||
/* get the musb id */
|
||||
musbid = musb_get_id(&pdev->dev, GFP_KERNEL);
|
||||
if (musbid < 0) {
|
||||
dev_err(&pdev->dev, "failed to allocate musb id\n");
|
||||
ret = -ENOMEM;
|
||||
musb = platform_device_alloc("musb-hdrc", PLATFORM_DEVID_AUTO);
|
||||
if (!musb) {
|
||||
dev_err(&pdev->dev, "failed to allocate musb device\n");
|
||||
goto err1;
|
||||
}
|
||||
|
||||
musb = platform_device_alloc("musb-hdrc", musbid);
|
||||
if (!musb) {
|
||||
dev_err(&pdev->dev, "failed to allocate musb device\n");
|
||||
goto err2;
|
||||
}
|
||||
|
||||
musb->id = musbid;
|
||||
musb->dev.parent = &pdev->dev;
|
||||
musb->dev.dma_mask = &bfin_dmamask;
|
||||
musb->dev.coherent_dma_mask = bfin_dmamask;
|
||||
@@ -513,9 +503,6 @@ static int __devinit bfin_probe(struct platform_device *pdev)
|
||||
err3:
|
||||
platform_device_put(musb);
|
||||
|
||||
err2:
|
||||
musb_put_id(&pdev->dev, musbid);
|
||||
|
||||
err1:
|
||||
kfree(glue);
|
||||
|
||||
@@ -527,7 +514,6 @@ static int __devexit bfin_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct bfin_glue *glue = platform_get_drvdata(pdev);
|
||||
|
||||
musb_put_id(&pdev->dev, glue->musb->id);
|
||||
platform_device_unregister(glue->musb);
|
||||
kfree(glue);
|
||||
|
||||
|
新增問題並參考
封鎖使用者