usb: dwc2: simplify optional reset handling
authorPhilipp Zabel <p.zabel@pengutronix.de>
Wed, 15 Mar 2017 11:31:53 +0000 (12:31 +0100)
committerFelipe Balbi <felipe.balbi@linux.intel.com>
Tue, 11 Apr 2017 07:58:22 +0000 (10:58 +0300)
As of commit bb475230b8e5 ("reset: make optional functions really
optional"), the reset framework API calls use NULL pointers to describe
optional, non-present reset controls.

This allows to return errors from devm_reset_control_get_optional and to
call reset_control_(de)assert unconditionally.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Acked-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
drivers/usb/dwc2/platform.c

index 9564bc7..daf0d37 100644 (file)
@@ -214,20 +214,11 @@ static int dwc2_lowlevel_hw_init(struct dwc2_hsotg *hsotg)
        hsotg->reset = devm_reset_control_get_optional(hsotg->dev, "dwc2");
        if (IS_ERR(hsotg->reset)) {
                ret = PTR_ERR(hsotg->reset);
-               switch (ret) {
-               case -ENOENT:
-               case -ENOTSUPP:
-                       hsotg->reset = NULL;
-                       break;
-               default:
-                       dev_err(hsotg->dev, "error getting reset control %d\n",
-                               ret);
-                       return ret;
-               }
+               dev_err(hsotg->dev, "error getting reset control %d\n", ret);
+               return ret;
        }
 
-       if (hsotg->reset)
-               reset_control_deassert(hsotg->reset);
+       reset_control_deassert(hsotg->reset);
 
        /* Set default UTMI width */
        hsotg->phyif = GUSBCFG_PHYIF16;
@@ -326,8 +317,7 @@ static int dwc2_driver_remove(struct platform_device *dev)
        if (hsotg->ll_hw_enabled)
                dwc2_lowlevel_hw_disable(hsotg);
 
-       if (hsotg->reset)
-               reset_control_assert(hsotg->reset);
+       reset_control_assert(hsotg->reset);
 
        return 0;
 }