Commit 1f34e3de authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Greg Kroah-Hartman
Browse files

serial: 8250_bcm7271: Use devm_clk_get_optional_enabled()

parent 8e3c8252
Loading
Loading
Loading
Loading
+9 −15
Original line number Diff line number Diff line
@@ -1015,26 +1015,23 @@ static int brcmuart_probe(struct platform_device *pdev)
	of_property_read_u32(np, "clock-frequency", &clk_rate);

	/* See if a Baud clock has been specified */
	baud_mux_clk = devm_clk_get(dev, "sw_baud");
	if (IS_ERR(baud_mux_clk)) {
		if (PTR_ERR(baud_mux_clk) == -EPROBE_DEFER) {
			ret = -EPROBE_DEFER;
			goto release_dma;
		}
		dev_dbg(dev, "BAUD MUX clock not specified\n");
	} else {
		dev_dbg(dev, "BAUD MUX clock found\n");
		ret = clk_prepare_enable(baud_mux_clk);
	baud_mux_clk = devm_clk_get_optional_enabled(dev, "sw_baud");
	ret = PTR_ERR_OR_ZERO(baud_mux_clk);
	if (ret)
		goto release_dma;
	if (baud_mux_clk) {
		dev_dbg(dev, "BAUD MUX clock found\n");

		priv->baud_mux_clk = baud_mux_clk;
		init_real_clk_rates(dev, priv);
		clk_rate = priv->default_mux_rate;
	} else {
		dev_dbg(dev, "BAUD MUX clock not specified\n");
	}

	if (clk_rate == 0) {
		ret = dev_err_probe(dev, -EINVAL, "clock-frequency or clk not defined\n");
		goto err_clk_disable;
		goto release_dma;
	}

	dev_dbg(dev, "DMA is %senabled\n", priv->dma_enabled ? "" : "not ");
@@ -1118,8 +1115,6 @@ static int brcmuart_probe(struct platform_device *pdev)
	serial8250_unregister_port(priv->line);
err:
	brcmuart_free_bufs(dev, priv);
err_clk_disable:
	clk_disable_unprepare(baud_mux_clk);
release_dma:
	if (priv->dma_enabled)
		brcmuart_arbitration(priv, 0);
@@ -1134,7 +1129,6 @@ static int brcmuart_remove(struct platform_device *pdev)
	hrtimer_cancel(&priv->hrt);
	serial8250_unregister_port(priv->line);
	brcmuart_free_bufs(&pdev->dev, priv);
	clk_disable_unprepare(priv->baud_mux_clk);
	if (priv->dma_enabled)
		brcmuart_arbitration(priv, 0);
	return 0;