diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-06-29 13:05:44 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-06-29 13:05:44 -0400 |
commit | 00bf377d19ad3d80cbc7a036521279a86e397bfb (patch) | |
tree | 1def121cc05855dc8041250a3757cb44b2057d1d | |
parent | 52827f389b32f6d04a1bcb4428b5499815c36a24 (diff) | |
parent | b41aa4f8476545e2b663b1549759a8c3a66f47b0 (diff) |
Merge tag 'pinctrl-v4.7-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
Pull pin control fixes from Linus Walleij:
"Here are a bunch of fixes for pin control. Just drivers and a
MAINTAINERS fixup:
- Driver fixes for i.MX, single register, Tegra and BayTrail.
- MAINTAINERS entry for the documentation"
* tag 'pinctrl-v4.7-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
pinctrl: baytrail: Fix mingled clock pins
MAINTAINERS: belong Documentation/pinctrl.txt properly
pinctrl: tegra: Fix build dependency
gpio: tegra: Make lockdep class file-scoped
pinctrl: single: Fix missing flush of posted write for a wakeirq
pinctrl: imx: Do not treat a PIN without MUX register as an error
-rw-r--r-- | MAINTAINERS | 1 | ||||
-rw-r--r-- | drivers/gpio/gpio-tegra.c | 9 | ||||
-rw-r--r-- | drivers/pinctrl/Makefile | 2 | ||||
-rw-r--r-- | drivers/pinctrl/freescale/pinctrl-imx.c | 4 | ||||
-rw-r--r-- | drivers/pinctrl/intel/pinctrl-baytrail.c | 6 | ||||
-rw-r--r-- | drivers/pinctrl/pinctrl-single.c | 3 | ||||
-rw-r--r-- | drivers/pinctrl/tegra/Makefile | 2 |
7 files changed, 18 insertions, 9 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 0f148d3bdae7..81e2d49e2d02 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
@@ -8963,6 +8963,7 @@ L: linux-gpio@vger.kernel.org | |||
8963 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git | 8963 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git |
8964 | S: Maintained | 8964 | S: Maintained |
8965 | F: Documentation/devicetree/bindings/pinctrl/ | 8965 | F: Documentation/devicetree/bindings/pinctrl/ |
8966 | F: Documentation/pinctrl.txt | ||
8966 | F: drivers/pinctrl/ | 8967 | F: drivers/pinctrl/ |
8967 | F: include/linux/pinctrl/ | 8968 | F: include/linux/pinctrl/ |
8968 | 8969 | ||
diff --git a/drivers/gpio/gpio-tegra.c b/drivers/gpio/gpio-tegra.c index ec891a27952f..661b0e34e067 100644 --- a/drivers/gpio/gpio-tegra.c +++ b/drivers/gpio/gpio-tegra.c | |||
@@ -98,7 +98,6 @@ struct tegra_gpio_info { | |||
98 | const struct tegra_gpio_soc_config *soc; | 98 | const struct tegra_gpio_soc_config *soc; |
99 | struct gpio_chip gc; | 99 | struct gpio_chip gc; |
100 | struct irq_chip ic; | 100 | struct irq_chip ic; |
101 | struct lock_class_key lock_class; | ||
102 | u32 bank_count; | 101 | u32 bank_count; |
103 | }; | 102 | }; |
104 | 103 | ||
@@ -547,6 +546,12 @@ static const struct dev_pm_ops tegra_gpio_pm_ops = { | |||
547 | SET_SYSTEM_SLEEP_PM_OPS(tegra_gpio_suspend, tegra_gpio_resume) | 546 | SET_SYSTEM_SLEEP_PM_OPS(tegra_gpio_suspend, tegra_gpio_resume) |
548 | }; | 547 | }; |
549 | 548 | ||
549 | /* | ||
550 | * This lock class tells lockdep that GPIO irqs are in a different category | ||
551 | * than their parents, so it won't report false recursion. | ||
552 | */ | ||
553 | static struct lock_class_key gpio_lock_class; | ||
554 | |||
550 | static int tegra_gpio_probe(struct platform_device *pdev) | 555 | static int tegra_gpio_probe(struct platform_device *pdev) |
551 | { | 556 | { |
552 | const struct tegra_gpio_soc_config *config; | 557 | const struct tegra_gpio_soc_config *config; |
@@ -660,7 +665,7 @@ static int tegra_gpio_probe(struct platform_device *pdev) | |||
660 | 665 | ||
661 | bank = &tgi->bank_info[GPIO_BANK(gpio)]; | 666 | bank = &tgi->bank_info[GPIO_BANK(gpio)]; |
662 | 667 | ||
663 | irq_set_lockdep_class(irq, &tgi->lock_class); | 668 | irq_set_lockdep_class(irq, &gpio_lock_class); |
664 | irq_set_chip_data(irq, bank); | 669 | irq_set_chip_data(irq, bank); |
665 | irq_set_chip_and_handler(irq, &tgi->ic, handle_simple_irq); | 670 | irq_set_chip_and_handler(irq, &tgi->ic, handle_simple_irq); |
666 | } | 671 | } |
diff --git a/drivers/pinctrl/Makefile b/drivers/pinctrl/Makefile index e4bc1151e04f..42a5c1dddfef 100644 --- a/drivers/pinctrl/Makefile +++ b/drivers/pinctrl/Makefile | |||
@@ -23,7 +23,7 @@ obj-$(CONFIG_PINCTRL_PISTACHIO) += pinctrl-pistachio.o | |||
23 | obj-$(CONFIG_PINCTRL_ROCKCHIP) += pinctrl-rockchip.o | 23 | obj-$(CONFIG_PINCTRL_ROCKCHIP) += pinctrl-rockchip.o |
24 | obj-$(CONFIG_PINCTRL_SINGLE) += pinctrl-single.o | 24 | obj-$(CONFIG_PINCTRL_SINGLE) += pinctrl-single.o |
25 | obj-$(CONFIG_PINCTRL_SIRF) += sirf/ | 25 | obj-$(CONFIG_PINCTRL_SIRF) += sirf/ |
26 | obj-$(CONFIG_PINCTRL_TEGRA) += tegra/ | 26 | obj-$(CONFIG_ARCH_TEGRA) += tegra/ |
27 | obj-$(CONFIG_PINCTRL_TZ1090) += pinctrl-tz1090.o | 27 | obj-$(CONFIG_PINCTRL_TZ1090) += pinctrl-tz1090.o |
28 | obj-$(CONFIG_PINCTRL_TZ1090_PDC) += pinctrl-tz1090-pdc.o | 28 | obj-$(CONFIG_PINCTRL_TZ1090_PDC) += pinctrl-tz1090-pdc.o |
29 | obj-$(CONFIG_PINCTRL_U300) += pinctrl-u300.o | 29 | obj-$(CONFIG_PINCTRL_U300) += pinctrl-u300.o |
diff --git a/drivers/pinctrl/freescale/pinctrl-imx.c b/drivers/pinctrl/freescale/pinctrl-imx.c index 47ccfcc8a647..eccb47480e1d 100644 --- a/drivers/pinctrl/freescale/pinctrl-imx.c +++ b/drivers/pinctrl/freescale/pinctrl-imx.c | |||
@@ -209,9 +209,9 @@ static int imx_pmx_set(struct pinctrl_dev *pctldev, unsigned selector, | |||
209 | pin_reg = &info->pin_regs[pin_id]; | 209 | pin_reg = &info->pin_regs[pin_id]; |
210 | 210 | ||
211 | if (pin_reg->mux_reg == -1) { | 211 | if (pin_reg->mux_reg == -1) { |
212 | dev_err(ipctl->dev, "Pin(%s) does not support mux function\n", | 212 | dev_dbg(ipctl->dev, "Pin(%s) does not support mux function\n", |
213 | info->pins[pin_id].name); | 213 | info->pins[pin_id].name); |
214 | return -EINVAL; | 214 | continue; |
215 | } | 215 | } |
216 | 216 | ||
217 | if (info->flags & SHARE_MUX_CONF_REG) { | 217 | if (info->flags & SHARE_MUX_CONF_REG) { |
diff --git a/drivers/pinctrl/intel/pinctrl-baytrail.c b/drivers/pinctrl/intel/pinctrl-baytrail.c index 677a811b3a6f..7abfd42e8ffd 100644 --- a/drivers/pinctrl/intel/pinctrl-baytrail.c +++ b/drivers/pinctrl/intel/pinctrl-baytrail.c | |||
@@ -401,9 +401,9 @@ static const struct byt_simple_func_mux byt_score_sata_mux[] = { | |||
401 | static const unsigned int byt_score_plt_clk0_pins[] = { 96 }; | 401 | static const unsigned int byt_score_plt_clk0_pins[] = { 96 }; |
402 | static const unsigned int byt_score_plt_clk1_pins[] = { 97 }; | 402 | static const unsigned int byt_score_plt_clk1_pins[] = { 97 }; |
403 | static const unsigned int byt_score_plt_clk2_pins[] = { 98 }; | 403 | static const unsigned int byt_score_plt_clk2_pins[] = { 98 }; |
404 | static const unsigned int byt_score_plt_clk4_pins[] = { 99 }; | 404 | static const unsigned int byt_score_plt_clk3_pins[] = { 99 }; |
405 | static const unsigned int byt_score_plt_clk5_pins[] = { 100 }; | 405 | static const unsigned int byt_score_plt_clk4_pins[] = { 100 }; |
406 | static const unsigned int byt_score_plt_clk3_pins[] = { 101 }; | 406 | static const unsigned int byt_score_plt_clk5_pins[] = { 101 }; |
407 | static const struct byt_simple_func_mux byt_score_plt_clk_mux[] = { | 407 | static const struct byt_simple_func_mux byt_score_plt_clk_mux[] = { |
408 | SIMPLE_FUNC("plt_clk", 1), | 408 | SIMPLE_FUNC("plt_clk", 1), |
409 | }; | 409 | }; |
diff --git a/drivers/pinctrl/pinctrl-single.c b/drivers/pinctrl/pinctrl-single.c index cf9bafa10acf..bfdf720db270 100644 --- a/drivers/pinctrl/pinctrl-single.c +++ b/drivers/pinctrl/pinctrl-single.c | |||
@@ -1580,6 +1580,9 @@ static inline void pcs_irq_set(struct pcs_soc_data *pcs_soc, | |||
1580 | else | 1580 | else |
1581 | mask &= ~soc_mask; | 1581 | mask &= ~soc_mask; |
1582 | pcs->write(mask, pcswi->reg); | 1582 | pcs->write(mask, pcswi->reg); |
1583 | |||
1584 | /* flush posted write */ | ||
1585 | mask = pcs->read(pcswi->reg); | ||
1583 | raw_spin_unlock(&pcs->lock); | 1586 | raw_spin_unlock(&pcs->lock); |
1584 | } | 1587 | } |
1585 | 1588 | ||
diff --git a/drivers/pinctrl/tegra/Makefile b/drivers/pinctrl/tegra/Makefile index a927379b6794..d9ea2be69cc4 100644 --- a/drivers/pinctrl/tegra/Makefile +++ b/drivers/pinctrl/tegra/Makefile | |||
@@ -1,4 +1,4 @@ | |||
1 | obj-y += pinctrl-tegra.o | 1 | obj-$(CONFIG_PINCTRL_TEGRA) += pinctrl-tegra.o |
2 | obj-$(CONFIG_PINCTRL_TEGRA20) += pinctrl-tegra20.o | 2 | obj-$(CONFIG_PINCTRL_TEGRA20) += pinctrl-tegra20.o |
3 | obj-$(CONFIG_PINCTRL_TEGRA30) += pinctrl-tegra30.o | 3 | obj-$(CONFIG_PINCTRL_TEGRA30) += pinctrl-tegra30.o |
4 | obj-$(CONFIG_PINCTRL_TEGRA114) += pinctrl-tegra114.o | 4 | obj-$(CONFIG_PINCTRL_TEGRA114) += pinctrl-tegra114.o |