diff --git a/drivers/iio/dac/rockchip-flexbus-dac.c b/drivers/iio/dac/rockchip-flexbus-dac.c index 6e703d2d4f97..c1f1c89da848 100644 --- a/drivers/iio/dac/rockchip-flexbus-dac.c +++ b/drivers/iio/dac/rockchip-flexbus-dac.c @@ -359,11 +359,10 @@ static int rockchip_flexbus_dac_probe(struct platform_device *pdev) platform_set_drvdata(pdev, indio_dev); rkfb_dac->dev = &pdev->dev; rkfb_dac->rkfb = rkfb; - rockchip_flexbus_set_fb0(rkfb, rkfb_dac, rockchip_flexbus_dac_isr); ret = rockchip_flexbus_dac_parse_dt(rkfb_dac); if (ret) - goto err_fb0; + return ret; mutex_init(&rkfb_dac->lock); init_completion(&rkfb_dac->completion); @@ -406,12 +405,12 @@ static int rockchip_flexbus_dac_probe(struct platform_device *pdev) if (ret) goto err_mutex_destroy; + rockchip_flexbus_set_fb0(rkfb, rkfb_dac, rockchip_flexbus_dac_isr); + return ret; err_mutex_destroy: mutex_destroy(&rkfb_dac->lock); -err_fb0: - rockchip_flexbus_set_fb0(rkfb, NULL, NULL); return ret; } @@ -422,8 +421,8 @@ static int rockchip_flexbus_dac_remove(struct platform_device *pdev) struct rockchip_flexbus_dac *rkfb_dac = iio_priv(indio_dev); struct rockchip_flexbus *rkfb = rkfb_dac->rkfb; - mutex_destroy(&rkfb_dac->lock); rockchip_flexbus_set_fb0(rkfb, NULL, NULL); + mutex_destroy(&rkfb_dac->lock); return 0; }