Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b3517d5d authored by Libo Chen's avatar Libo Chen Committed by Greg Kroah-Hartman
Browse files

usb: ohci: fix goto wrong tag in err case



fix goto wrong tag in usb_hcd_nxp_probe

Signed-off-by: default avatarLibo Chen <libo.chen@huawei.com>
Acked-by: default avatarAlan Stern <stern@rowland.harvard.edu>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 72d9c8b6
Loading
Loading
Loading
Loading
+23 −23
Original line number Diff line number Diff line
@@ -223,8 +223,7 @@ static int usb_hcd_nxp_probe(struct platform_device *pdev)

	isp1301_i2c_client = isp1301_get_client(isp1301_node);
	if (!isp1301_i2c_client) {
		ret = -EPROBE_DEFER;
		goto out;
		return -EPROBE_DEFER;
	}

	pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32);
@@ -234,7 +233,7 @@ static int usb_hcd_nxp_probe(struct platform_device *pdev)
	if (usb_disabled()) {
		dev_err(&pdev->dev, "USB is disabled\n");
		ret = -ENODEV;
		goto out;
		goto fail_disable;
	}

	/* Enable AHB slave USB clock, needed for further USB clock control */
@@ -245,19 +244,19 @@ static int usb_hcd_nxp_probe(struct platform_device *pdev)
	if (IS_ERR(usb_pll_clk)) {
		dev_err(&pdev->dev, "failed to acquire USB PLL\n");
		ret = PTR_ERR(usb_pll_clk);
		goto out1;
		goto fail_pll;
	}

	ret = clk_enable(usb_pll_clk);
	if (ret < 0) {
		dev_err(&pdev->dev, "failed to start USB PLL\n");
		goto out2;
		goto fail_pllen;
	}

	ret = clk_set_rate(usb_pll_clk, 48000);
	if (ret < 0) {
		dev_err(&pdev->dev, "failed to set USB clock rate\n");
		goto out3;
		goto fail_rate;
	}

	/* Enable USB device clock */
@@ -265,13 +264,13 @@ static int usb_hcd_nxp_probe(struct platform_device *pdev)
	if (IS_ERR(usb_dev_clk)) {
		dev_err(&pdev->dev, "failed to acquire USB DEV Clock\n");
		ret = PTR_ERR(usb_dev_clk);
		goto out4;
		goto fail_dev;
	}

	ret = clk_enable(usb_dev_clk);
	if (ret < 0) {
		dev_err(&pdev->dev, "failed to start USB DEV Clock\n");
		goto out5;
		goto fail_deven;
	}

	/* Enable USB otg clocks */
@@ -279,7 +278,7 @@ static int usb_hcd_nxp_probe(struct platform_device *pdev)
	if (IS_ERR(usb_otg_clk)) {
		dev_err(&pdev->dev, "failed to acquire USB DEV Clock\n");
		ret = PTR_ERR(usb_otg_clk);
		goto out6;
		goto fail_otg;
	}

	__raw_writel(__raw_readl(USB_CTRL) | USB_HOST_NEED_CLK_EN, USB_CTRL);
@@ -287,7 +286,7 @@ static int usb_hcd_nxp_probe(struct platform_device *pdev)
	ret = clk_enable(usb_otg_clk);
	if (ret < 0) {
		dev_err(&pdev->dev, "failed to start USB DEV Clock\n");
		goto out7;
		goto fail_otgen;
	}

	isp1301_configure();
@@ -296,20 +295,20 @@ static int usb_hcd_nxp_probe(struct platform_device *pdev)
	if (!hcd) {
		dev_err(&pdev->dev, "Failed to allocate HC buffer\n");
		ret = -ENOMEM;
		goto out8;
		goto fail_hcd;
	}

	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
	if (!res) {
		dev_err(&pdev->dev, "Failed to get MEM resource\n");
		ret =  -ENOMEM;
		goto out8;
		goto fail_resource;
	}

	hcd->regs = devm_ioremap_resource(&pdev->dev, res);
	if (IS_ERR(hcd->regs)) {
		ret = PTR_ERR(hcd->regs);
		goto out8;
		goto fail_resource;
	}
	hcd->rsrc_start = res->start;
	hcd->rsrc_len = resource_size(res);
@@ -317,7 +316,7 @@ static int usb_hcd_nxp_probe(struct platform_device *pdev)
	irq = platform_get_irq(pdev, 0);
	if (irq < 0) {
		ret = -ENXIO;
		goto out8;
		goto fail_resource;
	}

	nxp_start_hc();
@@ -331,23 +330,24 @@ static int usb_hcd_nxp_probe(struct platform_device *pdev)
		return ret;

	nxp_stop_hc();
out8:
fail_resource:
	usb_put_hcd(hcd);
out7:
fail_hcd:
	clk_disable(usb_otg_clk);
out6:
fail_otgen:
	clk_put(usb_otg_clk);
out5:
fail_otg:
	clk_disable(usb_dev_clk);
out4:
fail_deven:
	clk_put(usb_dev_clk);
out3:
fail_dev:
fail_rate:
	clk_disable(usb_pll_clk);
out2:
fail_pllen:
	clk_put(usb_pll_clk);
out1:
fail_pll:
fail_disable:
	isp1301_i2c_client = NULL;
out:
	return ret;
}