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

Commit a0682a31 authored by Jingoo Han's avatar Jingoo Han Committed by Wolfram Sang
Browse files

i2c: gpio: Use devm_gpio_request()



Use devm_gpio_request() to make cleanup paths simpler.

Signed-off-by: default avatarJingoo Han <jg1.han@samsung.com>
Reviewed-by: default avatarVioleta Menendez <violeta.menendez@codethink.co.uk>
Reviewed-by: default avatarIan Molton <ian.molton@codethink.co.uk>
Tested-by: default avatarVioleta Menendez <violeta.menendez@codethink.co.uk>
Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
parent fa96faaa
Loading
Loading
Loading
Loading
+7 −18
Original line number Diff line number Diff line
@@ -147,24 +147,22 @@ static int i2c_gpio_probe(struct platform_device *pdev)
		scl_pin = pdata->scl_pin;
	}

	ret = gpio_request(sda_pin, "sda");
	ret = devm_gpio_request(&pdev->dev, sda_pin, "sda");
	if (ret) {
		if (ret == -EINVAL)
			ret = -EPROBE_DEFER;	/* Try again later */
		goto err_request_sda;
		return ret;
	}
	ret = gpio_request(scl_pin, "scl");
	ret = devm_gpio_request(&pdev->dev, scl_pin, "scl");
	if (ret) {
		if (ret == -EINVAL)
			ret = -EPROBE_DEFER;	/* Try again later */
		goto err_request_scl;
		return ret;
	}

	priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL);
	if (!priv) {
		ret = -ENOMEM;
		goto err_add_bus;
	}
	if (!priv)
		return -ENOMEM;
	adap = &priv->adap;
	bit_data = &priv->bit_data;
	pdata = &priv->pdata;
@@ -225,7 +223,7 @@ static int i2c_gpio_probe(struct platform_device *pdev)
	adap->nr = pdev->id;
	ret = i2c_bit_add_numbered_bus(adap);
	if (ret)
		goto err_add_bus;
		return ret;

	platform_set_drvdata(pdev, priv);

@@ -235,13 +233,6 @@ static int i2c_gpio_probe(struct platform_device *pdev)
		 ? ", no clock stretching" : "");

	return 0;

err_add_bus:
	gpio_free(scl_pin);
err_request_scl:
	gpio_free(sda_pin);
err_request_sda:
	return ret;
}

static int i2c_gpio_remove(struct platform_device *pdev)
@@ -255,8 +246,6 @@ static int i2c_gpio_remove(struct platform_device *pdev)
	pdata = &priv->pdata;

	i2c_del_adapter(adap);
	gpio_free(pdata->scl_pin);
	gpio_free(pdata->sda_pin);

	return 0;
}