+++ /dev/null
-From 1aa07cdbecddfcebadc593fde4a063eeca9d8da6 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 15 Feb 2023 10:52:49 +0100
-Subject: gpio: vf610: make irq_chip immutable
-
-From: Alexander Stein <alexander.stein@ew.tq-group.com>
-
-[ Upstream commit e6ef4f8ede09f4af7cde000717b349b50bc62576 ]
-
-Since recently, the kernel is nagging about mutable irq_chips:
-
- "not an immutable chip, please consider fixing it!"
-
-Drop the unneeded copy, flag it as IRQCHIP_IMMUTABLE, add the new
-helper functions and call the appropriate gpiolib functions.
-
-Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
-Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
-Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
-Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
-Stable-dep-of: 430232619791 ("gpio: vf610: mask the gpio irq in system suspend and support wakeup")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpio/gpio-vf610.c | 41 ++++++++++++++++++++++-----------------
- 1 file changed, 23 insertions(+), 18 deletions(-)
-
-diff --git a/drivers/gpio/gpio-vf610.c b/drivers/gpio/gpio-vf610.c
-index c2c38f13801f5..a548ac3fbb207 100644
---- a/drivers/gpio/gpio-vf610.c
-+++ b/drivers/gpio/gpio-vf610.c
-@@ -29,7 +29,6 @@ struct fsl_gpio_soc_data {
-
- struct vf610_gpio_port {
- struct gpio_chip gc;
-- struct irq_chip ic;
- void __iomem *base;
- void __iomem *gpio_base;
- const struct fsl_gpio_soc_data *sdata;
-@@ -206,20 +205,24 @@ static int vf610_gpio_irq_set_type(struct irq_data *d, u32 type)
-
- static void vf610_gpio_irq_mask(struct irq_data *d)
- {
-- struct vf610_gpio_port *port =
-- gpiochip_get_data(irq_data_get_irq_chip_data(d));
-- void __iomem *pcr_base = port->base + PORT_PCR(d->hwirq);
-+ struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
-+ struct vf610_gpio_port *port = gpiochip_get_data(gc);
-+ irq_hw_number_t gpio_num = irqd_to_hwirq(d);
-+ void __iomem *pcr_base = port->base + PORT_PCR(gpio_num);
-
- vf610_gpio_writel(0, pcr_base);
-+ gpiochip_disable_irq(gc, gpio_num);
- }
-
- static void vf610_gpio_irq_unmask(struct irq_data *d)
- {
-- struct vf610_gpio_port *port =
-- gpiochip_get_data(irq_data_get_irq_chip_data(d));
-- void __iomem *pcr_base = port->base + PORT_PCR(d->hwirq);
-+ struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
-+ struct vf610_gpio_port *port = gpiochip_get_data(gc);
-+ irq_hw_number_t gpio_num = irqd_to_hwirq(d);
-+ void __iomem *pcr_base = port->base + PORT_PCR(gpio_num);
-
-- vf610_gpio_writel(port->irqc[d->hwirq] << PORT_PCR_IRQC_OFFSET,
-+ gpiochip_enable_irq(gc, gpio_num);
-+ vf610_gpio_writel(port->irqc[gpio_num] << PORT_PCR_IRQC_OFFSET,
- pcr_base);
- }
-
-@@ -236,6 +239,17 @@ static int vf610_gpio_irq_set_wake(struct irq_data *d, u32 enable)
- return 0;
- }
-
-+static const struct irq_chip vf610_irqchip = {
-+ .name = "gpio-vf610",
-+ .irq_ack = vf610_gpio_irq_ack,
-+ .irq_mask = vf610_gpio_irq_mask,
-+ .irq_unmask = vf610_gpio_irq_unmask,
-+ .irq_set_type = vf610_gpio_irq_set_type,
-+ .irq_set_wake = vf610_gpio_irq_set_wake,
-+ .flags = IRQCHIP_IMMUTABLE,
-+ GPIOCHIP_IRQ_RESOURCE_HELPERS,
-+};
-+
- static void vf610_gpio_disable_clk(void *data)
- {
- clk_disable_unprepare(data);
-@@ -248,7 +262,6 @@ static int vf610_gpio_probe(struct platform_device *pdev)
- struct vf610_gpio_port *port;
- struct gpio_chip *gc;
- struct gpio_irq_chip *girq;
-- struct irq_chip *ic;
- int i;
- int ret;
-
-@@ -315,14 +328,6 @@ static int vf610_gpio_probe(struct platform_device *pdev)
- gc->direction_output = vf610_gpio_direction_output;
- gc->set = vf610_gpio_set;
-
-- ic = &port->ic;
-- ic->name = "gpio-vf610";
-- ic->irq_ack = vf610_gpio_irq_ack;
-- ic->irq_mask = vf610_gpio_irq_mask;
-- ic->irq_unmask = vf610_gpio_irq_unmask;
-- ic->irq_set_type = vf610_gpio_irq_set_type;
-- ic->irq_set_wake = vf610_gpio_irq_set_wake;
--
- /* Mask all GPIO interrupts */
- for (i = 0; i < gc->ngpio; i++)
- vf610_gpio_writel(0, port->base + PORT_PCR(i));
-@@ -331,7 +336,7 @@ static int vf610_gpio_probe(struct platform_device *pdev)
- vf610_gpio_writel(~0, port->base + PORT_ISFR);
-
- girq = &gc->irq;
-- girq->chip = ic;
-+ gpio_irq_chip_set_chip(girq, &vf610_irqchip);
- girq->parent_handler = vf610_gpio_irq_handler;
- girq->num_parents = 1;
- girq->parents = devm_kcalloc(&pdev->dev, 1,
---
-2.42.0
-
+++ /dev/null
-From 67cc0f6fca31e37b99139f42bffba21572ab0173 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 17 Oct 2023 18:42:36 +0800
-Subject: gpio: vf610: mask the gpio irq in system suspend and support wakeup
-
-From: Haibo Chen <haibo.chen@nxp.com>
-
-[ Upstream commit 430232619791e7de95191f2cd8ebaa4c380d17d0 ]
-
-Add flag IRQCHIP_MASK_ON_SUSPEND to make sure gpio irq is masked on
-suspend, if lack this flag, current irq arctitecture will not mask
-the irq, and these unmasked gpio irq will wrongly wakeup the system
-even they are not config as wakeup source.
-
-Also add flag IRQCHIP_ENABLE_WAKEUP_ON_SUSPEND to make sure the gpio
-irq which is configed as wakeup source can work as expect.
-
-Fixes: 7f2691a19627 ("gpio: vf610: add gpiolib/IRQ chip driver for Vybrid")
-Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
-Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpio/gpio-vf610.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/gpio/gpio-vf610.c b/drivers/gpio/gpio-vf610.c
-index a548ac3fbb207..c2883bdeb95fe 100644
---- a/drivers/gpio/gpio-vf610.c
-+++ b/drivers/gpio/gpio-vf610.c
-@@ -246,7 +246,8 @@ static const struct irq_chip vf610_irqchip = {
- .irq_unmask = vf610_gpio_irq_unmask,
- .irq_set_type = vf610_gpio_irq_set_type,
- .irq_set_wake = vf610_gpio_irq_set_wake,
-- .flags = IRQCHIP_IMMUTABLE,
-+ .flags = IRQCHIP_IMMUTABLE | IRQCHIP_MASK_ON_SUSPEND
-+ | IRQCHIP_ENABLE_WAKEUP_ON_SUSPEND,
- GPIOCHIP_IRQ_RESOURCE_HELPERS,
- };
-
---
-2.42.0
-
platform-x86-asus-wmi-map-0x2a-code-ignore-0x2b-and-0x2c-events.patch
gpio-vf610-set-value-before-the-direction-to-avoid-a-glitch.patch
asoc-pxa-fix-a-memory-leak-in-probe.patch
-gpio-vf610-make-irq_chip-immutable.patch
-gpio-vf610-mask-the-gpio-irq-in-system-suspend-and-s.patch
phy-mapphone-mdm6600-fix-runtime-disable-on-probe.patch
phy-mapphone-mdm6600-fix-runtime-pm-for-remove.patch
phy-mapphone-mdm6600-fix-pinctrl_pm-handling-for-sle.patch
+++ /dev/null
-From 214d76e83736821433a7f68f504b2e93dc51d465 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 15 Feb 2023 10:52:49 +0100
-Subject: gpio: vf610: make irq_chip immutable
-
-From: Alexander Stein <alexander.stein@ew.tq-group.com>
-
-[ Upstream commit e6ef4f8ede09f4af7cde000717b349b50bc62576 ]
-
-Since recently, the kernel is nagging about mutable irq_chips:
-
- "not an immutable chip, please consider fixing it!"
-
-Drop the unneeded copy, flag it as IRQCHIP_IMMUTABLE, add the new
-helper functions and call the appropriate gpiolib functions.
-
-Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
-Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
-Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
-Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
-Stable-dep-of: 430232619791 ("gpio: vf610: mask the gpio irq in system suspend and support wakeup")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpio/gpio-vf610.c | 41 ++++++++++++++++++++++-----------------
- 1 file changed, 23 insertions(+), 18 deletions(-)
-
-diff --git a/drivers/gpio/gpio-vf610.c b/drivers/gpio/gpio-vf610.c
-index c3014f5f0faad..2f21440cbeb19 100644
---- a/drivers/gpio/gpio-vf610.c
-+++ b/drivers/gpio/gpio-vf610.c
-@@ -29,7 +29,6 @@ struct fsl_gpio_soc_data {
-
- struct vf610_gpio_port {
- struct gpio_chip gc;
-- struct irq_chip ic;
- void __iomem *base;
- void __iomem *gpio_base;
- const struct fsl_gpio_soc_data *sdata;
-@@ -206,20 +205,24 @@ static int vf610_gpio_irq_set_type(struct irq_data *d, u32 type)
-
- static void vf610_gpio_irq_mask(struct irq_data *d)
- {
-- struct vf610_gpio_port *port =
-- gpiochip_get_data(irq_data_get_irq_chip_data(d));
-- void __iomem *pcr_base = port->base + PORT_PCR(d->hwirq);
-+ struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
-+ struct vf610_gpio_port *port = gpiochip_get_data(gc);
-+ irq_hw_number_t gpio_num = irqd_to_hwirq(d);
-+ void __iomem *pcr_base = port->base + PORT_PCR(gpio_num);
-
- vf610_gpio_writel(0, pcr_base);
-+ gpiochip_disable_irq(gc, gpio_num);
- }
-
- static void vf610_gpio_irq_unmask(struct irq_data *d)
- {
-- struct vf610_gpio_port *port =
-- gpiochip_get_data(irq_data_get_irq_chip_data(d));
-- void __iomem *pcr_base = port->base + PORT_PCR(d->hwirq);
-+ struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
-+ struct vf610_gpio_port *port = gpiochip_get_data(gc);
-+ irq_hw_number_t gpio_num = irqd_to_hwirq(d);
-+ void __iomem *pcr_base = port->base + PORT_PCR(gpio_num);
-
-- vf610_gpio_writel(port->irqc[d->hwirq] << PORT_PCR_IRQC_OFFSET,
-+ gpiochip_enable_irq(gc, gpio_num);
-+ vf610_gpio_writel(port->irqc[gpio_num] << PORT_PCR_IRQC_OFFSET,
- pcr_base);
- }
-
-@@ -236,6 +239,17 @@ static int vf610_gpio_irq_set_wake(struct irq_data *d, u32 enable)
- return 0;
- }
-
-+static const struct irq_chip vf610_irqchip = {
-+ .name = "gpio-vf610",
-+ .irq_ack = vf610_gpio_irq_ack,
-+ .irq_mask = vf610_gpio_irq_mask,
-+ .irq_unmask = vf610_gpio_irq_unmask,
-+ .irq_set_type = vf610_gpio_irq_set_type,
-+ .irq_set_wake = vf610_gpio_irq_set_wake,
-+ .flags = IRQCHIP_IMMUTABLE,
-+ GPIOCHIP_IRQ_RESOURCE_HELPERS,
-+};
-+
- static void vf610_gpio_disable_clk(void *data)
- {
- clk_disable_unprepare(data);
-@@ -248,7 +262,6 @@ static int vf610_gpio_probe(struct platform_device *pdev)
- struct vf610_gpio_port *port;
- struct gpio_chip *gc;
- struct gpio_irq_chip *girq;
-- struct irq_chip *ic;
- int i;
- int ret;
-
-@@ -315,14 +328,6 @@ static int vf610_gpio_probe(struct platform_device *pdev)
- gc->direction_output = vf610_gpio_direction_output;
- gc->set = vf610_gpio_set;
-
-- ic = &port->ic;
-- ic->name = "gpio-vf610";
-- ic->irq_ack = vf610_gpio_irq_ack;
-- ic->irq_mask = vf610_gpio_irq_mask;
-- ic->irq_unmask = vf610_gpio_irq_unmask;
-- ic->irq_set_type = vf610_gpio_irq_set_type;
-- ic->irq_set_wake = vf610_gpio_irq_set_wake;
--
- /* Mask all GPIO interrupts */
- for (i = 0; i < gc->ngpio; i++)
- vf610_gpio_writel(0, port->base + PORT_PCR(i));
-@@ -331,7 +336,7 @@ static int vf610_gpio_probe(struct platform_device *pdev)
- vf610_gpio_writel(~0, port->base + PORT_ISFR);
-
- girq = &gc->irq;
-- girq->chip = ic;
-+ gpio_irq_chip_set_chip(girq, &vf610_irqchip);
- girq->parent_handler = vf610_gpio_irq_handler;
- girq->num_parents = 1;
- girq->parents = devm_kcalloc(&pdev->dev, 1,
---
-2.42.0
-
+++ /dev/null
-From a04e48224ba6869719527c0fe39a6148097fe612 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 17 Oct 2023 18:42:36 +0800
-Subject: gpio: vf610: mask the gpio irq in system suspend and support wakeup
-
-From: Haibo Chen <haibo.chen@nxp.com>
-
-[ Upstream commit 430232619791e7de95191f2cd8ebaa4c380d17d0 ]
-
-Add flag IRQCHIP_MASK_ON_SUSPEND to make sure gpio irq is masked on
-suspend, if lack this flag, current irq arctitecture will not mask
-the irq, and these unmasked gpio irq will wrongly wakeup the system
-even they are not config as wakeup source.
-
-Also add flag IRQCHIP_ENABLE_WAKEUP_ON_SUSPEND to make sure the gpio
-irq which is configed as wakeup source can work as expect.
-
-Fixes: 7f2691a19627 ("gpio: vf610: add gpiolib/IRQ chip driver for Vybrid")
-Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
-Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpio/gpio-vf610.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/gpio/gpio-vf610.c b/drivers/gpio/gpio-vf610.c
-index 2f21440cbeb19..68c1196136851 100644
---- a/drivers/gpio/gpio-vf610.c
-+++ b/drivers/gpio/gpio-vf610.c
-@@ -246,7 +246,8 @@ static const struct irq_chip vf610_irqchip = {
- .irq_unmask = vf610_gpio_irq_unmask,
- .irq_set_type = vf610_gpio_irq_set_type,
- .irq_set_wake = vf610_gpio_irq_set_wake,
-- .flags = IRQCHIP_IMMUTABLE,
-+ .flags = IRQCHIP_IMMUTABLE | IRQCHIP_MASK_ON_SUSPEND
-+ | IRQCHIP_ENABLE_WAKEUP_ON_SUSPEND,
- GPIOCHIP_IRQ_RESOURCE_HELPERS,
- };
-
---
-2.42.0
-
gpio-vf610-set-value-before-the-direction-to-avoid-a-glitch.patch
asoc-pxa-fix-a-memory-leak-in-probe.patch
serial-8250-omap-move-uart_write-inside-pm-section.patch
-gpio-vf610-make-irq_chip-immutable.patch
-gpio-vf610-mask-the-gpio-irq-in-system-suspend-and-s.patch
phy-mapphone-mdm6600-fix-runtime-disable-on-probe.patch
phy-mapphone-mdm6600-fix-runtime-pm-for-remove.patch
phy-mapphone-mdm6600-fix-pinctrl_pm-handling-for-sle.patch
+++ /dev/null
-From 2d9c6fa484171e229488dab1a74de3943947deef Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 15 Feb 2023 10:52:49 +0100
-Subject: gpio: vf610: make irq_chip immutable
-
-From: Alexander Stein <alexander.stein@ew.tq-group.com>
-
-[ Upstream commit e6ef4f8ede09f4af7cde000717b349b50bc62576 ]
-
-Since recently, the kernel is nagging about mutable irq_chips:
-
- "not an immutable chip, please consider fixing it!"
-
-Drop the unneeded copy, flag it as IRQCHIP_IMMUTABLE, add the new
-helper functions and call the appropriate gpiolib functions.
-
-Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
-Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
-Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
-Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
-Stable-dep-of: 430232619791 ("gpio: vf610: mask the gpio irq in system suspend and support wakeup")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpio/gpio-vf610.c | 41 ++++++++++++++++++++++-----------------
- 1 file changed, 23 insertions(+), 18 deletions(-)
-
-diff --git a/drivers/gpio/gpio-vf610.c b/drivers/gpio/gpio-vf610.c
-index c2c38f13801f5..a548ac3fbb207 100644
---- a/drivers/gpio/gpio-vf610.c
-+++ b/drivers/gpio/gpio-vf610.c
-@@ -29,7 +29,6 @@ struct fsl_gpio_soc_data {
-
- struct vf610_gpio_port {
- struct gpio_chip gc;
-- struct irq_chip ic;
- void __iomem *base;
- void __iomem *gpio_base;
- const struct fsl_gpio_soc_data *sdata;
-@@ -206,20 +205,24 @@ static int vf610_gpio_irq_set_type(struct irq_data *d, u32 type)
-
- static void vf610_gpio_irq_mask(struct irq_data *d)
- {
-- struct vf610_gpio_port *port =
-- gpiochip_get_data(irq_data_get_irq_chip_data(d));
-- void __iomem *pcr_base = port->base + PORT_PCR(d->hwirq);
-+ struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
-+ struct vf610_gpio_port *port = gpiochip_get_data(gc);
-+ irq_hw_number_t gpio_num = irqd_to_hwirq(d);
-+ void __iomem *pcr_base = port->base + PORT_PCR(gpio_num);
-
- vf610_gpio_writel(0, pcr_base);
-+ gpiochip_disable_irq(gc, gpio_num);
- }
-
- static void vf610_gpio_irq_unmask(struct irq_data *d)
- {
-- struct vf610_gpio_port *port =
-- gpiochip_get_data(irq_data_get_irq_chip_data(d));
-- void __iomem *pcr_base = port->base + PORT_PCR(d->hwirq);
-+ struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
-+ struct vf610_gpio_port *port = gpiochip_get_data(gc);
-+ irq_hw_number_t gpio_num = irqd_to_hwirq(d);
-+ void __iomem *pcr_base = port->base + PORT_PCR(gpio_num);
-
-- vf610_gpio_writel(port->irqc[d->hwirq] << PORT_PCR_IRQC_OFFSET,
-+ gpiochip_enable_irq(gc, gpio_num);
-+ vf610_gpio_writel(port->irqc[gpio_num] << PORT_PCR_IRQC_OFFSET,
- pcr_base);
- }
-
-@@ -236,6 +239,17 @@ static int vf610_gpio_irq_set_wake(struct irq_data *d, u32 enable)
- return 0;
- }
-
-+static const struct irq_chip vf610_irqchip = {
-+ .name = "gpio-vf610",
-+ .irq_ack = vf610_gpio_irq_ack,
-+ .irq_mask = vf610_gpio_irq_mask,
-+ .irq_unmask = vf610_gpio_irq_unmask,
-+ .irq_set_type = vf610_gpio_irq_set_type,
-+ .irq_set_wake = vf610_gpio_irq_set_wake,
-+ .flags = IRQCHIP_IMMUTABLE,
-+ GPIOCHIP_IRQ_RESOURCE_HELPERS,
-+};
-+
- static void vf610_gpio_disable_clk(void *data)
- {
- clk_disable_unprepare(data);
-@@ -248,7 +262,6 @@ static int vf610_gpio_probe(struct platform_device *pdev)
- struct vf610_gpio_port *port;
- struct gpio_chip *gc;
- struct gpio_irq_chip *girq;
-- struct irq_chip *ic;
- int i;
- int ret;
-
-@@ -315,14 +328,6 @@ static int vf610_gpio_probe(struct platform_device *pdev)
- gc->direction_output = vf610_gpio_direction_output;
- gc->set = vf610_gpio_set;
-
-- ic = &port->ic;
-- ic->name = "gpio-vf610";
-- ic->irq_ack = vf610_gpio_irq_ack;
-- ic->irq_mask = vf610_gpio_irq_mask;
-- ic->irq_unmask = vf610_gpio_irq_unmask;
-- ic->irq_set_type = vf610_gpio_irq_set_type;
-- ic->irq_set_wake = vf610_gpio_irq_set_wake;
--
- /* Mask all GPIO interrupts */
- for (i = 0; i < gc->ngpio; i++)
- vf610_gpio_writel(0, port->base + PORT_PCR(i));
-@@ -331,7 +336,7 @@ static int vf610_gpio_probe(struct platform_device *pdev)
- vf610_gpio_writel(~0, port->base + PORT_ISFR);
-
- girq = &gc->irq;
-- girq->chip = ic;
-+ gpio_irq_chip_set_chip(girq, &vf610_irqchip);
- girq->parent_handler = vf610_gpio_irq_handler;
- girq->num_parents = 1;
- girq->parents = devm_kcalloc(&pdev->dev, 1,
---
-2.42.0
-
+++ /dev/null
-From 7e6be084f75ddbf5e99e1351a4ed5c14f8978661 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 17 Oct 2023 18:42:36 +0800
-Subject: gpio: vf610: mask the gpio irq in system suspend and support wakeup
-
-From: Haibo Chen <haibo.chen@nxp.com>
-
-[ Upstream commit 430232619791e7de95191f2cd8ebaa4c380d17d0 ]
-
-Add flag IRQCHIP_MASK_ON_SUSPEND to make sure gpio irq is masked on
-suspend, if lack this flag, current irq arctitecture will not mask
-the irq, and these unmasked gpio irq will wrongly wakeup the system
-even they are not config as wakeup source.
-
-Also add flag IRQCHIP_ENABLE_WAKEUP_ON_SUSPEND to make sure the gpio
-irq which is configed as wakeup source can work as expect.
-
-Fixes: 7f2691a19627 ("gpio: vf610: add gpiolib/IRQ chip driver for Vybrid")
-Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
-Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpio/gpio-vf610.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/gpio/gpio-vf610.c b/drivers/gpio/gpio-vf610.c
-index a548ac3fbb207..c2883bdeb95fe 100644
---- a/drivers/gpio/gpio-vf610.c
-+++ b/drivers/gpio/gpio-vf610.c
-@@ -246,7 +246,8 @@ static const struct irq_chip vf610_irqchip = {
- .irq_unmask = vf610_gpio_irq_unmask,
- .irq_set_type = vf610_gpio_irq_set_type,
- .irq_set_wake = vf610_gpio_irq_set_wake,
-- .flags = IRQCHIP_IMMUTABLE,
-+ .flags = IRQCHIP_IMMUTABLE | IRQCHIP_MASK_ON_SUSPEND
-+ | IRQCHIP_ENABLE_WAKEUP_ON_SUSPEND,
- GPIOCHIP_IRQ_RESOURCE_HELPERS,
- };
-
---
-2.42.0
-
s390-pci-fix-iommu-bitmap-allocation.patch
gpio-vf610-set-value-before-the-direction-to-avoid-a-glitch.patch
asoc-pxa-fix-a-memory-leak-in-probe.patch
-gpio-vf610-make-irq_chip-immutable.patch
-gpio-vf610-mask-the-gpio-irq-in-system-suspend-and-s.patch
phy-mapphone-mdm6600-fix-runtime-disable-on-probe.patch
phy-mapphone-mdm6600-fix-runtime-pm-for-remove.patch
phy-mapphone-mdm6600-fix-pinctrl_pm-handling-for-sle.patch