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

Commit 323de9ef authored by Masahiro Yamada's avatar Masahiro Yamada Committed by Linus Walleij
Browse files

pinctrl: make pinctrl_register() return proper error code



Currently, pinctrl_register() just returns NULL on error, so the
callers can not know the exact reason of the failure.

Some of the pinctrl drivers return -EINVAL, some -ENODEV, and some
-ENOMEM on error of pinctrl_register(), although the error code
might be different from the real cause of the error.

This commit reworks pinctrl_register() to return the appropriate
error code and modifies all of the pinctrl drivers to use IS_ERR()
for the error checking and PTR_ERR() for getting the error code.

Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
Acked-by: default avatarPatrice Chotard <patrice.chotard@st.com>
Acked-by: default avatarThierry Reding <treding@nvidia.com>
Acked-by: default avatarHeiko Stuebner <heiko@sntech.de>
Tested-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
Acked-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
Acked-by: default avatarLee Jones <lee@kernel.org>
Acked-by: default avatarSören Brinkmann <soren.brinkmann@xilinx.com>
Acked-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: default avatarRay Jui <rjui@broadcom.com>
Acked-by: default avatarAntoine Tenart <antoine.tenart@free-electrons.com>
Acked-by: default avatarHongzhou Yang <hongzhou.yang@mediatek.com>
Acked-by: default avatarWei Chen <Wei.Chen@csr.com>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent e73ac02d
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1425,9 +1425,9 @@ static int __init bcm281xx_pinctrl_probe(struct platform_device *pdev)
	pctl = pinctrl_register(&bcm281xx_pinctrl_desc,
				&pdev->dev,
				pdata);
	if (!pctl) {
	if (IS_ERR(pctl)) {
		dev_err(&pdev->dev, "Failed to register pinctrl\n");
		return -ENODEV;
		return PTR_ERR(pctl);
	}

	platform_set_drvdata(pdev, pdata);
+2 −2
Original line number Diff line number Diff line
@@ -1036,9 +1036,9 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev)
	}

	pc->pctl_dev = pinctrl_register(&bcm2835_pinctrl_desc, dev, pc);
	if (!pc->pctl_dev) {
	if (IS_ERR(pc->pctl_dev)) {
		gpiochip_remove(&pc->gpio_chip);
		return -EINVAL;
		return PTR_ERR(pc->pctl_dev);
	}

	pc->gpio_range = bcm2835_pinctrl_gpio_range;
+2 −2
Original line number Diff line number Diff line
@@ -748,9 +748,9 @@ static int cygnus_gpio_register_pinconf(struct cygnus_gpio *chip)
	pctldesc->confops = &cygnus_pconf_ops;

	chip->pctl = pinctrl_register(pctldesc, chip->dev, chip);
	if (!chip->pctl) {
	if (IS_ERR(chip->pctl)) {
		dev_err(chip->dev, "unable to register pinctrl device\n");
		return -EINVAL;
		return PTR_ERR(chip->pctl);
	}

	return 0;
+2 −2
Original line number Diff line number Diff line
@@ -989,9 +989,9 @@ static int cygnus_pinmux_probe(struct platform_device *pdev)

	pinctrl->pctl = pinctrl_register(&cygnus_pinctrl_desc, &pdev->dev,
			pinctrl);
	if (!pinctrl->pctl) {
	if (IS_ERR(pinctrl->pctl)) {
		dev_err(&pdev->dev, "unable to register Cygnus IOMUX pinctrl\n");
		return -EINVAL;
		return PTR_ERR(pinctrl->pctl);
	}

	return 0;
+2 −2
Original line number Diff line number Diff line
@@ -320,9 +320,9 @@ int berlin_pinctrl_probe(struct platform_device *pdev,
	}

	pctrl->pctrl_dev = pinctrl_register(&berlin_pctrl_desc, dev, pctrl);
	if (!pctrl->pctrl_dev) {
	if (IS_ERR(pctrl->pctrl_dev)) {
		dev_err(dev, "failed to register pinctrl driver\n");
		return -EINVAL;
		return PTR_ERR(pctrl->pctrl_dev);
	}

	return 0;
Loading