Commit 40d3f622 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull pin control fixes from Linus Walleij:
 "All of these are driver fixes except a memory leak in the
  pinconf_generic_parse_dt_config() helper which is the most
  important fix.

   - Rename and fix up the Intel Equilibrium immutable interrupt chip

   - Handle the Qualcomm QCS615 dual edge GPIO IRQ by adding the right
     flag

   - Fix a memory leak in the widely used pinconf_generic_parse_dt_config()
     and a more local leak in aml_dt_node_to_map_pinmux()

   - Fix double put in the Cirrus cs42l43_pin_probe()

   - Staticize amdisp_pinctrl_ops, Qualcomm SDM660 groups and functions

   - Unexport CIX sky1_pinctrl_pm_ops

   - Fix configuration of deferred pin in the Rockchip driver

   - Implement .get_direction() in the Sunxi driver squelching a dmesg
     warning message

   - Fix a readout of the last bank of registers in the Cypress CY8C95x0
     driver"

* tag 'pinctrl-v7.0-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
  pinctrl: cy8c95x0: Don't miss reading the last bank registers
  pinctrl: sunxi: Implement gpiochip::get_direction()
  pinctrl: rockchip: Fix configuring a deferred pin
  pinctrl: cirrus: cs42l43: Fix double-put in cs42l43_pin_probe()
  pinctrl: meson: amlogic-a4: Fix device node reference leak in aml_dt_node_to_map_pinmux()
  pinctrl: qcom: sdm660-lpass-lpi: Make groups and functions variables static
  pinctrl: cix: sky1: Unexport sky1_pinctrl_pm_ops
  pinctrl: amdisp: Make amdisp_pinctrl_ops variable static
  pinctrl: pinconf-generic: Fix memory leak in pinconf_generic_parse_dt_config()
  pinctrl: qcom: qcs615: Add missing dual edge GPIO IRQ errata flag
  pinctrl: equilibrium: fix warning trace on load
  pinctrl: equilibrium: rename irq_chip function callbacks
parents 0031c068 b6c3af46
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -574,10 +574,9 @@ static int cs42l43_pin_probe(struct platform_device *pdev)
		if (child) {
			ret = devm_add_action_or_reset(&pdev->dev,
				cs42l43_fwnode_put, child);
			if (ret) {
				fwnode_handle_put(child);
			if (ret)
				return ret;
			}

			if (!child->dev)
				child->dev = priv->dev;
			fwnode = child;
+1 −2
Original line number Diff line number Diff line
@@ -522,11 +522,10 @@ static int __maybe_unused sky1_pinctrl_resume(struct device *dev)
	return pinctrl_force_default(spctl->pctl);
}

const struct dev_pm_ops sky1_pinctrl_pm_ops = {
static const struct dev_pm_ops sky1_pinctrl_pm_ops = {
	SET_LATE_SYSTEM_SLEEP_PM_OPS(sky1_pinctrl_suspend,
					sky1_pinctrl_resume)
};
EXPORT_SYMBOL_GPL(sky1_pinctrl_pm_ops);

static int sky1_pinctrl_probe(struct platform_device *pdev)
{
+1 −2
Original line number Diff line number Diff line
@@ -679,7 +679,6 @@ static int aml_dt_node_to_map_pinmux(struct pinctrl_dev *pctldev,
				     unsigned int *num_maps)
{
	struct device *dev = pctldev->dev;
	struct device_node *pnode;
	unsigned long *configs = NULL;
	unsigned int num_configs = 0;
	struct property *prop;
@@ -693,7 +692,7 @@ static int aml_dt_node_to_map_pinmux(struct pinctrl_dev *pctldev,
		return -ENOENT;
	}

	pnode = of_get_parent(np);
	struct device_node *pnode __free(device_node) = of_get_parent(np);
	if (!pnode) {
		dev_info(dev, "Missing function node\n");
		return -EINVAL;
+2 −2
Original line number Diff line number Diff line
@@ -351,13 +351,13 @@ int pinconf_generic_parse_dt_config(struct device_node *np,

	ret = parse_dt_cfg(np, dt_params, ARRAY_SIZE(dt_params), cfg, &ncfg);
	if (ret)
		return ret;
		goto out;
	if (pctldev && pctldev->desc->num_custom_params &&
		pctldev->desc->custom_params) {
		ret = parse_dt_cfg(np, pctldev->desc->custom_params,
				   pctldev->desc->num_custom_params, cfg, &ncfg);
		if (ret)
			return ret;
			goto out;
	}

	/* no configs found at all */
+1 −1
Original line number Diff line number Diff line
@@ -80,7 +80,7 @@ static int amdisp_get_group_pins(struct pinctrl_dev *pctldev,
	return 0;
}

const struct pinctrl_ops amdisp_pinctrl_ops = {
static const struct pinctrl_ops amdisp_pinctrl_ops = {
	.get_groups_count	= amdisp_get_groups_count,
	.get_group_name		= amdisp_get_group_name,
	.get_group_pins		= amdisp_get_group_pins,
Loading