forked from Minki/linux
[media] rc: sunxi-cir: 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>
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
parent
ec6b0bd54e
commit
c3d4fb0fb4
@ -174,16 +174,11 @@ static int sunxi_ir_probe(struct platform_device *pdev)
|
||||
|
||||
/* Reset (optional) */
|
||||
ir->rst = devm_reset_control_get_optional(dev, NULL);
|
||||
if (IS_ERR(ir->rst)) {
|
||||
ret = PTR_ERR(ir->rst);
|
||||
if (ret == -EPROBE_DEFER)
|
||||
return ret;
|
||||
ir->rst = NULL;
|
||||
} else {
|
||||
ret = reset_control_deassert(ir->rst);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
if (IS_ERR(ir->rst))
|
||||
return PTR_ERR(ir->rst);
|
||||
ret = reset_control_deassert(ir->rst);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = clk_set_rate(ir->clk, SUNXI_IR_BASE_CLK);
|
||||
if (ret) {
|
||||
@ -291,8 +286,7 @@ exit_clkdisable_clk:
|
||||
exit_clkdisable_apb_clk:
|
||||
clk_disable_unprepare(ir->apb_clk);
|
||||
exit_reset_assert:
|
||||
if (ir->rst)
|
||||
reset_control_assert(ir->rst);
|
||||
reset_control_assert(ir->rst);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -304,8 +298,7 @@ static int sunxi_ir_remove(struct platform_device *pdev)
|
||||
|
||||
clk_disable_unprepare(ir->clk);
|
||||
clk_disable_unprepare(ir->apb_clk);
|
||||
if (ir->rst)
|
||||
reset_control_assert(ir->rst);
|
||||
reset_control_assert(ir->rst);
|
||||
|
||||
spin_lock_irqsave(&ir->ir_lock, flags);
|
||||
/* disable IR IRQ */
|
||||
|
Loading…
Reference in New Issue
Block a user