iio: adc: aspeed: Fix error handling path
The labels and branching order of the error path of 'aspeed_adc_probe()' are broken. Re-order the labels and goto statements. Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
a66a4e8e01
commit
787e1853ae
@ -243,7 +243,7 @@ static int aspeed_adc_probe(struct platform_device *pdev)
|
|||||||
ASPEED_ADC_INIT_POLLING_TIME,
|
ASPEED_ADC_INIT_POLLING_TIME,
|
||||||
ASPEED_ADC_INIT_TIMEOUT);
|
ASPEED_ADC_INIT_TIMEOUT);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto scaler_error;
|
goto poll_timeout_error;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Start all channels in normal mode. */
|
/* Start all channels in normal mode. */
|
||||||
@ -274,9 +274,10 @@ iio_register_error:
|
|||||||
writel(ASPEED_OPERATION_MODE_POWER_DOWN,
|
writel(ASPEED_OPERATION_MODE_POWER_DOWN,
|
||||||
data->base + ASPEED_REG_ENGINE_CONTROL);
|
data->base + ASPEED_REG_ENGINE_CONTROL);
|
||||||
clk_disable_unprepare(data->clk_scaler->clk);
|
clk_disable_unprepare(data->clk_scaler->clk);
|
||||||
reset_error:
|
|
||||||
reset_control_assert(data->rst);
|
|
||||||
clk_enable_error:
|
clk_enable_error:
|
||||||
|
poll_timeout_error:
|
||||||
|
reset_control_assert(data->rst);
|
||||||
|
reset_error:
|
||||||
clk_hw_unregister_divider(data->clk_scaler);
|
clk_hw_unregister_divider(data->clk_scaler);
|
||||||
scaler_error:
|
scaler_error:
|
||||||
clk_hw_unregister_divider(data->clk_prescaler);
|
clk_hw_unregister_divider(data->clk_prescaler);
|
||||||
|
Loading…
Reference in New Issue
Block a user