From 10cba91b90fa1f1d58bffad2457394aa360d81c0 Mon Sep 17 00:00:00 2001 From: Felipe Balbi Date: Thu, 11 Sep 2008 11:53:25 +0300 Subject: [PATCH] --- yaml --- r: 115778 b: refs/heads/master c: 28c2c51c078296151549f4f0e823e804f773861b h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/usb/musb/musb_core.c | 32 ++++++++++++++++++++---------- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/[refs] b/[refs] index c380b21a5275..24e9963930f0 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 458e6a511f9dc91e5af5e64740b0a5c9650a25fb +refs/heads/master: 28c2c51c078296151549f4f0e823e804f773861b diff --git a/trunk/drivers/usb/musb/musb_core.c b/trunk/drivers/usb/musb/musb_core.c index d5af6b0d8af5..4a35745b30be 100644 --- a/trunk/drivers/usb/musb/musb_core.c +++ b/trunk/drivers/usb/musb/musb_core.c @@ -2055,15 +2055,6 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl) } - return 0; - -fail: - if (musb->clock) - clk_put(musb->clock); - device_init_wakeup(dev, 0); - musb_free(musb); - return status; - #ifdef CONFIG_SYSFS status = device_create_file(dev, &dev_attr_mode); status = device_create_file(dev, &dev_attr_vbus); @@ -2072,12 +2063,31 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl) #endif /* CONFIG_USB_GADGET_MUSB_HDRC */ status = 0; #endif + if (status) + goto fail2; - return status; + return 0; fail2: +#ifdef CONFIG_SYSFS + device_remove_file(musb->controller, &dev_attr_mode); + device_remove_file(musb->controller, &dev_attr_vbus); +#ifdef CONFIG_USB_MUSB_OTG + device_remove_file(musb->controller, &dev_attr_srp); +#endif +#endif musb_platform_exit(musb); - goto fail; +fail: + dev_err(musb->controller, + "musb_init_controller failed with status %d\n", status); + + if (musb->clock) + clk_put(musb->clock); + device_init_wakeup(dev, 0); + musb_free(musb); + + return status; + } /*-------------------------------------------------------------------------*/