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
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 <[email protected]>
---
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
The ti-sysc driver is missing coprights and description, let's add
those.
Signed-off-by: Tony Lindgren <[email protected]>
---
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
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 <[email protected]>
---
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
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 <[email protected]>
---
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
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 <[email protected]>
---
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
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 <[email protected]>
> ---
> 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 <[email protected]>
--
Best regards,
Dhruva
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 <[email protected]>
> ---
> 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 <[email protected]>
--
Best regards,
Dhruva
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 <[email protected]>
> ---
> 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 <[email protected]>
--
Best regards,
Dhruva
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 <[email protected]>
> > ---
> > 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
* Dhruva Gole <[email protected]> [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 <[email protected]>
> > ---
> > 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 <[email protected]>
Thanks,
Tony
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 <[email protected]>
> > > ---
> > > 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 <[email protected]>
* Dhruva Gole <[email protected]> [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