Commit 7ad250e1 authored by Zhang Zekun's avatar Zhang Zekun Committed by Chen-Yu Tsai
Browse files

bus: sunxi-rsb: Simplify code with dev_err_probe()



Use dev_err_probe() directly in the driver probe phase. This can
simplify the code a bit.

Signed-off-by: default avatarZhang Zekun <zhangzekun11@huawei.com>
Link: https://lore.kernel.org/r/20240905114134.80310-1-zhangzekun11@huawei.com


Signed-off-by: default avatarChen-Yu Tsai <wens@csie.org>
parent 8400291e
Loading
Loading
Loading
Loading
+13 −21
Original line number Diff line number Diff line
@@ -751,12 +751,10 @@ static int sunxi_rsb_probe(struct platform_device *pdev)
	int irq, ret;

	of_property_read_u32(np, "clock-frequency", &clk_freq);
	if (clk_freq > RSB_MAX_FREQ) {
		dev_err(dev,
	if (clk_freq > RSB_MAX_FREQ)
		return dev_err_probe(dev, -EINVAL,
				     "clock-frequency (%u Hz) is too high (max = 20MHz)\n",
				     clk_freq);
		return -EINVAL;
	}

	rsb = devm_kzalloc(dev, sizeof(*rsb), GFP_KERNEL);
	if (!rsb)
@@ -774,28 +772,22 @@ static int sunxi_rsb_probe(struct platform_device *pdev)
		return irq;

	rsb->clk = devm_clk_get(dev, NULL);
	if (IS_ERR(rsb->clk)) {
		ret = PTR_ERR(rsb->clk);
		dev_err(dev, "failed to retrieve clk: %d\n", ret);
		return ret;
	}
	if (IS_ERR(rsb->clk))
		return dev_err_probe(dev, PTR_ERR(rsb->clk),
				     "failed to retrieve clk\n");

	rsb->rstc = devm_reset_control_get(dev, NULL);
	if (IS_ERR(rsb->rstc)) {
		ret = PTR_ERR(rsb->rstc);
		dev_err(dev, "failed to retrieve reset controller: %d\n", ret);
		return ret;
	}
	if (IS_ERR(rsb->rstc))
		return dev_err_probe(dev, PTR_ERR(rsb->rstc),
				     "failed to retrieve reset controller\n");

	init_completion(&rsb->complete);
	mutex_init(&rsb->lock);

	ret = devm_request_irq(dev, irq, sunxi_rsb_irq, 0, RSB_CTRL_NAME, rsb);
	if (ret) {
		dev_err(dev, "can't register interrupt handler irq %d: %d\n",
			irq, ret);
		return ret;
	}
	if (ret)
		return dev_err_probe(dev, ret,
				     "can't register interrupt handler irq %d\n", irq);

	ret = sunxi_rsb_hw_init(rsb);
	if (ret)