driverdev-devel.linuxdriverproject.org archive mirror
 help / color / mirror / Atom feed
* [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-tegra, linux-gpio, 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

_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

^ 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-tegra, linux-gpio, 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

_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

^ 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-tegra, linux-gpio, 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

_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

^ 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-tegra, linux-gpio, 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

_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

^ 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-tegra, linux-gpio, 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/
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

^ 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: devel, Linus Walleij, LKML, Jonathan Hunter, linux-gpio,
	Thierry Reding, linux-tegra

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
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

^ 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: devel, linux-gpio, Linus Walleij, linux-kernel, Jonathan Hunter,
	Bartosz Golaszewski, linux-tegra


[-- Attachment #1.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 #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

[-- Attachment #2: Type: text/plain, Size: 169 bytes --]

_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

^ 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: devel, Linus Walleij, LKML, Jonathan Hunter, linux-gpio,
	Thierry Reding, linux-tegra

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!
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

^ 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: devel, linux-gpio, Linus Walleij, linux-kernel, Jonathan Hunter,
	Bartosz Golaszewski, linux-tegra

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!
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

^ 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: devel, Linus Walleij, LKML, Jonathan Hunter, linux-gpio,
	Thierry Reding, linux-tegra

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
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

^ 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: devel, Linus Walleij, LKML, Jonathan Hunter, linux-gpio,
	Thierry Reding, linux-tegra

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.
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

^ 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: devel, open list:GPIO SUBSYSTEM, linux-kernel, Jonathan Hunter,
	Bartosz Golaszewski, Thierry Reding, linux-tegra

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
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

^ 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: devel, linux-kernel, Jonathan Hunter, open list:GPIO SUBSYSTEM,
	Thierry Reding, linux-tegra, Dmitry Osipenko

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
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

^ 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: devel, linux-kernel, Jonathan Hunter, open list:GPIO SUBSYSTEM,
	Thierry Reding, linux-tegra, Dmitry Osipenko

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
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

^ 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: devel, linux-kernel, Jonathan Hunter, open list:GPIO SUBSYSTEM,
	Thierry Reding, linux-tegra, Dmitry Osipenko

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
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

^ 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: devel, linux-kernel, Jonathan Hunter, open list:GPIO SUBSYSTEM,
	Thierry Reding, linux-tegra, Dmitry Osipenko

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
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

^ 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).