* [PATCH 0/5] Updates for ti-sysc interconnect target driver
@ 2024-03-27 8:15 Tony Lindgren
2024-03-27 8:15 ` [PATCH 1/5] bus: ti-sysc: Move check for no-reset-on-init Tony Lindgren
` (4 more replies)
0 siblings, 5 replies; 13+ messages in thread
From: Tony Lindgren @ 2024-03-27 8:15 UTC (permalink / raw)
To: linux-omap; +Cc: Dhruva Gole, Greg Kroah-Hartman, linux-kernel
Hi all,
Here are few updates for ti-sysc. We were missing copyrights, have one
non-urgent issue on reset handling, and can finally drop all the quirks
related to the legacy use of pm_runtime_irq_safe() for uart and
smartreflex.
Regards,
Tony
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] 13+ messages in thread* [PATCH 1/5] bus: ti-sysc: Move check for no-reset-on-init 2024-03-27 8:15 [PATCH 0/5] Updates for ti-sysc interconnect target driver Tony Lindgren @ 2024-03-27 8:15 ` Tony Lindgren 2024-03-27 8:15 ` [PATCH 2/5] bus: ti-sysc: Add a description and copyrights Tony Lindgren ` (3 subsequent siblings) 4 siblings, 0 replies; 13+ messages in thread From: Tony Lindgren @ 2024-03-27 8:15 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] 13+ messages in thread
* [PATCH 2/5] bus: ti-sysc: Add a description and copyrights 2024-03-27 8:15 [PATCH 0/5] Updates for ti-sysc interconnect target driver Tony Lindgren 2024-03-27 8:15 ` [PATCH 1/5] bus: ti-sysc: Move check for no-reset-on-init Tony Lindgren @ 2024-03-27 8:15 ` Tony Lindgren 2024-03-28 11:19 ` Dhruva Gole 2024-03-27 8:15 ` [PATCH 3/5] bus: ti-sysc: Drop legacy quirk handling for uarts Tony Lindgren ` (2 subsequent siblings) 4 siblings, 1 reply; 13+ messages in thread From: Tony Lindgren @ 2024-03-27 8:15 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-2012 Texas Instruments, Inc. */ #include <linux/io.h> -- 2.44.0 ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 2/5] bus: ti-sysc: Add a description and copyrights 2024-03-27 8:15 ` [PATCH 2/5] bus: ti-sysc: Add a description and copyrights Tony Lindgren @ 2024-03-28 11:19 ` Dhruva Gole 2024-03-28 11:36 ` Greg Kroah-Hartman 2024-03-28 11:38 ` Tony Lindgren 0 siblings, 2 replies; 13+ messages in thread From: Dhruva Gole @ 2024-03-28 11:19 UTC (permalink / raw) To: Tony Lindgren; +Cc: linux-omap, Greg Kroah-Hartman, linux-kernel, nm, vigneshr On Mar 27, 2024 at 10:15:05 +0200, Tony Lindgren wrote: > 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-2012 Texas Instruments, Inc. +Nishant I am no expert on the copyrights part of it, but who gets copyright from 2012 - 2017? Also, for TI should we stick to this format as you did above? Copyright (C) 2011-2024 Texas Instruments Incorporated perhaps? But otherwise, Reviewed-by: Dhruva Gole <d-gole@ti.com> -- Best regards, Dhruva ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 2/5] bus: ti-sysc: Add a description and copyrights 2024-03-28 11:19 ` Dhruva Gole @ 2024-03-28 11:36 ` Greg Kroah-Hartman 2024-03-28 11:47 ` Dhruva Gole 2024-03-28 11:38 ` Tony Lindgren 1 sibling, 1 reply; 13+ messages in thread From: Greg Kroah-Hartman @ 2024-03-28 11:36 UTC (permalink / raw) To: Dhruva Gole; +Cc: Tony Lindgren, linux-omap, linux-kernel, nm, vigneshr On Thu, Mar 28, 2024 at 04:49:07PM +0530, Dhruva Gole wrote: > On Mar 27, 2024 at 10:15:05 +0200, Tony Lindgren wrote: > > 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-2012 Texas Instruments, Inc. > > +Nishant > > I am no expert on the copyrights part of it, but who gets copyright from > 2012 - 2017? If there are no changes in those years, what exactly are you attempting to copyright for those years? Please talk to your corporate copyright lawyers about this. I'm sure there is a class you can take from them to explain all of this. If not, there's a free one online from the Linux Foundation that you might want to take instead. thanks, greg k-h ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 2/5] bus: ti-sysc: Add a description and copyrights 2024-03-28 11:36 ` Greg Kroah-Hartman @ 2024-03-28 11:47 ` Dhruva Gole 0 siblings, 0 replies; 13+ messages in thread From: Dhruva Gole @ 2024-03-28 11:47 UTC (permalink / raw) To: Greg Kroah-Hartman; +Cc: Tony Lindgren, linux-omap, linux-kernel, nm, vigneshr On Mar 28, 2024 at 12:36:22 +0100, Greg Kroah-Hartman wrote: > On Thu, Mar 28, 2024 at 04:49:07PM +0530, Dhruva Gole wrote: > > On Mar 27, 2024 at 10:15:05 +0200, Tony Lindgren wrote: > > > 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-2012 Texas Instruments, Inc. > > > > +Nishant > > > > I am no expert on the copyrights part of it, but who gets copyright from > > 2012 - 2017? > > If there are no changes in those years, what exactly are you attempting > to copyright for those years? Oops, should've checked git log. I think 2017 makes sense then. However the 2011-2012 copyright format comment still stands. > > Please talk to your corporate copyright lawyers about this. I'm sure > there is a class you can take from them to explain all of this. If not, > there's a free one online from the Linux Foundation that you might want > to take instead. Thanks, will take a look! -- Best regards, Dhruva Gole <d-gole@ti.com> ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 2/5] bus: ti-sysc: Add a description and copyrights 2024-03-28 11:19 ` Dhruva Gole 2024-03-28 11:36 ` Greg Kroah-Hartman @ 2024-03-28 11:38 ` Tony Lindgren 1 sibling, 0 replies; 13+ messages in thread From: Tony Lindgren @ 2024-03-28 11:38 UTC (permalink / raw) To: Dhruva Gole; +Cc: linux-omap, Greg Kroah-Hartman, linux-kernel, nm, vigneshr * Dhruva Gole <d-gole@ti.com> [240328 11:19]: > On Mar 27, 2024 at 10:15:05 +0200, Tony Lindgren wrote: > > 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-2012 Texas Instruments, Inc. > > +Nishant > > I am no expert on the copyrights part of it, but who gets copyright from > 2012 - 2017? Well this particular driver did not exist until 2017 :) But for the earlier hwmod arch code reference above, we could make it 2011-2024. > Also, for TI should we stick to this format as you did above? > Copyright (C) 2011-2024 Texas Instruments Incorporated > perhaps? Sure that works for me. > But otherwise, > Reviewed-by: Dhruva Gole <d-gole@ti.com> Thanks, Tony ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 3/5] bus: ti-sysc: Drop legacy quirk handling for uarts 2024-03-27 8:15 [PATCH 0/5] Updates for ti-sysc interconnect target driver Tony Lindgren 2024-03-27 8:15 ` [PATCH 1/5] bus: ti-sysc: Move check for no-reset-on-init Tony Lindgren 2024-03-27 8:15 ` [PATCH 2/5] bus: ti-sysc: Add a description and copyrights Tony Lindgren @ 2024-03-27 8:15 ` Tony Lindgren 2024-03-27 8:15 ` [PATCH 4/5] bus: ti-sysc: Drop legacy quirk handling for smartreflex Tony Lindgren 2024-03-27 8:15 ` [PATCH 5/5] bus: ti-sysc: Drop legacy idle quirk handling Tony Lindgren 4 siblings, 0 replies; 13+ messages in thread From: Tony Lindgren @ 2024-03-27 8:15 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] 13+ messages in thread
* [PATCH 4/5] bus: ti-sysc: Drop legacy quirk handling for smartreflex 2024-03-27 8:15 [PATCH 0/5] Updates for ti-sysc interconnect target driver Tony Lindgren ` (2 preceding siblings ...) 2024-03-27 8:15 ` [PATCH 3/5] bus: ti-sysc: Drop legacy quirk handling for uarts Tony Lindgren @ 2024-03-27 8:15 ` Tony Lindgren 2024-03-28 11:23 ` Dhruva Gole 2024-03-27 8:15 ` [PATCH 5/5] bus: ti-sysc: Drop legacy idle quirk handling Tony Lindgren 4 siblings, 1 reply; 13+ messages in thread From: Tony Lindgren @ 2024-03-27 8:15 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. 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] 13+ messages in thread
* Re: [PATCH 4/5] bus: ti-sysc: Drop legacy quirk handling for smartreflex 2024-03-27 8:15 ` [PATCH 4/5] bus: ti-sysc: Drop legacy quirk handling for smartreflex Tony Lindgren @ 2024-03-28 11:23 ` Dhruva Gole 2024-03-28 11:34 ` Tony Lindgren 0 siblings, 1 reply; 13+ messages in thread From: Dhruva Gole @ 2024-03-28 11:23 UTC (permalink / raw) To: Tony Lindgren; +Cc: linux-omap, Greg Kroah-Hartman, linux-kernel Hi, On Mar 27, 2024 at 10:15:07 +0200, Tony Lindgren wrote: > With the smartreflex driver no longer relying on the use of > pm_runtime_irq_safe(), we can finally drop the related legacy quirk > handling. Just for some more context can you describe from which commit of smartreflex driver did this happen? > > 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, I'm good with the changes, Reviewed-by: Dhruva Gole <d-gole@ti.com> -- Best regards, Dhruva ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 4/5] bus: ti-sysc: Drop legacy quirk handling for smartreflex 2024-03-28 11:23 ` Dhruva Gole @ 2024-03-28 11:34 ` Tony Lindgren 0 siblings, 0 replies; 13+ messages in thread From: Tony Lindgren @ 2024-03-28 11:34 UTC (permalink / raw) To: Dhruva Gole; +Cc: linux-omap, Greg Kroah-Hartman, linux-kernel * Dhruva Gole <d-gole@ti.com> [240328 11:23]: > Hi, > > On Mar 27, 2024 at 10:15:07 +0200, Tony Lindgren wrote: > > With the smartreflex driver no longer relying on the use of > > pm_runtime_irq_safe(), we can finally drop the related legacy quirk > > handling. > > Just for some more context can you describe from which commit of > smartreflex driver did this happen? That happened earlier with commit ed4520d6a10b ("soc: ti: Remove pm_runtime_irq_safe() usage for smartreflex"). Regards, Tony ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 5/5] bus: ti-sysc: Drop legacy idle quirk handling 2024-03-27 8:15 [PATCH 0/5] Updates for ti-sysc interconnect target driver Tony Lindgren ` (3 preceding siblings ...) 2024-03-27 8:15 ` [PATCH 4/5] bus: ti-sysc: Drop legacy quirk handling for smartreflex Tony Lindgren @ 2024-03-27 8:15 ` Tony Lindgren 2024-03-28 11:28 ` Dhruva Gole 4 siblings, 1 reply; 13+ messages in thread From: Tony Lindgren @ 2024-03-27 8:15 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. 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] 13+ messages in thread
* Re: [PATCH 5/5] bus: ti-sysc: Drop legacy idle quirk handling 2024-03-27 8:15 ` [PATCH 5/5] bus: ti-sysc: Drop legacy idle quirk handling Tony Lindgren @ 2024-03-28 11:28 ` Dhruva Gole 0 siblings, 0 replies; 13+ messages in thread From: Dhruva Gole @ 2024-03-28 11:28 UTC (permalink / raw) To: Tony Lindgren; +Cc: linux-omap, Greg Kroah-Hartman, linux-kernel Hi, On Mar 27, 2024 at 10:15:08 +0200, Tony Lindgren wrote: > 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. > > 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(-) > looks much cleaner :) Reviewed-by: Dhruva Gole <d-gole@ti.com> -- Best regards, Dhruva ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2024-03-28 11:47 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-03-27 8:15 [PATCH 0/5] Updates for ti-sysc interconnect target driver Tony Lindgren 2024-03-27 8:15 ` [PATCH 1/5] bus: ti-sysc: Move check for no-reset-on-init Tony Lindgren 2024-03-27 8:15 ` [PATCH 2/5] bus: ti-sysc: Add a description and copyrights Tony Lindgren 2024-03-28 11:19 ` Dhruva Gole 2024-03-28 11:36 ` Greg Kroah-Hartman 2024-03-28 11:47 ` Dhruva Gole 2024-03-28 11:38 ` Tony Lindgren 2024-03-27 8:15 ` [PATCH 3/5] bus: ti-sysc: Drop legacy quirk handling for uarts Tony Lindgren 2024-03-27 8:15 ` [PATCH 4/5] bus: ti-sysc: Drop legacy quirk handling for smartreflex Tony Lindgren 2024-03-28 11:23 ` Dhruva Gole 2024-03-28 11:34 ` Tony Lindgren 2024-03-27 8:15 ` [PATCH 5/5] bus: ti-sysc: Drop legacy idle quirk handling Tony Lindgren 2024-03-28 11:28 ` Dhruva Gole
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox