usb: dwc2: simplify optional reset handling

As of commit bb475230b8 ("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>
This commit is contained in:
Philipp Zabel 2017-03-15 12:31:53 +01:00 committed by Felipe Balbi
parent 20839dbb7d
commit 8ec32c38ef

View 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"); hsotg->reset = devm_reset_control_get_optional(hsotg->dev, "dwc2");
if (IS_ERR(hsotg->reset)) { if (IS_ERR(hsotg->reset)) {
ret = PTR_ERR(hsotg->reset); ret = PTR_ERR(hsotg->reset);
switch (ret) { dev_err(hsotg->dev, "error getting reset control %d\n", ret);
case -ENOENT: return ret;
case -ENOTSUPP:
hsotg->reset = NULL;
break;
default:
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 */ /* Set default UTMI width */
hsotg->phyif = GUSBCFG_PHYIF16; hsotg->phyif = GUSBCFG_PHYIF16;
@ -326,8 +317,7 @@ static int dwc2_driver_remove(struct platform_device *dev)
if (hsotg->ll_hw_enabled) if (hsotg->ll_hw_enabled)
dwc2_lowlevel_hw_disable(hsotg); dwc2_lowlevel_hw_disable(hsotg);
if (hsotg->reset) reset_control_assert(hsotg->reset);
reset_control_assert(hsotg->reset);
return 0; return 0;
} }