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

Commit 357436af authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull pincontrol fixes from Linus Walleij:
 "These are some v4.4 pin control fixes:

   - Drop a redundant if-clause from Kconfig
   - Fix a missing of_node_put() memory leak in the Freescale i.MX
     driver
   - Fix 64bit compilation of the Qualcomm SSBI driver.
   - Fix a logic inversion in the Mediatek driver.
   - Fix a compilation error for the odd one off in the Super-H instance
     of the SH PFC driver"

* tag 'pinctrl-v4.4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
  pinctrl: sh-pfc: sh7734: Add missing cfg macro parameter to fix build
  pinctrl: mediatek: Add get_direction support.
  pinctrl: fix qcom ssbi drivers for 64-bit compilation
  pinctrl: imx1-core: add missing of_node_put
  pinctrl: remove redundant if conditional from Kconfig
parents 79e63f50 48111b79
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -5,8 +5,6 @@
config PINCTRL
	bool

if PINCTRL

menu "Pin controllers"
	depends on PINCTRL

@@ -274,5 +272,3 @@ config PINCTRL_TB10X
	select GPIOLIB

endmenu

endif
+6 −2
Original line number Diff line number Diff line
@@ -538,9 +538,11 @@ static int imx1_pinctrl_parse_functions(struct device_node *np,
		func->groups[i] = child->name;
		grp = &info->groups[grp_index++];
		ret = imx1_pinctrl_parse_groups(child, grp, info, i++);
		if (ret == -ENOMEM)
		if (ret == -ENOMEM) {
			of_node_put(child);
			return ret;
		}
	}

	return 0;
}
@@ -582,9 +584,11 @@ static int imx1_pinctrl_parse_dt(struct platform_device *pdev,

	for_each_child_of_node(np, child) {
		ret = imx1_pinctrl_parse_functions(child, info, ifunc++);
		if (ret == -ENOMEM)
		if (ret == -ENOMEM) {
			of_node_put(child);
			return -ENOMEM;
		}
	}

	return 0;
}
+4 −7
Original line number Diff line number Diff line
@@ -747,7 +747,7 @@ static int mtk_gpio_get_direction(struct gpio_chip *chip, unsigned offset)
	reg_addr =  mtk_get_port(pctl, offset) + pctl->devdata->dir_offset;
	bit = BIT(offset & 0xf);
	regmap_read(pctl->regmap1, reg_addr, &read_val);
	return !!(read_val & bit);
	return !(read_val & bit);
}

static int mtk_gpio_get(struct gpio_chip *chip, unsigned offset)
@@ -757,10 +757,6 @@ static int mtk_gpio_get(struct gpio_chip *chip, unsigned offset)
	unsigned int read_val = 0;
	struct mtk_pinctrl *pctl = dev_get_drvdata(chip->dev);

	if (mtk_gpio_get_direction(chip, offset))
		reg_addr = mtk_get_port(pctl, offset) +
			pctl->devdata->dout_offset;
	else
	reg_addr = mtk_get_port(pctl, offset) +
		pctl->devdata->din_offset;

@@ -997,6 +993,7 @@ static struct gpio_chip mtk_gpio_chip = {
	.owner			= THIS_MODULE,
	.request		= gpiochip_generic_request,
	.free			= gpiochip_generic_free,
	.get_direction		= mtk_gpio_get_direction,
	.direction_input	= mtk_gpio_direction_input,
	.direction_output	= mtk_gpio_direction_output,
	.get			= mtk_gpio_get,
+1 −1
Original line number Diff line number Diff line
@@ -672,7 +672,7 @@ static int pm8xxx_gpio_probe(struct platform_device *pdev)
		return -ENOMEM;

	pctrl->dev = &pdev->dev;
	pctrl->npins = (unsigned)of_device_get_match_data(&pdev->dev);
	pctrl->npins = (unsigned long)of_device_get_match_data(&pdev->dev);

	pctrl->regmap = dev_get_regmap(pdev->dev.parent, NULL);
	if (!pctrl->regmap) {
+1 −1
Original line number Diff line number Diff line
@@ -763,7 +763,7 @@ static int pm8xxx_mpp_probe(struct platform_device *pdev)
		return -ENOMEM;

	pctrl->dev = &pdev->dev;
	pctrl->npins = (unsigned)of_device_get_match_data(&pdev->dev);
	pctrl->npins = (unsigned long)of_device_get_match_data(&pdev->dev);

	pctrl->regmap = dev_get_regmap(pdev->dev.parent, NULL);
	if (!pctrl->regmap) {
Loading