* [PATCH v1 0/3] Tegra GPIO: Minor code clean up
@ 2019-12-15 18:30 Dmitry Osipenko
2019-12-15 18:30 ` [PATCH v1 1/3] gpio: tegra: Use generic readl_relaxed/writel_relaxed accessors Dmitry Osipenko
` (5 more replies)
0 siblings, 6 replies; 16+ messages in thread
From: Dmitry Osipenko @ 2019-12-15 18:30 UTC (permalink / raw)
To: Thierry Reding, Jonathan Hunter, Linus Walleij, Bartosz Golaszewski
Cc: linux-gpio, linux-tegra, devel, linux-kernel
Hello,
I was investigating why CPU hangs during of GPIO driver suspend and in
the end it turned out that it is a Broadcom WiFi driver problem because
it keeps OOB wake-interrupt enabled while WLAN interface is DOWN and this
may cause a bit weird CPU hang on writing to INT_ENB register during of
GPIO driver suspend. Meanwhile I also noticed that a few things could be
improved in the driver, that's what this small series addresses.
Dmitry Osipenko (3):
gpio: tegra: Use generic readl_relaxed/writel_relaxed accessors
gpio: tegra: Properly handle irq_set_irq_wake() error
gpio: tegra: Use NOIRQ phase for suspend/resume
drivers/gpio/gpio-tegra.c | 21 ++++++++++-----------
1 file changed, 10 insertions(+), 11 deletions(-)
--
2.24.0
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH v1 1/3] gpio: tegra: Use generic readl_relaxed/writel_relaxed accessors
2019-12-15 18:30 [PATCH v1 0/3] Tegra GPIO: Minor code clean up Dmitry Osipenko
@ 2019-12-15 18:30 ` Dmitry Osipenko
2019-12-19 11:01 ` Bartosz Golaszewski
2019-12-15 18:30 ` [PATCH v1 2/3] gpio: tegra: Properly handle irq_set_irq_wake() error Dmitry Osipenko
` (4 subsequent siblings)
5 siblings, 1 reply; 16+ messages in thread
From: Dmitry Osipenko @ 2019-12-15 18:30 UTC (permalink / raw)
To: Thierry Reding, Jonathan Hunter, Linus Walleij, Bartosz Golaszewski
Cc: linux-gpio, linux-tegra, devel, linux-kernel
There is no point in using old-style raw accessors, the generic accessors
do the same thing and also take into account CPU endianness. Tegra SoCs do
not support big-endian mode in the upstream kernel, but let's switch away
from the outdated things anyway, just to keep code up-to-date.
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
drivers/gpio/gpio-tegra.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpio/gpio-tegra.c b/drivers/gpio/gpio-tegra.c
index 6fdfe4c5303e..f6a382fbd12d 100644
--- a/drivers/gpio/gpio-tegra.c
+++ b/drivers/gpio/gpio-tegra.c
@@ -96,12 +96,12 @@ struct tegra_gpio_info {
static inline void tegra_gpio_writel(struct tegra_gpio_info *tgi,
u32 val, u32 reg)
{
- __raw_writel(val, tgi->regs + reg);
+ writel_relaxed(val, tgi->regs + reg);
}
static inline u32 tegra_gpio_readl(struct tegra_gpio_info *tgi, u32 reg)
{
- return __raw_readl(tgi->regs + reg);
+ return readl_relaxed(tgi->regs + reg);
}
static unsigned int tegra_gpio_compose(unsigned int bank, unsigned int port,
--
2.24.0
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v1 2/3] gpio: tegra: Properly handle irq_set_irq_wake() error
2019-12-15 18:30 [PATCH v1 0/3] Tegra GPIO: Minor code clean up Dmitry Osipenko
2019-12-15 18:30 ` [PATCH v1 1/3] gpio: tegra: Use generic readl_relaxed/writel_relaxed accessors Dmitry Osipenko
@ 2019-12-15 18:30 ` Dmitry Osipenko
2019-12-15 18:30 ` [PATCH v1 3/3] gpio: tegra: Use NOIRQ phase for suspend/resume Dmitry Osipenko
` (3 subsequent siblings)
5 siblings, 0 replies; 16+ messages in thread
From: Dmitry Osipenko @ 2019-12-15 18:30 UTC (permalink / raw)
To: Thierry Reding, Jonathan Hunter, Linus Walleij, Bartosz Golaszewski
Cc: linux-gpio, linux-tegra, devel, linux-kernel
Technically upstream interrupt controller may fail changing of GPIO's bank
wake-state and in this case the GPIO's wake-state shouldn't be changed.
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
drivers/gpio/gpio-tegra.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/gpio/gpio-tegra.c b/drivers/gpio/gpio-tegra.c
index f6a382fbd12d..4790dfec7758 100644
--- a/drivers/gpio/gpio-tegra.c
+++ b/drivers/gpio/gpio-tegra.c
@@ -497,6 +497,11 @@ static int tegra_gpio_irq_set_wake(struct irq_data *d, unsigned int enable)
struct tegra_gpio_bank *bank = irq_data_get_irq_chip_data(d);
unsigned int gpio = d->hwirq;
u32 port, bit, mask;
+ int err;
+
+ err = irq_set_irq_wake(bank->irq, enable);
+ if (err)
+ return err;
port = GPIO_PORT(gpio);
bit = GPIO_BIT(gpio);
@@ -507,7 +512,7 @@ static int tegra_gpio_irq_set_wake(struct irq_data *d, unsigned int enable)
else
bank->wake_enb[port] &= ~mask;
- return irq_set_irq_wake(bank->irq, enable);
+ return 0;
}
#endif
--
2.24.0
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v1 3/3] gpio: tegra: Use NOIRQ phase for suspend/resume
2019-12-15 18:30 [PATCH v1 0/3] Tegra GPIO: Minor code clean up Dmitry Osipenko
2019-12-15 18:30 ` [PATCH v1 1/3] gpio: tegra: Use generic readl_relaxed/writel_relaxed accessors Dmitry Osipenko
2019-12-15 18:30 ` [PATCH v1 2/3] gpio: tegra: Properly handle irq_set_irq_wake() error Dmitry Osipenko
@ 2019-12-15 18:30 ` Dmitry Osipenko
2019-12-16 14:45 ` [PATCH v1 0/3] Tegra GPIO: Minor code clean up Dmitry Osipenko
` (2 subsequent siblings)
5 siblings, 0 replies; 16+ messages in thread
From: Dmitry Osipenko @ 2019-12-15 18:30 UTC (permalink / raw)
To: Thierry Reding, Jonathan Hunter, Linus Walleij, Bartosz Golaszewski
Cc: linux-gpio, linux-tegra, devel, linux-kernel
All GPIO interrupts are disabled during of the NOIRQ suspend/resume
phase, thus there is no need to manually disable the interrupts. This
patch doesn't fix any problem, this is just a minor clean-up.
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
drivers/gpio/gpio-tegra.c | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/drivers/gpio/gpio-tegra.c b/drivers/gpio/gpio-tegra.c
index 4790dfec7758..acb99eff9939 100644
--- a/drivers/gpio/gpio-tegra.c
+++ b/drivers/gpio/gpio-tegra.c
@@ -416,11 +416,8 @@ static void tegra_gpio_irq_handler(struct irq_desc *desc)
static int tegra_gpio_resume(struct device *dev)
{
struct tegra_gpio_info *tgi = dev_get_drvdata(dev);
- unsigned long flags;
unsigned int b, p;
- local_irq_save(flags);
-
for (b = 0; b < tgi->bank_count; b++) {
struct tegra_gpio_bank *bank = &tgi->bank_info[b];
@@ -448,17 +445,14 @@ static int tegra_gpio_resume(struct device *dev)
}
}
- local_irq_restore(flags);
return 0;
}
static int tegra_gpio_suspend(struct device *dev)
{
struct tegra_gpio_info *tgi = dev_get_drvdata(dev);
- unsigned long flags;
unsigned int b, p;
- local_irq_save(flags);
for (b = 0; b < tgi->bank_count; b++) {
struct tegra_gpio_bank *bank = &tgi->bank_info[b];
@@ -488,7 +482,7 @@ static int tegra_gpio_suspend(struct device *dev)
GPIO_INT_ENB(tgi, gpio));
}
}
- local_irq_restore(flags);
+
return 0;
}
@@ -562,7 +556,7 @@ static inline void tegra_gpio_debuginit(struct tegra_gpio_info *tgi)
#endif
static const struct dev_pm_ops tegra_gpio_pm_ops = {
- SET_SYSTEM_SLEEP_PM_OPS(tegra_gpio_suspend, tegra_gpio_resume)
+ SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(tegra_gpio_suspend, tegra_gpio_resume)
};
static int tegra_gpio_probe(struct platform_device *pdev)
--
2.24.0
^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH v1 0/3] Tegra GPIO: Minor code clean up
2019-12-15 18:30 [PATCH v1 0/3] Tegra GPIO: Minor code clean up Dmitry Osipenko
` (2 preceding siblings ...)
2019-12-15 18:30 ` [PATCH v1 3/3] gpio: tegra: Use NOIRQ phase for suspend/resume Dmitry Osipenko
@ 2019-12-16 14:45 ` Dmitry Osipenko
2019-12-19 14:53 ` Thierry Reding
2020-01-06 22:59 ` Linus Walleij
5 siblings, 0 replies; 16+ messages in thread
From: Dmitry Osipenko @ 2019-12-16 14:45 UTC (permalink / raw)
To: Thierry Reding, Jonathan Hunter, Linus Walleij, Bartosz Golaszewski
Cc: linux-gpio, linux-tegra, devel, linux-kernel
15.12.2019 21:30, Dmitry Osipenko пишет:
> Hello,
>
> I was investigating why CPU hangs during of GPIO driver suspend and in
> the end it turned out that it is a Broadcom WiFi driver problem because
> it keeps OOB wake-interrupt enabled while WLAN interface is DOWN and this
> may cause a bit weird CPU hang on writing to INT_ENB register during of
> GPIO driver suspend. Meanwhile I also noticed that a few things could be
> improved in the driver, that's what this small series addresses.
>
> Dmitry Osipenko (3):
> gpio: tegra: Use generic readl_relaxed/writel_relaxed accessors
> gpio: tegra: Properly handle irq_set_irq_wake() error
> gpio: tegra: Use NOIRQ phase for suspend/resume
>
> drivers/gpio/gpio-tegra.c | 21 ++++++++++-----------
> 1 file changed, 10 insertions(+), 11 deletions(-)
>
For the reference, here is the WiFi driver fix:
https://patchwork.ozlabs.org/patch/1209997/
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v1 1/3] gpio: tegra: Use generic readl_relaxed/writel_relaxed accessors
2019-12-15 18:30 ` [PATCH v1 1/3] gpio: tegra: Use generic readl_relaxed/writel_relaxed accessors Dmitry Osipenko
@ 2019-12-19 11:01 ` Bartosz Golaszewski
2019-12-19 15:25 ` Dmitry Osipenko
2019-12-19 15:57 ` Ben Dooks
0 siblings, 2 replies; 16+ messages in thread
From: Bartosz Golaszewski @ 2019-12-19 11:01 UTC (permalink / raw)
To: Dmitry Osipenko
Cc: Thierry Reding, Jonathan Hunter, Linus Walleij, linux-gpio,
linux-tegra, devel, LKML
niedz., 15 gru 2019 o 19:31 Dmitry Osipenko <digetx@gmail.com> napisał(a):
>
> There is no point in using old-style raw accessors, the generic accessors
> do the same thing and also take into account CPU endianness. Tegra SoCs do
> not support big-endian mode in the upstream kernel, but let's switch away
> from the outdated things anyway, just to keep code up-to-date.
>
> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
> ---
> drivers/gpio/gpio-tegra.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpio/gpio-tegra.c b/drivers/gpio/gpio-tegra.c
> index 6fdfe4c5303e..f6a382fbd12d 100644
> --- a/drivers/gpio/gpio-tegra.c
> +++ b/drivers/gpio/gpio-tegra.c
> @@ -96,12 +96,12 @@ struct tegra_gpio_info {
> static inline void tegra_gpio_writel(struct tegra_gpio_info *tgi,
> u32 val, u32 reg)
> {
> - __raw_writel(val, tgi->regs + reg);
> + writel_relaxed(val, tgi->regs + reg);
> }
>
> static inline u32 tegra_gpio_readl(struct tegra_gpio_info *tgi, u32 reg)
> {
> - return __raw_readl(tgi->regs + reg);
> + return readl_relaxed(tgi->regs + reg);
> }
>
> static unsigned int tegra_gpio_compose(unsigned int bank, unsigned int port,
> --
> 2.24.0
>
The entire series looks good to me, but I'll wait for Thierry's acks
just in case.
Bart
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v1 0/3] Tegra GPIO: Minor code clean up
2019-12-15 18:30 [PATCH v1 0/3] Tegra GPIO: Minor code clean up Dmitry Osipenko
` (3 preceding siblings ...)
2019-12-16 14:45 ` [PATCH v1 0/3] Tegra GPIO: Minor code clean up Dmitry Osipenko
@ 2019-12-19 14:53 ` Thierry Reding
2019-12-19 15:26 ` Dmitry Osipenko
2020-01-06 22:59 ` Linus Walleij
5 siblings, 1 reply; 16+ messages in thread
From: Thierry Reding @ 2019-12-19 14:53 UTC (permalink / raw)
To: Dmitry Osipenko
Cc: Jonathan Hunter, Linus Walleij, Bartosz Golaszewski, linux-gpio,
linux-tegra, devel, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 1447 bytes --]
On Sun, Dec 15, 2019 at 09:30:44PM +0300, Dmitry Osipenko wrote:
> Hello,
>
> I was investigating why CPU hangs during of GPIO driver suspend and in
> the end it turned out that it is a Broadcom WiFi driver problem because
> it keeps OOB wake-interrupt enabled while WLAN interface is DOWN and this
> may cause a bit weird CPU hang on writing to INT_ENB register during of
> GPIO driver suspend. Meanwhile I also noticed that a few things could be
> improved in the driver, that's what this small series addresses.
>
> Dmitry Osipenko (3):
> gpio: tegra: Use generic readl_relaxed/writel_relaxed accessors
> gpio: tegra: Properly handle irq_set_irq_wake() error
> gpio: tegra: Use NOIRQ phase for suspend/resume
>
> drivers/gpio/gpio-tegra.c | 21 ++++++++++-----------
> 1 file changed, 10 insertions(+), 11 deletions(-)
Patches look good:
Reviewed-by: Thierry Reding <treding@nvidia.com>
I also applied this series on top of v5.5-rc1 and ran it through our
test system:
Test results:
13 builds: 13 pass, 0 fail
22 boots: 22 pass, 0 fail
34 tests: 34 pass, 0 fail
Linux version: 5.5.0-rc1-g3d0b4fced39e
Boards tested: tegra124-jetson-tk1, tegra186-p2771-0000,
tegra194-p2972-0000, tegra20-ventana,
tegra210-p2371-2180, tegra30-cardhu-a04
All tests passing, so:
Tested-by: Thierry Reding <treding@nvidia.com>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v1 1/3] gpio: tegra: Use generic readl_relaxed/writel_relaxed accessors
2019-12-19 11:01 ` Bartosz Golaszewski
@ 2019-12-19 15:25 ` Dmitry Osipenko
2019-12-19 15:57 ` Ben Dooks
1 sibling, 0 replies; 16+ messages in thread
From: Dmitry Osipenko @ 2019-12-19 15:25 UTC (permalink / raw)
To: Bartosz Golaszewski
Cc: Thierry Reding, Jonathan Hunter, Linus Walleij, linux-gpio,
linux-tegra, devel, LKML
19.12.2019 14:01, Bartosz Golaszewski пишет:
> niedz., 15 gru 2019 o 19:31 Dmitry Osipenko <digetx@gmail.com> napisał(a):
>>
>> There is no point in using old-style raw accessors, the generic accessors
>> do the same thing and also take into account CPU endianness. Tegra SoCs do
>> not support big-endian mode in the upstream kernel, but let's switch away
>> from the outdated things anyway, just to keep code up-to-date.
>>
>> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
>> ---
>> drivers/gpio/gpio-tegra.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpio/gpio-tegra.c b/drivers/gpio/gpio-tegra.c
>> index 6fdfe4c5303e..f6a382fbd12d 100644
>> --- a/drivers/gpio/gpio-tegra.c
>> +++ b/drivers/gpio/gpio-tegra.c
>> @@ -96,12 +96,12 @@ struct tegra_gpio_info {
>> static inline void tegra_gpio_writel(struct tegra_gpio_info *tgi,
>> u32 val, u32 reg)
>> {
>> - __raw_writel(val, tgi->regs + reg);
>> + writel_relaxed(val, tgi->regs + reg);
>> }
>>
>> static inline u32 tegra_gpio_readl(struct tegra_gpio_info *tgi, u32 reg)
>> {
>> - return __raw_readl(tgi->regs + reg);
>> + return readl_relaxed(tgi->regs + reg);
>> }
>>
>> static unsigned int tegra_gpio_compose(unsigned int bank, unsigned int port,
>> --
>> 2.24.0
>>
>
> The entire series looks good to me, but I'll wait for Thierry's acks
> just in case.
Thank you very much for taking a look at the patches!
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v1 0/3] Tegra GPIO: Minor code clean up
2019-12-19 14:53 ` Thierry Reding
@ 2019-12-19 15:26 ` Dmitry Osipenko
0 siblings, 0 replies; 16+ messages in thread
From: Dmitry Osipenko @ 2019-12-19 15:26 UTC (permalink / raw)
To: Thierry Reding
Cc: Jonathan Hunter, Linus Walleij, Bartosz Golaszewski, linux-gpio,
linux-tegra, devel, linux-kernel
19.12.2019 17:53, Thierry Reding пишет:
> On Sun, Dec 15, 2019 at 09:30:44PM +0300, Dmitry Osipenko wrote:
>> Hello,
>>
>> I was investigating why CPU hangs during of GPIO driver suspend and in
>> the end it turned out that it is a Broadcom WiFi driver problem because
>> it keeps OOB wake-interrupt enabled while WLAN interface is DOWN and this
>> may cause a bit weird CPU hang on writing to INT_ENB register during of
>> GPIO driver suspend. Meanwhile I also noticed that a few things could be
>> improved in the driver, that's what this small series addresses.
>>
>> Dmitry Osipenko (3):
>> gpio: tegra: Use generic readl_relaxed/writel_relaxed accessors
>> gpio: tegra: Properly handle irq_set_irq_wake() error
>> gpio: tegra: Use NOIRQ phase for suspend/resume
>>
>> drivers/gpio/gpio-tegra.c | 21 ++++++++++-----------
>> 1 file changed, 10 insertions(+), 11 deletions(-)
>
> Patches look good:
>
> Reviewed-by: Thierry Reding <treding@nvidia.com>
>
> I also applied this series on top of v5.5-rc1 and ran it through our
> test system:
>
> Test results:
> 13 builds: 13 pass, 0 fail
> 22 boots: 22 pass, 0 fail
> 34 tests: 34 pass, 0 fail
>
> Linux version: 5.5.0-rc1-g3d0b4fced39e
> Boards tested: tegra124-jetson-tk1, tegra186-p2771-0000,
> tegra194-p2972-0000, tegra20-ventana,
> tegra210-p2371-2180, tegra30-cardhu-a04
>
> All tests passing, so:
>
> Tested-by: Thierry Reding <treding@nvidia.com>
>
Thank you very much!
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v1 1/3] gpio: tegra: Use generic readl_relaxed/writel_relaxed accessors
2019-12-19 11:01 ` Bartosz Golaszewski
2019-12-19 15:25 ` Dmitry Osipenko
@ 2019-12-19 15:57 ` Ben Dooks
2019-12-19 16:34 ` Dmitry Osipenko
1 sibling, 1 reply; 16+ messages in thread
From: Ben Dooks @ 2019-12-19 15:57 UTC (permalink / raw)
To: Bartosz Golaszewski, Dmitry Osipenko
Cc: Thierry Reding, Jonathan Hunter, Linus Walleij, linux-gpio,
linux-tegra, devel, LKML
On 19/12/2019 11:01, Bartosz Golaszewski wrote:
> niedz., 15 gru 2019 o 19:31 Dmitry Osipenko <digetx@gmail.com> napisał(a):
>>
>> There is no point in using old-style raw accessors, the generic accessors
>> do the same thing and also take into account CPU endianness. Tegra SoCs do
>> not support big-endian mode in the upstream kernel, but let's switch away
>> from the outdated things anyway, just to keep code up-to-date.
Good idea, I think I got most of the way to booting a tegra jetson board
with a big endian image a few years ago, but never got time to finish
the work.
--
Ben Dooks http://www.codethink.co.uk/
Senior Engineer Codethink - Providing Genius
https://www.codethink.co.uk/privacy.html
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v1 1/3] gpio: tegra: Use generic readl_relaxed/writel_relaxed accessors
2019-12-19 15:57 ` Ben Dooks
@ 2019-12-19 16:34 ` Dmitry Osipenko
0 siblings, 0 replies; 16+ messages in thread
From: Dmitry Osipenko @ 2019-12-19 16:34 UTC (permalink / raw)
To: Ben Dooks, Bartosz Golaszewski
Cc: Thierry Reding, Jonathan Hunter, Linus Walleij, linux-gpio,
linux-tegra, devel, LKML
19.12.2019 18:57, Ben Dooks пишет:
> On 19/12/2019 11:01, Bartosz Golaszewski wrote:
>> niedz., 15 gru 2019 o 19:31 Dmitry Osipenko <digetx@gmail.com>
>> napisał(a):
>>>
>>> There is no point in using old-style raw accessors, the generic
>>> accessors
>>> do the same thing and also take into account CPU endianness. Tegra
>>> SoCs do
>>> not support big-endian mode in the upstream kernel, but let's switch
>>> away
>>> from the outdated things anyway, just to keep code up-to-date.
>
> Good idea, I think I got most of the way to booting a tegra jetson board
> with a big endian image a few years ago, but never got time to finish
> the work.
>
Thanks, I remember yours effort in regards to the upstreaming big endian
support for Jetson :) You were pretty close back then, but Thierry had a
different opinion in regards to maintaining that support in terms of
having extra testing burden.
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v1 0/3] Tegra GPIO: Minor code clean up
2019-12-15 18:30 [PATCH v1 0/3] Tegra GPIO: Minor code clean up Dmitry Osipenko
` (4 preceding siblings ...)
2019-12-19 14:53 ` Thierry Reding
@ 2020-01-06 22:59 ` Linus Walleij
2020-01-07 8:25 ` Bartosz Golaszewski
5 siblings, 1 reply; 16+ messages in thread
From: Linus Walleij @ 2020-01-06 22:59 UTC (permalink / raw)
To: Dmitry Osipenko
Cc: Thierry Reding, Jonathan Hunter, Bartosz Golaszewski,
open list:GPIO SUBSYSTEM, linux-tegra, devel, linux-kernel
On Sun, Dec 15, 2019 at 7:31 PM Dmitry Osipenko <digetx@gmail.com> wrote:
> I was investigating why CPU hangs during of GPIO driver suspend and in
> the end it turned out that it is a Broadcom WiFi driver problem because
> it keeps OOB wake-interrupt enabled while WLAN interface is DOWN and this
> may cause a bit weird CPU hang on writing to INT_ENB register during of
> GPIO driver suspend. Meanwhile I also noticed that a few things could be
> improved in the driver, that's what this small series addresses.
>
> Dmitry Osipenko (3):
> gpio: tegra: Use generic readl_relaxed/writel_relaxed accessors
> gpio: tegra: Properly handle irq_set_irq_wake() error
> gpio: tegra: Use NOIRQ phase for suspend/resume
All three patches applied with Thierry's review/test tag.
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v1 0/3] Tegra GPIO: Minor code clean up
2020-01-06 22:59 ` Linus Walleij
@ 2020-01-07 8:25 ` Bartosz Golaszewski
2020-01-07 9:29 ` Linus Walleij
0 siblings, 1 reply; 16+ messages in thread
From: Bartosz Golaszewski @ 2020-01-07 8:25 UTC (permalink / raw)
To: Linus Walleij
Cc: Dmitry Osipenko, Thierry Reding, Jonathan Hunter,
open list:GPIO SUBSYSTEM, linux-tegra, devel, linux-kernel
pon., 6 sty 2020 o 23:59 Linus Walleij <linus.walleij@linaro.org> napisał(a):
>
> On Sun, Dec 15, 2019 at 7:31 PM Dmitry Osipenko <digetx@gmail.com> wrote:
>
> > I was investigating why CPU hangs during of GPIO driver suspend and in
> > the end it turned out that it is a Broadcom WiFi driver problem because
> > it keeps OOB wake-interrupt enabled while WLAN interface is DOWN and this
> > may cause a bit weird CPU hang on writing to INT_ENB register during of
> > GPIO driver suspend. Meanwhile I also noticed that a few things could be
> > improved in the driver, that's what this small series addresses.
> >
> > Dmitry Osipenko (3):
> > gpio: tegra: Use generic readl_relaxed/writel_relaxed accessors
> > gpio: tegra: Properly handle irq_set_irq_wake() error
> > gpio: tegra: Use NOIRQ phase for suspend/resume
>
> All three patches applied with Thierry's review/test tag.
>
> Yours,
> Linus Walleij
Ugh, I now noticed I responded to Thierry only after applying this to my tree.
Anyway, it shouldn't be a problem. I'll take more care next time.
Bart
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v1 0/3] Tegra GPIO: Minor code clean up
2020-01-07 8:25 ` Bartosz Golaszewski
@ 2020-01-07 9:29 ` Linus Walleij
2020-01-07 9:31 ` Bartosz Golaszewski
0 siblings, 1 reply; 16+ messages in thread
From: Linus Walleij @ 2020-01-07 9:29 UTC (permalink / raw)
To: Bartosz Golaszewski
Cc: Dmitry Osipenko, Thierry Reding, Jonathan Hunter,
open list:GPIO SUBSYSTEM, linux-tegra, devel, linux-kernel
On Tue, Jan 7, 2020 at 9:25 AM Bartosz Golaszewski
<bgolaszewski@baylibre.com> wrote:
> pon., 6 sty 2020 o 23:59 Linus Walleij <linus.walleij@linaro.org> napisał(a):
> > On Sun, Dec 15, 2019 at 7:31 PM Dmitry Osipenko <digetx@gmail.com> wrote:
> >
> > > I was investigating why CPU hangs during of GPIO driver suspend and in
> > > the end it turned out that it is a Broadcom WiFi driver problem because
> > > it keeps OOB wake-interrupt enabled while WLAN interface is DOWN and this
> > > may cause a bit weird CPU hang on writing to INT_ENB register during of
> > > GPIO driver suspend. Meanwhile I also noticed that a few things could be
> > > improved in the driver, that's what this small series addresses.
> > >
> > > Dmitry Osipenko (3):
> > > gpio: tegra: Use generic readl_relaxed/writel_relaxed accessors
> > > gpio: tegra: Properly handle irq_set_irq_wake() error
> > > gpio: tegra: Use NOIRQ phase for suspend/resume
> >
> > All three patches applied with Thierry's review/test tag.
> >
> > Yours,
> > Linus Walleij
>
> Ugh, I now noticed I responded to Thierry only after applying this to my tree.
>
> Anyway, it shouldn't be a problem. I'll take more care next time.
OK shall I drop the patches from my tree then? No big deal.
Thanks,
Linus Walleij
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v1 0/3] Tegra GPIO: Minor code clean up
2020-01-07 9:29 ` Linus Walleij
@ 2020-01-07 9:31 ` Bartosz Golaszewski
2020-01-07 12:38 ` Linus Walleij
0 siblings, 1 reply; 16+ messages in thread
From: Bartosz Golaszewski @ 2020-01-07 9:31 UTC (permalink / raw)
To: Linus Walleij
Cc: Dmitry Osipenko, Thierry Reding, Jonathan Hunter,
open list:GPIO SUBSYSTEM, linux-tegra, devel, linux-kernel
wt., 7 sty 2020 o 10:29 Linus Walleij <linus.walleij@linaro.org> napisał(a):
>
> On Tue, Jan 7, 2020 at 9:25 AM Bartosz Golaszewski
> <bgolaszewski@baylibre.com> wrote:
>
> > pon., 6 sty 2020 o 23:59 Linus Walleij <linus.walleij@linaro.org> napisał(a):
> > > On Sun, Dec 15, 2019 at 7:31 PM Dmitry Osipenko <digetx@gmail.com> wrote:
> > >
> > > > I was investigating why CPU hangs during of GPIO driver suspend and in
> > > > the end it turned out that it is a Broadcom WiFi driver problem because
> > > > it keeps OOB wake-interrupt enabled while WLAN interface is DOWN and this
> > > > may cause a bit weird CPU hang on writing to INT_ENB register during of
> > > > GPIO driver suspend. Meanwhile I also noticed that a few things could be
> > > > improved in the driver, that's what this small series addresses.
> > > >
> > > > Dmitry Osipenko (3):
> > > > gpio: tegra: Use generic readl_relaxed/writel_relaxed accessors
> > > > gpio: tegra: Properly handle irq_set_irq_wake() error
> > > > gpio: tegra: Use NOIRQ phase for suspend/resume
> > >
> > > All three patches applied with Thierry's review/test tag.
> > >
> > > Yours,
> > > Linus Walleij
> >
> > Ugh, I now noticed I responded to Thierry only after applying this to my tree.
> >
> > Anyway, it shouldn't be a problem. I'll take more care next time.
>
> OK shall I drop the patches from my tree then? No big deal.
>
If you're fine with this, sure!
Thanks a lot,
Bart
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v1 0/3] Tegra GPIO: Minor code clean up
2020-01-07 9:31 ` Bartosz Golaszewski
@ 2020-01-07 12:38 ` Linus Walleij
0 siblings, 0 replies; 16+ messages in thread
From: Linus Walleij @ 2020-01-07 12:38 UTC (permalink / raw)
To: Bartosz Golaszewski
Cc: Dmitry Osipenko, Thierry Reding, Jonathan Hunter,
open list:GPIO SUBSYSTEM, linux-tegra, devel, linux-kernel
On Tue, Jan 7, 2020 at 10:31 AM Bartosz Golaszewski
<bgolaszewski@baylibre.com> wrote:
> wt., 7 sty 2020 o 10:29 Linus Walleij <linus.walleij@linaro.org> napisał(a):
> > > Ugh, I now noticed I responded to Thierry only after applying this to my tree.
> > >
> > > Anyway, it shouldn't be a problem. I'll take more care next time.
> >
> > OK shall I drop the patches from my tree then? No big deal.
> >
>
> If you're fine with this, sure!
OK dropped them, hadn't even pushed the branch out yet.
Soon reaching the top of my mailbox so I will be pushing the branches
for the autobuilders and later tonight for-next.
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2020-01-07 12:38 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-15 18:30 [PATCH v1 0/3] Tegra GPIO: Minor code clean up Dmitry Osipenko
2019-12-15 18:30 ` [PATCH v1 1/3] gpio: tegra: Use generic readl_relaxed/writel_relaxed accessors Dmitry Osipenko
2019-12-19 11:01 ` Bartosz Golaszewski
2019-12-19 15:25 ` Dmitry Osipenko
2019-12-19 15:57 ` Ben Dooks
2019-12-19 16:34 ` Dmitry Osipenko
2019-12-15 18:30 ` [PATCH v1 2/3] gpio: tegra: Properly handle irq_set_irq_wake() error Dmitry Osipenko
2019-12-15 18:30 ` [PATCH v1 3/3] gpio: tegra: Use NOIRQ phase for suspend/resume Dmitry Osipenko
2019-12-16 14:45 ` [PATCH v1 0/3] Tegra GPIO: Minor code clean up Dmitry Osipenko
2019-12-19 14:53 ` Thierry Reding
2019-12-19 15:26 ` Dmitry Osipenko
2020-01-06 22:59 ` Linus Walleij
2020-01-07 8:25 ` Bartosz Golaszewski
2020-01-07 9:29 ` Linus Walleij
2020-01-07 9:31 ` Bartosz Golaszewski
2020-01-07 12:38 ` Linus Walleij
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).