* [PATCH v2 0/5] Update ti-sysc description and drop legacy quirk handling
@ 2024-04-10 6:40 Tony Lindgren
2024-04-10 6:40 ` [PATCH v2 1/5] bus: ti-sysc: Move check for no-reset-on-init Tony Lindgren
` (4 more replies)
0 siblings, 5 replies; 9+ messages in thread
From: Tony Lindgren @ 2024-04-10 6:40 UTC (permalink / raw)
To: linux-omap; +Cc: Dhruva Gole, Greg Kroah-Hartman, linux-kernel
Hi all,
Here are v2 changes for the ti-sysc interconnect target driver.
Regards,
Tony
Changes since v1:
- Update copyright years and format as suggested by Dhruva, limit
the copyright years to last changes done to the legacy arch code
- Add Reviewed-by from Dhruva
Tony Lindgren (5):
bus: ti-sysc: Move check for no-reset-on-init
bus: ti-sysc: Add a description and copyrights
bus: ti-sysc: Drop legacy quirk handling for uarts
bus: ti-sysc: Drop legacy quirk handling for smartreflex
bus: ti-sysc: Drop legacy idle quirk handling
drivers/bus/ti-sysc.c | 165 ++++++--------------------
include/linux/platform_data/ti-sysc.h | 1 -
2 files changed, 34 insertions(+), 132 deletions(-)
--
2.44.0
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v2 1/5] bus: ti-sysc: Move check for no-reset-on-init
2024-04-10 6:40 [PATCH v2 0/5] Update ti-sysc description and drop legacy quirk handling Tony Lindgren
@ 2024-04-10 6:40 ` Tony Lindgren
2024-04-10 18:03 ` Dhruva Gole
2024-04-10 6:40 ` [PATCH v2 2/5] bus: ti-sysc: Add a description and copyrights Tony Lindgren
` (3 subsequent siblings)
4 siblings, 1 reply; 9+ messages in thread
From: Tony Lindgren @ 2024-04-10 6:40 UTC (permalink / raw)
To: linux-omap; +Cc: Dhruva Gole, Greg Kroah-Hartman, linux-kernel
We are wrongly checking SYSC_QUIRK_NO_RESET_ON_INIT flag in sysc_reset(),
it can be called also after init from sysc_reinit_module(). Let's fix the
issue by moving the check to the init code.
Fixes: 6a52bc2b81fa ("bus: ti-sysc: Add quirk handling for reset on re-init")
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
drivers/bus/ti-sysc.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/drivers/bus/ti-sysc.c b/drivers/bus/ti-sysc.c
--- a/drivers/bus/ti-sysc.c
+++ b/drivers/bus/ti-sysc.c
@@ -2145,8 +2145,7 @@ static int sysc_reset(struct sysc *ddata)
sysc_offset = ddata->offsets[SYSC_SYSCONFIG];
if (ddata->legacy_mode ||
- ddata->cap->regbits->srst_shift < 0 ||
- ddata->cfg.quirks & SYSC_QUIRK_NO_RESET_ON_INIT)
+ ddata->cap->regbits->srst_shift < 0)
return 0;
sysc_mask = BIT(ddata->cap->regbits->srst_shift);
@@ -2240,12 +2239,14 @@ static int sysc_init_module(struct sysc *ddata)
goto err_main_clocks;
}
- error = sysc_reset(ddata);
- if (error)
- dev_err(ddata->dev, "Reset failed with %d\n", error);
+ if (!(ddata->cfg.quirks & SYSC_QUIRK_NO_RESET_ON_INIT)) {
+ error = sysc_reset(ddata);
+ if (error)
+ dev_err(ddata->dev, "Reset failed with %d\n", error);
- if (error && !ddata->legacy_mode)
- sysc_disable_module(ddata->dev);
+ if (error && !ddata->legacy_mode)
+ sysc_disable_module(ddata->dev);
+ }
err_main_clocks:
if (error)
--
2.44.0
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v2 2/5] bus: ti-sysc: Add a description and copyrights
2024-04-10 6:40 [PATCH v2 0/5] Update ti-sysc description and drop legacy quirk handling Tony Lindgren
2024-04-10 6:40 ` [PATCH v2 1/5] bus: ti-sysc: Move check for no-reset-on-init Tony Lindgren
@ 2024-04-10 6:40 ` Tony Lindgren
2024-04-10 6:40 ` [PATCH v2 3/5] bus: ti-sysc: Drop legacy quirk handling for uarts Tony Lindgren
` (2 subsequent siblings)
4 siblings, 0 replies; 9+ messages in thread
From: Tony Lindgren @ 2024-04-10 6:40 UTC (permalink / raw)
To: linux-omap; +Cc: Dhruva Gole, Greg Kroah-Hartman, linux-kernel
The ti-sysc driver is missing coprights and description, let's add
those.
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
drivers/bus/ti-sysc.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/drivers/bus/ti-sysc.c b/drivers/bus/ti-sysc.c
--- a/drivers/bus/ti-sysc.c
+++ b/drivers/bus/ti-sysc.c
@@ -1,6 +1,17 @@
// SPDX-License-Identifier: GPL-2.0
/*
* ti-sysc.c - Texas Instruments sysc interconnect target driver
+ *
+ * TI SoCs have an interconnect target wrapper IP for many devices. The wrapper
+ * IP manages clock gating, resets, and PM capabilities for the connected devices.
+ *
+ * Copyright (C) 2017-2024 Texas Instruments Incorporated - https://www.ti.com/
+ *
+ * Many features are based on the earlier omap_hwmod arch code with thanks to all
+ * the people who developed and debugged the code over the years:
+ *
+ * Copyright (C) 2009-2011 Nokia Corporation
+ * Copyright (C) 2011-2021 Texas Instruments Incorporated - https://www.ti.com/
*/
#include <linux/io.h>
--
2.44.0
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v2 3/5] bus: ti-sysc: Drop legacy quirk handling for uarts
2024-04-10 6:40 [PATCH v2 0/5] Update ti-sysc description and drop legacy quirk handling Tony Lindgren
2024-04-10 6:40 ` [PATCH v2 1/5] bus: ti-sysc: Move check for no-reset-on-init Tony Lindgren
2024-04-10 6:40 ` [PATCH v2 2/5] bus: ti-sysc: Add a description and copyrights Tony Lindgren
@ 2024-04-10 6:40 ` Tony Lindgren
2024-04-10 18:11 ` Dhruva Gole
2024-04-10 6:40 ` [PATCH v2 4/5] bus: ti-sysc: Drop legacy quirk handling for smartreflex Tony Lindgren
2024-04-10 6:40 ` [PATCH v2 5/5] bus: ti-sysc: Drop legacy idle quirk handling Tony Lindgren
4 siblings, 1 reply; 9+ messages in thread
From: Tony Lindgren @ 2024-04-10 6:40 UTC (permalink / raw)
To: linux-omap; +Cc: Dhruva Gole, Greg Kroah-Hartman, linux-kernel
With the 8250_omap and omap-serial drivers no longer relying on the use
of pm_runtime_irq_safe(), we can finally drop the related legacy quirk
handling for uarts.
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
drivers/bus/ti-sysc.c | 24 +++++++++++-------------
1 file changed, 11 insertions(+), 13 deletions(-)
diff --git a/drivers/bus/ti-sysc.c b/drivers/bus/ti-sysc.c
--- a/drivers/bus/ti-sysc.c
+++ b/drivers/bus/ti-sysc.c
@@ -1540,19 +1540,6 @@ struct sysc_revision_quirk {
}
static const struct sysc_revision_quirk sysc_revision_quirks[] = {
- /* These drivers need to be fixed to not use pm_runtime_irq_safe() */
- SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x00000046, 0xffffffff,
- SYSC_QUIRK_SWSUP_SIDLE_ACT | SYSC_QUIRK_LEGACY_IDLE),
- SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x00000052, 0xffffffff,
- SYSC_QUIRK_SWSUP_SIDLE_ACT | SYSC_QUIRK_LEGACY_IDLE),
- /* Uarts on omap4 and later */
- SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x50411e03, 0xffff00ff,
- SYSC_QUIRK_SWSUP_SIDLE_ACT | SYSC_QUIRK_LEGACY_IDLE),
- SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x47422e03, 0xffffffff,
- SYSC_QUIRK_SWSUP_SIDLE_ACT | SYSC_QUIRK_LEGACY_IDLE),
- SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x47424e03, 0xffffffff,
- SYSC_QUIRK_SWSUP_SIDLE_ACT | SYSC_QUIRK_LEGACY_IDLE),
-
/* Quirks that need to be set based on the module address */
SYSC_QUIRK("mcpdm", 0x40132000, 0, 0x10, -ENODEV, 0x50000800, 0xffffffff,
SYSC_QUIRK_EXT_OPT_CLOCK | SYSC_QUIRK_NO_RESET_ON_INIT |
@@ -1610,6 +1597,17 @@ static const struct sysc_revision_quirk sysc_revision_quirks[] = {
SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY),
SYSC_QUIRK("sata", 0, 0xfc, 0x1100, -ENODEV, 0x5e412000, 0xffffffff,
SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY),
+ SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x00000046, 0xffffffff,
+ SYSC_QUIRK_SWSUP_SIDLE_ACT),
+ SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x00000052, 0xffffffff,
+ SYSC_QUIRK_SWSUP_SIDLE_ACT),
+ /* Uarts on omap4 and later */
+ SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x50411e03, 0xffff00ff,
+ SYSC_QUIRK_SWSUP_SIDLE_ACT),
+ SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x47422e03, 0xffffffff,
+ SYSC_QUIRK_SWSUP_SIDLE_ACT),
+ SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x47424e03, 0xffffffff,
+ SYSC_QUIRK_SWSUP_SIDLE_ACT),
SYSC_QUIRK("usb_host_hs", 0, 0, 0x10, 0x14, 0x50700100, 0xffffffff,
SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY),
SYSC_QUIRK("usb_host_hs", 0, 0, 0x10, -ENODEV, 0x50700101, 0xffffffff,
--
2.44.0
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v2 4/5] bus: ti-sysc: Drop legacy quirk handling for smartreflex
2024-04-10 6:40 [PATCH v2 0/5] Update ti-sysc description and drop legacy quirk handling Tony Lindgren
` (2 preceding siblings ...)
2024-04-10 6:40 ` [PATCH v2 3/5] bus: ti-sysc: Drop legacy quirk handling for uarts Tony Lindgren
@ 2024-04-10 6:40 ` Tony Lindgren
2024-04-10 6:40 ` [PATCH v2 5/5] bus: ti-sysc: Drop legacy idle quirk handling Tony Lindgren
4 siblings, 0 replies; 9+ messages in thread
From: Tony Lindgren @ 2024-04-10 6:40 UTC (permalink / raw)
To: linux-omap; +Cc: Dhruva Gole, Greg Kroah-Hartman, linux-kernel
With the smartreflex driver no longer relying on the use of
pm_runtime_irq_safe(), we can finally drop the related legacy quirk
handling.
Reviewed-by: Dhruva Gole <d-gole@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
drivers/bus/ti-sysc.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/bus/ti-sysc.c b/drivers/bus/ti-sysc.c
--- a/drivers/bus/ti-sysc.c
+++ b/drivers/bus/ti-sysc.c
@@ -2869,8 +2869,7 @@ static const struct sysc_capabilities sysc_34xx_sr = {
.type = TI_SYSC_OMAP34XX_SR,
.sysc_mask = SYSC_OMAP2_CLOCKACTIVITY,
.regbits = &sysc_regbits_omap34xx_sr,
- .mod_quirks = SYSC_QUIRK_USE_CLOCKACT | SYSC_QUIRK_UNCACHED |
- SYSC_QUIRK_LEGACY_IDLE,
+ .mod_quirks = SYSC_QUIRK_USE_CLOCKACT | SYSC_QUIRK_UNCACHED,
};
/*
@@ -2891,13 +2890,12 @@ static const struct sysc_capabilities sysc_36xx_sr = {
.type = TI_SYSC_OMAP36XX_SR,
.sysc_mask = SYSC_OMAP3_SR_ENAWAKEUP,
.regbits = &sysc_regbits_omap36xx_sr,
- .mod_quirks = SYSC_QUIRK_UNCACHED | SYSC_QUIRK_LEGACY_IDLE,
+ .mod_quirks = SYSC_QUIRK_UNCACHED,
};
static const struct sysc_capabilities sysc_omap4_sr = {
.type = TI_SYSC_OMAP4_SR,
.regbits = &sysc_regbits_omap36xx_sr,
- .mod_quirks = SYSC_QUIRK_LEGACY_IDLE,
};
/*
--
2.44.0
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v2 5/5] bus: ti-sysc: Drop legacy idle quirk handling
2024-04-10 6:40 [PATCH v2 0/5] Update ti-sysc description and drop legacy quirk handling Tony Lindgren
` (3 preceding siblings ...)
2024-04-10 6:40 ` [PATCH v2 4/5] bus: ti-sysc: Drop legacy quirk handling for smartreflex Tony Lindgren
@ 2024-04-10 6:40 ` Tony Lindgren
4 siblings, 0 replies; 9+ messages in thread
From: Tony Lindgren @ 2024-04-10 6:40 UTC (permalink / raw)
To: linux-omap; +Cc: Dhruva Gole, Greg Kroah-Hartman, linux-kernel
There are no more users that need the legacy idle quirk so let's drop
the legacy idle quirk handling. This simplifies the PM code to just
sysc_pm_ops with unified handling for all the interconnect targets.
Reviewed-by: Dhruva Gole <d-gole@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
drivers/bus/ti-sysc.c | 109 +-------------------------
include/linux/platform_data/ti-sysc.h | 1 -
2 files changed, 2 insertions(+), 108 deletions(-)
diff --git a/drivers/bus/ti-sysc.c b/drivers/bus/ti-sysc.c
--- a/drivers/bus/ti-sysc.c
+++ b/drivers/bus/ti-sysc.c
@@ -1469,8 +1469,7 @@ static int __maybe_unused sysc_noirq_suspend(struct device *dev)
ddata = dev_get_drvdata(dev);
- if (ddata->cfg.quirks &
- (SYSC_QUIRK_LEGACY_IDLE | SYSC_QUIRK_NO_IDLE))
+ if (ddata->cfg.quirks & SYSC_QUIRK_NO_IDLE)
return 0;
if (!ddata->enabled)
@@ -1488,8 +1487,7 @@ static int __maybe_unused sysc_noirq_resume(struct device *dev)
ddata = dev_get_drvdata(dev);
- if (ddata->cfg.quirks &
- (SYSC_QUIRK_LEGACY_IDLE | SYSC_QUIRK_NO_IDLE))
+ if (ddata->cfg.quirks & SYSC_QUIRK_NO_IDLE)
return 0;
if (ddata->cfg.quirks & SYSC_QUIRK_REINIT_ON_RESUME) {
@@ -2457,89 +2455,6 @@ static int __maybe_unused sysc_child_runtime_resume(struct device *dev)
return pm_generic_runtime_resume(dev);
}
-#ifdef CONFIG_PM_SLEEP
-static int sysc_child_suspend_noirq(struct device *dev)
-{
- struct sysc *ddata;
- int error;
-
- ddata = sysc_child_to_parent(dev);
-
- dev_dbg(ddata->dev, "%s %s\n", __func__,
- ddata->name ? ddata->name : "");
-
- error = pm_generic_suspend_noirq(dev);
- if (error) {
- dev_err(dev, "%s error at %i: %i\n",
- __func__, __LINE__, error);
-
- return error;
- }
-
- if (!pm_runtime_status_suspended(dev)) {
- error = pm_generic_runtime_suspend(dev);
- if (error) {
- dev_dbg(dev, "%s busy at %i: %i\n",
- __func__, __LINE__, error);
-
- return 0;
- }
-
- error = sysc_runtime_suspend(ddata->dev);
- if (error) {
- dev_err(dev, "%s error at %i: %i\n",
- __func__, __LINE__, error);
-
- return error;
- }
-
- ddata->child_needs_resume = true;
- }
-
- return 0;
-}
-
-static int sysc_child_resume_noirq(struct device *dev)
-{
- struct sysc *ddata;
- int error;
-
- ddata = sysc_child_to_parent(dev);
-
- dev_dbg(ddata->dev, "%s %s\n", __func__,
- ddata->name ? ddata->name : "");
-
- if (ddata->child_needs_resume) {
- ddata->child_needs_resume = false;
-
- error = sysc_runtime_resume(ddata->dev);
- if (error)
- dev_err(ddata->dev,
- "%s runtime resume error: %i\n",
- __func__, error);
-
- error = pm_generic_runtime_resume(dev);
- if (error)
- dev_err(ddata->dev,
- "%s generic runtime resume: %i\n",
- __func__, error);
- }
-
- return pm_generic_resume_noirq(dev);
-}
-#endif
-
-static struct dev_pm_domain sysc_child_pm_domain = {
- .ops = {
- SET_RUNTIME_PM_OPS(sysc_child_runtime_suspend,
- sysc_child_runtime_resume,
- NULL)
- USE_PLATFORM_PM_SLEEP_OPS
- SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(sysc_child_suspend_noirq,
- sysc_child_resume_noirq)
- }
-};
-
/* Caller needs to take list_lock if ever used outside of cpu_pm */
static void sysc_reinit_modules(struct sysc_soc_info *soc)
{
@@ -2610,25 +2525,6 @@ static void sysc_add_restored(struct sysc *ddata)
mutex_unlock(&sysc_soc->list_lock);
}
-/**
- * sysc_legacy_idle_quirk - handle children in omap_device compatible way
- * @ddata: device driver data
- * @child: child device driver
- *
- * Allow idle for child devices as done with _od_runtime_suspend().
- * Otherwise many child devices will not idle because of the permanent
- * parent usecount set in pm_runtime_irq_safe().
- *
- * Note that the long term solution is to just modify the child device
- * drivers to not set pm_runtime_irq_safe() and then this can be just
- * dropped.
- */
-static void sysc_legacy_idle_quirk(struct sysc *ddata, struct device *child)
-{
- if (ddata->cfg.quirks & SYSC_QUIRK_LEGACY_IDLE)
- dev_pm_domain_set(child, &sysc_child_pm_domain);
-}
-
static int sysc_notifier_call(struct notifier_block *nb,
unsigned long event, void *device)
{
@@ -2645,7 +2541,6 @@ static int sysc_notifier_call(struct notifier_block *nb,
error = sysc_child_add_clocks(ddata, dev);
if (error)
return error;
- sysc_legacy_idle_quirk(ddata, dev);
break;
default:
break;
diff --git a/include/linux/platform_data/ti-sysc.h b/include/linux/platform_data/ti-sysc.h
--- a/include/linux/platform_data/ti-sysc.h
+++ b/include/linux/platform_data/ti-sysc.h
@@ -71,7 +71,6 @@ struct sysc_regbits {
#define SYSC_QUIRK_SWSUP_SIDLE_ACT BIT(12)
#define SYSC_QUIRK_SWSUP_SIDLE BIT(11)
#define SYSC_QUIRK_EXT_OPT_CLOCK BIT(10)
-#define SYSC_QUIRK_LEGACY_IDLE BIT(9)
#define SYSC_QUIRK_RESET_STATUS BIT(8)
#define SYSC_QUIRK_NO_IDLE BIT(7)
#define SYSC_QUIRK_NO_IDLE_ON_INIT BIT(6)
--
2.44.0
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 1/5] bus: ti-sysc: Move check for no-reset-on-init
2024-04-10 6:40 ` [PATCH v2 1/5] bus: ti-sysc: Move check for no-reset-on-init Tony Lindgren
@ 2024-04-10 18:03 ` Dhruva Gole
2024-04-11 4:30 ` Tony Lindgren
0 siblings, 1 reply; 9+ messages in thread
From: Dhruva Gole @ 2024-04-10 18:03 UTC (permalink / raw)
To: Tony Lindgren; +Cc: linux-omap, Greg Kroah-Hartman, linux-kernel
On Apr 10, 2024 at 09:40:05 +0300, Tony Lindgren wrote:
> We are wrongly checking SYSC_QUIRK_NO_RESET_ON_INIT flag in sysc_reset(),
> it can be called also after init from sysc_reinit_module(). Let's fix the
> issue by moving the check to the init code.
I am not able to understand exactly the potential bug here, what was the
issue exactly?
What I am able to infer is this is more of an improvement than fixing a
bug? Maybe I am missing some context, can you help me understand the
potential bug here?
>
> Fixes: 6a52bc2b81fa ("bus: ti-sysc: Add quirk handling for reset on re-init")
Fixes tag, you might want to CC stable@vger.kernel.org?
> Signed-off-by: Tony Lindgren <tony@atomide.com>
> ---
> drivers/bus/ti-sysc.c | 15 ++++++++-------
> 1 file changed, 8 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/bus/ti-sysc.c b/drivers/bus/ti-sysc.c
> --- a/drivers/bus/ti-sysc.c
> +++ b/drivers/bus/ti-sysc.c
> @@ -2145,8 +2145,7 @@ static int sysc_reset(struct sysc *ddata)
> sysc_offset = ddata->offsets[SYSC_SYSCONFIG];
>
> if (ddata->legacy_mode ||
> - ddata->cap->regbits->srst_shift < 0 ||
> - ddata->cfg.quirks & SYSC_QUIRK_NO_RESET_ON_INIT)
> + ddata->cap->regbits->srst_shift < 0)
> return 0;
>
> sysc_mask = BIT(ddata->cap->regbits->srst_shift);
> @@ -2240,12 +2239,14 @@ static int sysc_init_module(struct sysc *ddata)
> goto err_main_clocks;
> }
>
> - error = sysc_reset(ddata);
> - if (error)
> - dev_err(ddata->dev, "Reset failed with %d\n", error);
> + if (!(ddata->cfg.quirks & SYSC_QUIRK_NO_RESET_ON_INIT)) {
> + error = sysc_reset(ddata);
> + if (error)
> + dev_err(ddata->dev, "Reset failed with %d\n", error);
>
> - if (error && !ddata->legacy_mode)
> - sysc_disable_module(ddata->dev);
> + if (error && !ddata->legacy_mode)
> + sysc_disable_module(ddata->dev);
> + }
>
--
Best regards,
Dhruva
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 3/5] bus: ti-sysc: Drop legacy quirk handling for uarts
2024-04-10 6:40 ` [PATCH v2 3/5] bus: ti-sysc: Drop legacy quirk handling for uarts Tony Lindgren
@ 2024-04-10 18:11 ` Dhruva Gole
0 siblings, 0 replies; 9+ messages in thread
From: Dhruva Gole @ 2024-04-10 18:11 UTC (permalink / raw)
To: Tony Lindgren; +Cc: linux-omap, Greg Kroah-Hartman, linux-kernel
On Apr 10, 2024 at 09:40:07 +0300, Tony Lindgren wrote:
> With the 8250_omap and omap-serial drivers no longer relying on the use
> of pm_runtime_irq_safe(), we can finally drop the related legacy quirk
> handling for uarts.
>
> Signed-off-by: Tony Lindgren <tony@atomide.com>
> ---
LGTM!
Reviewed-by: Dhruva Gole <d-gole@ti.com>
--
Best regards,
Dhruva
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 1/5] bus: ti-sysc: Move check for no-reset-on-init
2024-04-10 18:03 ` Dhruva Gole
@ 2024-04-11 4:30 ` Tony Lindgren
0 siblings, 0 replies; 9+ messages in thread
From: Tony Lindgren @ 2024-04-11 4:30 UTC (permalink / raw)
To: Dhruva Gole; +Cc: linux-omap, Greg Kroah-Hartman, linux-kernel
* Dhruva Gole <d-gole@ti.com> [240410 18:03]:
> On Apr 10, 2024 at 09:40:05 +0300, Tony Lindgren wrote:
> > We are wrongly checking SYSC_QUIRK_NO_RESET_ON_INIT flag in sysc_reset(),
> > it can be called also after init from sysc_reinit_module(). Let's fix the
> > issue by moving the check to the init code.
>
> I am not able to understand exactly the potential bug here, what was the
> issue exactly?
With this flag, reset should be skipped on init, for example for an SDRAM
controller during booting or to preserve a boot logo etc. However, if a
reset is requested later on after init, we must ignore this flag.
> What I am able to infer is this is more of an improvement than fixing a
> bug? Maybe I am missing some context, can you help me understand the
> potential bug here?
We are now also calling sysc_reset() during runtime, so in theory some
device would not reset during usage as requested. I don't think we have
such cases in reality though. So yeah this is more cleanup rather than a
fix AFAIK.
> > Fixes: 6a52bc2b81fa ("bus: ti-sysc: Add quirk handling for reset on re-init")
>
> Fixes tag, you might want to CC stable@vger.kernel.org?
Let's just leave out the fixes tag as there are no known bugs caused
by this.
Regards,
Tony
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2024-04-11 4:30 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-10 6:40 [PATCH v2 0/5] Update ti-sysc description and drop legacy quirk handling Tony Lindgren
2024-04-10 6:40 ` [PATCH v2 1/5] bus: ti-sysc: Move check for no-reset-on-init Tony Lindgren
2024-04-10 18:03 ` Dhruva Gole
2024-04-11 4:30 ` Tony Lindgren
2024-04-10 6:40 ` [PATCH v2 2/5] bus: ti-sysc: Add a description and copyrights Tony Lindgren
2024-04-10 6:40 ` [PATCH v2 3/5] bus: ti-sysc: Drop legacy quirk handling for uarts Tony Lindgren
2024-04-10 18:11 ` Dhruva Gole
2024-04-10 6:40 ` [PATCH v2 4/5] bus: ti-sysc: Drop legacy quirk handling for smartreflex Tony Lindgren
2024-04-10 6:40 ` [PATCH v2 5/5] bus: ti-sysc: Drop legacy idle quirk handling Tony Lindgren
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox