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:
parent
20839dbb7d
commit
8ec32c38ef
@ -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;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user