* [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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.