2024-03-27 08:15:55

by Tony Lindgren

[permalink] [raw]
Subject: [PATCH 0/5] Updates for ti-sysc interconnect target driver

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


2024-03-27 08:16:08

by Tony Lindgren

[permalink] [raw]
Subject: [PATCH 1/5] bus: ti-sysc: Move check for no-reset-on-init

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

2024-03-27 08:16:21

by Tony Lindgren

[permalink] [raw]
Subject: [PATCH 2/5] bus: ti-sysc: Add a description and copyrights

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

2024-03-27 08:16:35

by Tony Lindgren

[permalink] [raw]
Subject: [PATCH 3/5] bus: ti-sysc: Drop legacy quirk handling for uarts

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

2024-03-27 08:16:48

by Tony Lindgren

[permalink] [raw]
Subject: [PATCH 4/5] bus: ti-sysc: Drop legacy quirk handling for smartreflex

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

2024-03-27 10:45:00

by Tony Lindgren

[permalink] [raw]
Subject: [PATCH 5/5] bus: ti-sysc: Drop legacy idle quirk handling

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

2024-03-28 11:24:08

by Dhruva Gole

[permalink] [raw]
Subject: Re: [PATCH 4/5] bus: ti-sysc: Drop legacy quirk handling for smartreflex

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

2024-03-28 11:25:46

by Dhruva Gole

[permalink] [raw]
Subject: Re: [PATCH 2/5] bus: ti-sysc: Add a description and copyrights

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

2024-03-28 11:29:27

by Dhruva Gole

[permalink] [raw]
Subject: Re: [PATCH 5/5] bus: ti-sysc: Drop legacy idle quirk handling

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

2024-03-28 11:38:30

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 2/5] bus: ti-sysc: Add a description and copyrights

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

2024-03-28 11:39:10

by Tony Lindgren

[permalink] [raw]
Subject: Re: [PATCH 2/5] bus: ti-sysc: Add a description and copyrights

* 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

2024-03-28 11:56:57

by Dhruva Gole

[permalink] [raw]
Subject: Re: [PATCH 2/5] bus: ti-sysc: Add a description and copyrights

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]>

2024-03-28 12:41:39

by Tony Lindgren

[permalink] [raw]
Subject: Re: [PATCH 4/5] bus: ti-sysc: Drop legacy quirk handling for smartreflex

* 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