Commit 462938cd authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'pinctrl-v5.14-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl

Pull pin control fixes from Linus Walleij:
 "An assortment of pin control fixes of varying importance, the most
  important ones affecting Intel and AMD laptops turned up the recent
  few days so it's time to push this to your tree.

   - Fix the Kconfig dependency for Qualcomm SM8350 pin controller

   - Fix pin biasing fallback behaviour on the Mediatek pin controller

   - Fix the GPIO numbering scheme for Intel Tiger Lake-H to correspond
     to the products that are now actually out on the market

   - Fix a pin control function itemization in the Sunxi driver
     out-of-bounds access bug

   - Fix disable clocking for the RISC-V K210 pin controller on the
     errorpath

   - Fix a system shutdown bug affecting AMD Ryzen-based laptops, the
     system would not suspend but just bounce back up"

* tag 'pinctrl-v5.14-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
  pinctrl: amd: Fix an issue with shutdown when system set to s0ix
  pinctrl: k210: Fix k210_fpioa_probe()
  pinctrl: sunxi: Don't underestimate number of functions
  pinctrl: tigerlake: Fix GPIO mapping for newer version of software
  pinctrl: mediatek: Fix fallback behavior for bias_set_combo
  pinctrl: qcom: fix GPIOLIB dependencies
parents f8e6dfc6 c4b68e51
...@@ -701,32 +701,32 @@ static const struct pinctrl_pin_desc tglh_pins[] = { ...@@ -701,32 +701,32 @@ static const struct pinctrl_pin_desc tglh_pins[] = {
static const struct intel_padgroup tglh_community0_gpps[] = { static const struct intel_padgroup tglh_community0_gpps[] = {
TGL_GPP(0, 0, 24, 0), /* GPP_A */ TGL_GPP(0, 0, 24, 0), /* GPP_A */
TGL_GPP(1, 25, 44, 128), /* GPP_R */ TGL_GPP(1, 25, 44, 32), /* GPP_R */
TGL_GPP(2, 45, 70, 32), /* GPP_B */ TGL_GPP(2, 45, 70, 64), /* GPP_B */
TGL_GPP(3, 71, 78, INTEL_GPIO_BASE_NOMAP), /* vGPIO_0 */ TGL_GPP(3, 71, 78, 96), /* vGPIO_0 */
}; };
static const struct intel_padgroup tglh_community1_gpps[] = { static const struct intel_padgroup tglh_community1_gpps[] = {
TGL_GPP(0, 79, 104, 96), /* GPP_D */ TGL_GPP(0, 79, 104, 128), /* GPP_D */
TGL_GPP(1, 105, 128, 64), /* GPP_C */ TGL_GPP(1, 105, 128, 160), /* GPP_C */
TGL_GPP(2, 129, 136, 160), /* GPP_S */ TGL_GPP(2, 129, 136, 192), /* GPP_S */
TGL_GPP(3, 137, 153, 192), /* GPP_G */ TGL_GPP(3, 137, 153, 224), /* GPP_G */
TGL_GPP(4, 154, 180, 224), /* vGPIO */ TGL_GPP(4, 154, 180, 256), /* vGPIO */
}; };
static const struct intel_padgroup tglh_community3_gpps[] = { static const struct intel_padgroup tglh_community3_gpps[] = {
TGL_GPP(0, 181, 193, 256), /* GPP_E */ TGL_GPP(0, 181, 193, 288), /* GPP_E */
TGL_GPP(1, 194, 217, 288), /* GPP_F */ TGL_GPP(1, 194, 217, 320), /* GPP_F */
}; };
static const struct intel_padgroup tglh_community4_gpps[] = { static const struct intel_padgroup tglh_community4_gpps[] = {
TGL_GPP(0, 218, 241, 320), /* GPP_H */ TGL_GPP(0, 218, 241, 352), /* GPP_H */
TGL_GPP(1, 242, 251, 384), /* GPP_J */ TGL_GPP(1, 242, 251, 384), /* GPP_J */
TGL_GPP(2, 252, 266, 352), /* GPP_K */ TGL_GPP(2, 252, 266, 416), /* GPP_K */
}; };
static const struct intel_padgroup tglh_community5_gpps[] = { static const struct intel_padgroup tglh_community5_gpps[] = {
TGL_GPP(0, 267, 281, 416), /* GPP_I */ TGL_GPP(0, 267, 281, 448), /* GPP_I */
TGL_GPP(1, 282, 290, INTEL_GPIO_BASE_NOMAP), /* JTAG */ TGL_GPP(1, 282, 290, INTEL_GPIO_BASE_NOMAP), /* JTAG */
}; };
......
...@@ -925,12 +925,10 @@ int mtk_pinconf_adv_pull_set(struct mtk_pinctrl *hw, ...@@ -925,12 +925,10 @@ int mtk_pinconf_adv_pull_set(struct mtk_pinctrl *hw,
err = hw->soc->bias_set(hw, desc, pullup); err = hw->soc->bias_set(hw, desc, pullup);
if (err) if (err)
return err; return err;
} else if (hw->soc->bias_set_combo) {
err = hw->soc->bias_set_combo(hw, desc, pullup, arg);
if (err)
return err;
} else { } else {
return -ENOTSUPP; err = mtk_pinconf_bias_set_rev1(hw, desc, pullup);
if (err)
err = mtk_pinconf_bias_set(hw, desc, pullup);
} }
} }
......
...@@ -444,8 +444,7 @@ static int amd_gpio_irq_set_wake(struct irq_data *d, unsigned int on) ...@@ -444,8 +444,7 @@ static int amd_gpio_irq_set_wake(struct irq_data *d, unsigned int on)
unsigned long flags; unsigned long flags;
struct gpio_chip *gc = irq_data_get_irq_chip_data(d); struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
struct amd_gpio *gpio_dev = gpiochip_get_data(gc); struct amd_gpio *gpio_dev = gpiochip_get_data(gc);
u32 wake_mask = BIT(WAKE_CNTRL_OFF_S0I3) | BIT(WAKE_CNTRL_OFF_S3) | u32 wake_mask = BIT(WAKE_CNTRL_OFF_S0I3) | BIT(WAKE_CNTRL_OFF_S3);
BIT(WAKE_CNTRL_OFF_S4);
raw_spin_lock_irqsave(&gpio_dev->lock, flags); raw_spin_lock_irqsave(&gpio_dev->lock, flags);
pin_reg = readl(gpio_dev->base + (d->hwirq)*4); pin_reg = readl(gpio_dev->base + (d->hwirq)*4);
......
...@@ -950,23 +950,37 @@ static int k210_fpioa_probe(struct platform_device *pdev) ...@@ -950,23 +950,37 @@ static int k210_fpioa_probe(struct platform_device *pdev)
return ret; return ret;
pdata->pclk = devm_clk_get_optional(dev, "pclk"); pdata->pclk = devm_clk_get_optional(dev, "pclk");
if (!IS_ERR(pdata->pclk)) if (!IS_ERR(pdata->pclk)) {
clk_prepare_enable(pdata->pclk); ret = clk_prepare_enable(pdata->pclk);
if (ret)
goto disable_clk;
}
pdata->sysctl_map = pdata->sysctl_map =
syscon_regmap_lookup_by_phandle_args(np, syscon_regmap_lookup_by_phandle_args(np,
"canaan,k210-sysctl-power", "canaan,k210-sysctl-power",
1, &pdata->power_offset); 1, &pdata->power_offset);
if (IS_ERR(pdata->sysctl_map)) if (IS_ERR(pdata->sysctl_map)) {
return PTR_ERR(pdata->sysctl_map); ret = PTR_ERR(pdata->sysctl_map);
goto disable_pclk;
}
k210_fpioa_init_ties(pdata); k210_fpioa_init_ties(pdata);
pdata->pctl = pinctrl_register(&k210_pinctrl_desc, dev, (void *)pdata); pdata->pctl = pinctrl_register(&k210_pinctrl_desc, dev, (void *)pdata);
if (IS_ERR(pdata->pctl)) if (IS_ERR(pdata->pctl)) {
return PTR_ERR(pdata->pctl); ret = PTR_ERR(pdata->pctl);
goto disable_pclk;
}
return 0; return 0;
disable_pclk:
clk_disable_unprepare(pdata->pclk);
disable_clk:
clk_disable_unprepare(pdata->clk);
return ret;
} }
static const struct of_device_id k210_fpioa_dt_ids[] = { static const struct of_device_id k210_fpioa_dt_ids[] = {
......
...@@ -13,7 +13,7 @@ config PINCTRL_MSM ...@@ -13,7 +13,7 @@ config PINCTRL_MSM
config PINCTRL_APQ8064 config PINCTRL_APQ8064
tristate "Qualcomm APQ8064 pin controller driver" tristate "Qualcomm APQ8064 pin controller driver"
depends on GPIOLIB && OF depends on OF
depends on PINCTRL_MSM depends on PINCTRL_MSM
help help
This is the pinctrl, pinmux, pinconf and gpiolib driver for the This is the pinctrl, pinmux, pinconf and gpiolib driver for the
...@@ -21,7 +21,7 @@ config PINCTRL_APQ8064 ...@@ -21,7 +21,7 @@ config PINCTRL_APQ8064
config PINCTRL_APQ8084 config PINCTRL_APQ8084
tristate "Qualcomm APQ8084 pin controller driver" tristate "Qualcomm APQ8084 pin controller driver"
depends on GPIOLIB && OF depends on OF
depends on PINCTRL_MSM depends on PINCTRL_MSM
help help
This is the pinctrl, pinmux, pinconf and gpiolib driver for the This is the pinctrl, pinmux, pinconf and gpiolib driver for the
...@@ -29,7 +29,7 @@ config PINCTRL_APQ8084 ...@@ -29,7 +29,7 @@ config PINCTRL_APQ8084
config PINCTRL_IPQ4019 config PINCTRL_IPQ4019
tristate "Qualcomm IPQ4019 pin controller driver" tristate "Qualcomm IPQ4019 pin controller driver"
depends on GPIOLIB && OF depends on OF
depends on PINCTRL_MSM depends on PINCTRL_MSM
help help
This is the pinctrl, pinmux, pinconf and gpiolib driver for the This is the pinctrl, pinmux, pinconf and gpiolib driver for the
...@@ -37,7 +37,7 @@ config PINCTRL_IPQ4019 ...@@ -37,7 +37,7 @@ config PINCTRL_IPQ4019
config PINCTRL_IPQ8064 config PINCTRL_IPQ8064
tristate "Qualcomm IPQ8064 pin controller driver" tristate "Qualcomm IPQ8064 pin controller driver"
depends on GPIOLIB && OF depends on OF
depends on PINCTRL_MSM depends on PINCTRL_MSM
help help
This is the pinctrl, pinmux, pinconf and gpiolib driver for the This is the pinctrl, pinmux, pinconf and gpiolib driver for the
...@@ -45,7 +45,7 @@ config PINCTRL_IPQ8064 ...@@ -45,7 +45,7 @@ config PINCTRL_IPQ8064
config PINCTRL_IPQ8074 config PINCTRL_IPQ8074
tristate "Qualcomm Technologies, Inc. IPQ8074 pin controller driver" tristate "Qualcomm Technologies, Inc. IPQ8074 pin controller driver"
depends on GPIOLIB && OF depends on OF
depends on PINCTRL_MSM depends on PINCTRL_MSM
help help
This is the pinctrl, pinmux, pinconf and gpiolib driver for This is the pinctrl, pinmux, pinconf and gpiolib driver for
...@@ -55,7 +55,7 @@ config PINCTRL_IPQ8074 ...@@ -55,7 +55,7 @@ config PINCTRL_IPQ8074
config PINCTRL_IPQ6018 config PINCTRL_IPQ6018
tristate "Qualcomm Technologies, Inc. IPQ6018 pin controller driver" tristate "Qualcomm Technologies, Inc. IPQ6018 pin controller driver"
depends on GPIOLIB && OF depends on OF
depends on PINCTRL_MSM depends on PINCTRL_MSM
help help
This is the pinctrl, pinmux, pinconf and gpiolib driver for This is the pinctrl, pinmux, pinconf and gpiolib driver for
...@@ -65,7 +65,7 @@ config PINCTRL_IPQ6018 ...@@ -65,7 +65,7 @@ config PINCTRL_IPQ6018
config PINCTRL_MSM8226 config PINCTRL_MSM8226
tristate "Qualcomm 8226 pin controller driver" tristate "Qualcomm 8226 pin controller driver"
depends on GPIOLIB && OF depends on OF
depends on PINCTRL_MSM depends on PINCTRL_MSM
help help
This is the pinctrl, pinmux, pinconf and gpiolib driver for the This is the pinctrl, pinmux, pinconf and gpiolib driver for the
...@@ -74,7 +74,7 @@ config PINCTRL_MSM8226 ...@@ -74,7 +74,7 @@ config PINCTRL_MSM8226
config PINCTRL_MSM8660 config PINCTRL_MSM8660
tristate "Qualcomm 8660 pin controller driver" tristate "Qualcomm 8660 pin controller driver"
depends on GPIOLIB && OF depends on OF
depends on PINCTRL_MSM depends on PINCTRL_MSM
help help
This is the pinctrl, pinmux, pinconf and gpiolib driver for the This is the pinctrl, pinmux, pinconf and gpiolib driver for the
...@@ -82,7 +82,7 @@ config PINCTRL_MSM8660 ...@@ -82,7 +82,7 @@ config PINCTRL_MSM8660
config PINCTRL_MSM8960 config PINCTRL_MSM8960
tristate "Qualcomm 8960 pin controller driver" tristate "Qualcomm 8960 pin controller driver"
depends on GPIOLIB && OF depends on OF
depends on PINCTRL_MSM depends on PINCTRL_MSM
help help
This is the pinctrl, pinmux, pinconf and gpiolib driver for the This is the pinctrl, pinmux, pinconf and gpiolib driver for the
...@@ -90,7 +90,7 @@ config PINCTRL_MSM8960 ...@@ -90,7 +90,7 @@ config PINCTRL_MSM8960
config PINCTRL_MDM9615 config PINCTRL_MDM9615
tristate "Qualcomm 9615 pin controller driver" tristate "Qualcomm 9615 pin controller driver"
depends on GPIOLIB && OF depends on OF
depends on PINCTRL_MSM depends on PINCTRL_MSM
help help
This is the pinctrl, pinmux, pinconf and gpiolib driver for the This is the pinctrl, pinmux, pinconf and gpiolib driver for the
...@@ -98,7 +98,7 @@ config PINCTRL_MDM9615 ...@@ -98,7 +98,7 @@ config PINCTRL_MDM9615
config PINCTRL_MSM8X74 config PINCTRL_MSM8X74
tristate "Qualcomm 8x74 pin controller driver" tristate "Qualcomm 8x74 pin controller driver"
depends on GPIOLIB && OF depends on OF
depends on PINCTRL_MSM depends on PINCTRL_MSM
help help
This is the pinctrl, pinmux, pinconf and gpiolib driver for the This is the pinctrl, pinmux, pinconf and gpiolib driver for the
...@@ -106,7 +106,7 @@ config PINCTRL_MSM8X74 ...@@ -106,7 +106,7 @@ config PINCTRL_MSM8X74
config PINCTRL_MSM8916 config PINCTRL_MSM8916
tristate "Qualcomm 8916 pin controller driver" tristate "Qualcomm 8916 pin controller driver"
depends on GPIOLIB && OF depends on OF
depends on PINCTRL_MSM depends on PINCTRL_MSM
help help
This is the pinctrl, pinmux, pinconf and gpiolib driver for the This is the pinctrl, pinmux, pinconf and gpiolib driver for the
...@@ -114,7 +114,7 @@ config PINCTRL_MSM8916 ...@@ -114,7 +114,7 @@ config PINCTRL_MSM8916
config PINCTRL_MSM8953 config PINCTRL_MSM8953
tristate "Qualcomm 8953 pin controller driver" tristate "Qualcomm 8953 pin controller driver"
depends on GPIOLIB && OF depends on OF
depends on PINCTRL_MSM depends on PINCTRL_MSM
help help
This is the pinctrl, pinmux, pinconf and gpiolib driver for the This is the pinctrl, pinmux, pinconf and gpiolib driver for the
...@@ -124,7 +124,7 @@ config PINCTRL_MSM8953 ...@@ -124,7 +124,7 @@ config PINCTRL_MSM8953
config PINCTRL_MSM8976 config PINCTRL_MSM8976
tristate "Qualcomm 8976 pin controller driver" tristate "Qualcomm 8976 pin controller driver"
depends on GPIOLIB && OF depends on OF
depends on PINCTRL_MSM depends on PINCTRL_MSM
help help
This is the pinctrl, pinmux, pinconf and gpiolib driver for the This is the pinctrl, pinmux, pinconf and gpiolib driver for the
...@@ -134,7 +134,7 @@ config PINCTRL_MSM8976 ...@@ -134,7 +134,7 @@ config PINCTRL_MSM8976
config PINCTRL_MSM8994 config PINCTRL_MSM8994
tristate "Qualcomm 8994 pin controller driver" tristate "Qualcomm 8994 pin controller driver"
depends on GPIOLIB && OF depends on OF
depends on PINCTRL_MSM depends on PINCTRL_MSM
help help
This is the pinctrl, pinmux, pinconf and gpiolib driver for the This is the pinctrl, pinmux, pinconf and gpiolib driver for the
...@@ -143,7 +143,7 @@ config PINCTRL_MSM8994 ...@@ -143,7 +143,7 @@ config PINCTRL_MSM8994
config PINCTRL_MSM8996 config PINCTRL_MSM8996
tristate "Qualcomm MSM8996 pin controller driver" tristate "Qualcomm MSM8996 pin controller driver"
depends on GPIOLIB && OF depends on OF
depends on PINCTRL_MSM depends on PINCTRL_MSM
help help
This is the pinctrl, pinmux, pinconf and gpiolib driver for the This is the pinctrl, pinmux, pinconf and gpiolib driver for the
...@@ -151,7 +151,7 @@ config PINCTRL_MSM8996 ...@@ -151,7 +151,7 @@ config PINCTRL_MSM8996
config PINCTRL_MSM8998 config PINCTRL_MSM8998
tristate "Qualcomm MSM8998 pin controller driver" tristate "Qualcomm MSM8998 pin controller driver"
depends on GPIOLIB && OF depends on OF
depends on PINCTRL_MSM depends on PINCTRL_MSM
help help
This is the pinctrl, pinmux, pinconf and gpiolib driver for the This is the pinctrl, pinmux, pinconf and gpiolib driver for the
...@@ -159,7 +159,7 @@ config PINCTRL_MSM8998 ...@@ -159,7 +159,7 @@ config PINCTRL_MSM8998
config PINCTRL_QCS404 config PINCTRL_QCS404
tristate "Qualcomm QCS404 pin controller driver" tristate "Qualcomm QCS404 pin controller driver"
depends on GPIOLIB && OF depends on OF
depends on PINCTRL_MSM depends on PINCTRL_MSM
help help
This is the pinctrl, pinmux, pinconf and gpiolib driver for the This is the pinctrl, pinmux, pinconf and gpiolib driver for the
...@@ -167,7 +167,7 @@ config PINCTRL_QCS404 ...@@ -167,7 +167,7 @@ config PINCTRL_QCS404
config PINCTRL_QDF2XXX config PINCTRL_QDF2XXX
tristate "Qualcomm Technologies QDF2xxx pin controller driver" tristate "Qualcomm Technologies QDF2xxx pin controller driver"
depends on GPIOLIB && ACPI depends on ACPI
depends on PINCTRL_MSM depends on PINCTRL_MSM
help help
This is the GPIO driver for the TLMM block found on the This is the GPIO driver for the TLMM block found on the
...@@ -175,7 +175,7 @@ config PINCTRL_QDF2XXX ...@@ -175,7 +175,7 @@ config PINCTRL_QDF2XXX
config PINCTRL_QCOM_SPMI_PMIC config PINCTRL_QCOM_SPMI_PMIC
tristate "Qualcomm SPMI PMIC pin controller driver" tristate "Qualcomm SPMI PMIC pin controller driver"
depends on GPIOLIB && OF && SPMI depends on OF && SPMI
select REGMAP_SPMI select REGMAP_SPMI
select PINMUX select PINMUX
select PINCONF select PINCONF
...@@ -190,7 +190,7 @@ config PINCTRL_QCOM_SPMI_PMIC ...@@ -190,7 +190,7 @@ config PINCTRL_QCOM_SPMI_PMIC
config PINCTRL_QCOM_SSBI_PMIC config PINCTRL_QCOM_SSBI_PMIC
tristate "Qualcomm SSBI PMIC pin controller driver" tristate "Qualcomm SSBI PMIC pin controller driver"
depends on GPIOLIB && OF depends on OF
select PINMUX select PINMUX
select PINCONF select PINCONF
select GENERIC_PINCONF select GENERIC_PINCONF
...@@ -204,7 +204,7 @@ config PINCTRL_QCOM_SSBI_PMIC ...@@ -204,7 +204,7 @@ config PINCTRL_QCOM_SSBI_PMIC
config PINCTRL_SC7180 config PINCTRL_SC7180
tristate "Qualcomm Technologies Inc SC7180 pin controller driver" tristate "Qualcomm Technologies Inc SC7180 pin controller driver"
depends on GPIOLIB && OF depends on OF
depends on PINCTRL_MSM depends on PINCTRL_MSM
help help
This is the pinctrl, pinmux, pinconf and gpiolib driver for the This is the pinctrl, pinmux, pinconf and gpiolib driver for the
...@@ -213,7 +213,7 @@ config PINCTRL_SC7180 ...@@ -213,7 +213,7 @@ config PINCTRL_SC7180
config PINCTRL_SC7280 config PINCTRL_SC7280
tristate "Qualcomm Technologies Inc SC7280 pin controller driver" tristate "Qualcomm Technologies Inc SC7280 pin controller driver"
depends on GPIOLIB && OF depends on OF
depends on PINCTRL_MSM depends on PINCTRL_MSM
help help
This is the pinctrl, pinmux, pinconf and gpiolib driver for the This is the pinctrl, pinmux, pinconf and gpiolib driver for the
...@@ -222,7 +222,7 @@ config PINCTRL_SC7280 ...@@ -222,7 +222,7 @@ config PINCTRL_SC7280
config PINCTRL_SC8180X config PINCTRL_SC8180X
tristate "Qualcomm Technologies Inc SC8180x pin controller driver" tristate "Qualcomm Technologies Inc SC8180x pin controller driver"
depends on GPIOLIB && (OF || ACPI) depends on (OF || ACPI)
depends on PINCTRL_MSM depends on PINCTRL_MSM
help help
This is the pinctrl, pinmux, pinconf and gpiolib driver for the This is the pinctrl, pinmux, pinconf and gpiolib driver for the
...@@ -231,7 +231,7 @@ config PINCTRL_SC8180X ...@@ -231,7 +231,7 @@ config PINCTRL_SC8180X
config PINCTRL_SDM660 config PINCTRL_SDM660
tristate "Qualcomm Technologies Inc SDM660 pin controller driver" tristate "Qualcomm Technologies Inc SDM660 pin controller driver"
depends on GPIOLIB && OF depends on OF
depends on PINCTRL_MSM depends on PINCTRL_MSM
help help
This is the pinctrl, pinmux, pinconf and gpiolib driver for the This is the pinctrl, pinmux, pinconf and gpiolib driver for the
...@@ -240,7 +240,7 @@ config PINCTRL_SDM660 ...@@ -240,7 +240,7 @@ config PINCTRL_SDM660
config PINCTRL_SDM845 config PINCTRL_SDM845
tristate "Qualcomm Technologies Inc SDM845 pin controller driver" tristate "Qualcomm Technologies Inc SDM845 pin controller driver"
depends on GPIOLIB && (OF || ACPI) depends on (OF || ACPI)
depends on PINCTRL_MSM depends on PINCTRL_MSM
help help
This is the pinctrl, pinmux, pinconf and gpiolib driver for the This is the pinctrl, pinmux, pinconf and gpiolib driver for the
...@@ -249,7 +249,7 @@ config PINCTRL_SDM845 ...@@ -249,7 +249,7 @@ config PINCTRL_SDM845
config PINCTRL_SDX55 config PINCTRL_SDX55
tristate "Qualcomm Technologies Inc SDX55 pin controller driver" tristate "Qualcomm Technologies Inc SDX55 pin controller driver"
depends on GPIOLIB && OF depends on OF
depends on PINCTRL_MSM depends on PINCTRL_MSM
help help
This is the pinctrl, pinmux, pinconf and gpiolib driver for the This is the pinctrl, pinmux, pinconf and gpiolib driver for the
...@@ -258,7 +258,7 @@ config PINCTRL_SDX55 ...@@ -258,7 +258,7 @@ config PINCTRL_SDX55
config PINCTRL_SM6125 config PINCTRL_SM6125
tristate "Qualcomm Technologies Inc SM6125 pin controller driver" tristate "Qualcomm Technologies Inc SM6125 pin controller driver"
depends on GPIOLIB && OF depends on OF
depends on PINCTRL_MSM depends on PINCTRL_MSM
help help
This is the pinctrl, pinmux, pinconf and gpiolib driver for the This is the pinctrl, pinmux, pinconf and gpiolib driver for the
...@@ -267,7 +267,7 @@ config PINCTRL_SM6125 ...@@ -267,7 +267,7 @@ config PINCTRL_SM6125
config PINCTRL_SM8150 config PINCTRL_SM8150
tristate "Qualcomm Technologies Inc SM8150 pin controller driver" tristate "Qualcomm Technologies Inc SM8150 pin controller driver"
depends on GPIOLIB && OF depends on OF
depends on PINCTRL_MSM depends on PINCTRL_MSM
help help
This is the pinctrl, pinmux, pinconf and gpiolib driver for the This is the pinctrl, pinmux, pinconf and gpiolib driver for the
...@@ -276,7 +276,7 @@ config PINCTRL_SM8150 ...@@ -276,7 +276,7 @@ config PINCTRL_SM8150
config PINCTRL_SM8250 config PINCTRL_SM8250
tristate "Qualcomm Technologies Inc SM8250 pin controller driver" tristate "Qualcomm Technologies Inc SM8250 pin controller driver"
depends on GPIOLIB && OF depends on OF
depends on PINCTRL_MSM depends on PINCTRL_MSM
help help
This is the pinctrl, pinmux, pinconf and gpiolib driver for the This is the pinctrl, pinmux, pinconf and gpiolib driver for the
...@@ -285,8 +285,7 @@ config PINCTRL_SM8250 ...@@ -285,8 +285,7 @@ config PINCTRL_SM8250
config PINCTRL_SM8350 config PINCTRL_SM8350
tristate "Qualcomm Technologies Inc SM8350 pin controller driver" tristate "Qualcomm Technologies Inc SM8350 pin controller driver"
depends on GPIOLIB && OF depends on PINCTRL_MSM
select PINCTRL_MSM
help help
This is the pinctrl, pinmux, pinconf and gpiolib driver for the This is the pinctrl, pinmux, pinconf and gpiolib driver for the
Qualcomm Technologies Inc TLMM block found on the Qualcomm Qualcomm Technologies Inc TLMM block found on the Qualcomm
......
...@@ -1219,10 +1219,12 @@ static int sunxi_pinctrl_build_state(struct platform_device *pdev) ...@@ -1219,10 +1219,12 @@ static int sunxi_pinctrl_build_state(struct platform_device *pdev)
} }
/* /*
* We suppose that we won't have any more functions than pins, * Find an upper bound for the maximum number of functions: in
* we'll reallocate that later anyway * the worst case we have gpio_in, gpio_out, irq and up to four
* special functions per pin, plus one entry for the sentinel.
* We'll reallocate that later anyway.
*/ */
pctl->functions = kcalloc(pctl->ngroups, pctl->functions = kcalloc(4 * pctl->ngroups + 4,
sizeof(*pctl->functions), sizeof(*pctl->functions),
GFP_KERNEL); GFP_KERNEL);
if (!pctl->functions) if (!pctl->functions)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment