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

Commit 5132c8af authored by Baolin Wang's avatar Baolin Wang Committed by Greg Kroah-Hartman
Browse files

UPSTREAM: Revert "gpio: eic-sprd: Use devm_platform_ioremap_resource()"



This reverts commit 0f5cb8cc.

This commit will cause below warnings, since our EIC controller can support
differnt banks on different Spreadtrum SoCs, and each bank has its own base
address, we will get invalid resource warning if the bank number is less than
SPRD_EIC_MAX_BANK on some Spreadtrum SoCs.

So we should not use devm_platform_ioremap_resource() here to remove the
warnings.

[    1.118508] sprd-eic 40210000.gpio: invalid resource
[    1.118535] sprd-eic 40210000.gpio: invalid resource
[    1.119034] sprd-eic 40210080.gpio: invalid resource
[    1.119055] sprd-eic 40210080.gpio: invalid resource
[    1.119462] sprd-eic 402100a0.gpio: invalid resource
[    1.119482] sprd-eic 402100a0.gpio: invalid resource
[    1.119893] sprd-eic 402100c0.gpio: invalid resource
[    1.119913] sprd-eic 402100c0.gpio: invalid resource

bug: 153500755
Change-Id: Iee84dfa1c7720cf53a13db8611650291f7e23b92
Signed-off-by: default avatarBaolin Wang <baolin.wang7@gmail.com>
Link: https://lore.kernel.org/r/8d3579f4b49bb675dc805035960f24852898be28.1585734060.git.baolin.wang7@gmail.com


Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
(cherry picked from commit 4ed7d7dd4890bb8120a3e77c16191a695fdfcc5a)
parent 61130ace
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -569,6 +569,7 @@ static int sprd_eic_probe(struct platform_device *pdev)
	const struct sprd_eic_variant_data *pdata;
	struct gpio_irq_chip *irq;
	struct sprd_eic *sprd_eic;
	struct resource *res;
	int ret, i;

	pdata = of_device_get_match_data(&pdev->dev);
@@ -595,9 +596,13 @@ static int sprd_eic_probe(struct platform_device *pdev)
		 * have one bank EIC, thus base[1] and base[2] can be
		 * optional.
		 */
		sprd_eic->base[i] = devm_platform_ioremap_resource(pdev, i);
		if (IS_ERR(sprd_eic->base[i]))
		res = platform_get_resource(pdev, IORESOURCE_MEM, i);
		if (!res)
			continue;

		sprd_eic->base[i] = devm_ioremap_resource(&pdev->dev, res);
		if (IS_ERR(sprd_eic->base[i]))
			return PTR_ERR(sprd_eic->base[i]);
	}

	sprd_eic->chip.label = sprd_eic_label_name[sprd_eic->type];