diff options
author | Fabio Estevam <fabio.estevam@freescale.com> | 2013-06-13 16:59:49 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-06-17 22:45:46 +0200 |
commit | e56ae54ff157701ab811b03cab195d8e5eca6628 (patch) | |
tree | 6e9371772fabcb82208fb3feb75cb542ba106ac8 /drivers | |
parent | usb: chipidea: ci13xxx_imx: fix error path (diff) | |
download | linux-e56ae54ff157701ab811b03cab195d8e5eca6628.tar.xz linux-e56ae54ff157701ab811b03cab195d8e5eca6628.zip |
usb: chipidea: ci13xxx_imx: remove reg_vbus
There is no need to keep a 'reg_vbus' indirection, so get rid of it.
The motivation for doing this change is that in the case of error, the current
code only sets the local reg_vbus to NULL instead of updating the private
structure 'data->reg_vbus'.
Updating only the local reg_vbus is wrong, since we currently check for
data->reg_vbus in the ci13xxx_imx_remove() function.
In order to avoid such issue, just use 'data->reg_vbus' directly.
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/usb/chipidea/ci13xxx_imx.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/drivers/usb/chipidea/ci13xxx_imx.c b/drivers/usb/chipidea/ci13xxx_imx.c index 24f46e1f043a..1b100c8e3835 100644 --- a/drivers/usb/chipidea/ci13xxx_imx.c +++ b/drivers/usb/chipidea/ci13xxx_imx.c @@ -101,7 +101,6 @@ static int ci13xxx_imx_probe(struct platform_device *pdev) struct platform_device *phy_pdev; struct device_node *phy_np; struct resource *res; - struct regulator *reg_vbus; int ret; if (of_find_property(pdev->dev.of_node, "fsl,usbmisc", NULL) @@ -150,18 +149,17 @@ static int ci13xxx_imx_probe(struct platform_device *pdev) } /* we only support host now, so enable vbus here */ - reg_vbus = devm_regulator_get(&pdev->dev, "vbus"); - if (!IS_ERR(reg_vbus)) { - ret = regulator_enable(reg_vbus); + data->reg_vbus = devm_regulator_get(&pdev->dev, "vbus"); + if (!IS_ERR(data->reg_vbus)) { + ret = regulator_enable(data->reg_vbus); if (ret) { dev_err(&pdev->dev, "Failed to enable vbus regulator, err=%d\n", ret); goto put_np; } - data->reg_vbus = reg_vbus; } else { - reg_vbus = NULL; + data->reg_vbus = NULL; } ci13xxx_imx_platdata.phy = data->phy; @@ -210,8 +208,8 @@ static int ci13xxx_imx_probe(struct platform_device *pdev) disable_device: ci13xxx_remove_device(data->ci_pdev); err: - if (reg_vbus) - regulator_disable(reg_vbus); + if (data->reg_vbus) + regulator_disable(data->reg_vbus); put_np: if (phy_np) of_node_put(phy_np); |