2024-03-06 11:37:24

by Ricardo B. Marliere

[permalink] [raw]
Subject: [PATCH 0/2] video: backlight: constify struct class usage

This is a simple and straight forward cleanup series that aims to make the
class structures in backlight constant. This has been possible since 2023
[1].

[1]: https://lore.kernel.org/all/2023040248-customary-release-4aec@gregkh/

Signed-off-by: Ricardo B. Marliere <[email protected]>
---
Ricardo B. Marliere (2):
video: backlight: make backlight_class constant
video: backlight: lcd: make lcd_class constant

drivers/video/backlight/backlight.c | 29 ++++++++++++++++-------------
drivers/video/backlight/lcd.c | 23 +++++++++++++----------
2 files changed, 29 insertions(+), 23 deletions(-)
---
base-commit: cd1995b6ac7384149ad755b74e3c3eb25195ab81
change-id: 20240305-class_cleanup-backlight-62b91c38005e

Best regards,
--
Ricardo B. Marliere <[email protected]>



2024-03-06 11:50:52

by Ricardo B. Marliere

[permalink] [raw]
Subject: [PATCH 1/2] video: backlight: make backlight_class constant

Since commit 43a7206b0963 ("driver core: class: make class_register() take
a const *"), the driver core allows for struct class to be in read-only
memory, so move the backlight_class structure to be declared at build time
placing it into read-only memory, instead of having to be dynamically
allocated at boot time.

Cc: Greg Kroah-Hartman <[email protected]>
Suggested-by: Greg Kroah-Hartman <[email protected]>
Signed-off-by: Ricardo B. Marliere <[email protected]>
---
drivers/video/backlight/backlight.c | 29 ++++++++++++++++-------------
1 file changed, 16 insertions(+), 13 deletions(-)

diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
index 86e1cdc8e369..d2feaebfd84a 100644
--- a/drivers/video/backlight/backlight.c
+++ b/drivers/video/backlight/backlight.c
@@ -317,8 +317,6 @@ static ssize_t scale_show(struct device *dev,
}
static DEVICE_ATTR_RO(scale);

-static struct class *backlight_class;
-
#ifdef CONFIG_PM_SLEEP
static int backlight_suspend(struct device *dev)
{
@@ -369,6 +367,12 @@ static struct attribute *bl_device_attrs[] = {
};
ATTRIBUTE_GROUPS(bl_device);

+static const struct class backlight_class = {
+ .name = "backlight",
+ .dev_groups = bl_device_groups,
+ .pm = &backlight_class_dev_pm_ops,
+};
+
/**
* backlight_force_update - tell the backlight subsystem that hardware state
* has changed
@@ -418,7 +422,7 @@ struct backlight_device *backlight_device_register(const char *name,
mutex_init(&new_bd->update_lock);
mutex_init(&new_bd->ops_lock);

- new_bd->dev.class = backlight_class;
+ new_bd->dev.class = &backlight_class;
new_bd->dev.parent = parent;
new_bd->dev.release = bl_device_release;
dev_set_name(&new_bd->dev, "%s", name);
@@ -510,7 +514,7 @@ struct backlight_device *backlight_device_get_by_name(const char *name)
{
struct device *dev;

- dev = class_find_device_by_name(backlight_class, name);
+ dev = class_find_device_by_name(&backlight_class, name);

return dev ? to_backlight_device(dev) : NULL;
}
@@ -678,7 +682,7 @@ struct backlight_device *of_find_backlight_by_node(struct device_node *node)
{
struct device *dev;

- dev = class_find_device(backlight_class, NULL, node, of_parent_match);
+ dev = class_find_device(&backlight_class, NULL, node, of_parent_match);

return dev ? to_backlight_device(dev) : NULL;
}
@@ -746,20 +750,19 @@ EXPORT_SYMBOL(devm_of_find_backlight);

static void __exit backlight_class_exit(void)
{
- class_destroy(backlight_class);
+ class_unregister(&backlight_class);
}

static int __init backlight_class_init(void)
{
- backlight_class = class_create("backlight");
- if (IS_ERR(backlight_class)) {
- pr_warn("Unable to create backlight class; errno = %ld\n",
- PTR_ERR(backlight_class));
- return PTR_ERR(backlight_class);
+ int ret;
+
+ ret = class_register(&backlight_class);
+ if (ret) {
+ pr_warn("Unable to create backlight class; errno = %d\n", ret);
+ return ret;
}

- backlight_class->dev_groups = bl_device_groups;
- backlight_class->pm = &backlight_class_dev_pm_ops;
INIT_LIST_HEAD(&backlight_dev_list);
mutex_init(&backlight_dev_list_mutex);
BLOCKING_INIT_NOTIFIER_HEAD(&backlight_notifier);

--
2.43.0


2024-03-07 11:26:54

by Ricardo B. Marliere

[permalink] [raw]
Subject: [PATCH 2/2] video: backlight: lcd: make lcd_class constant

Since commit 43a7206b0963 ("driver core: class: make class_register() take
a const *"), the driver core allows for struct class to be in read-only
memory, so move the lcd_class structure to be declared at build time
placing it into read-only memory, instead of having to be dynamically
allocated at boot time.

Cc: Greg Kroah-Hartman <[email protected]>
Suggested-by: Greg Kroah-Hartman <[email protected]>
Signed-off-by: Ricardo B. Marliere <[email protected]>
---
drivers/video/backlight/lcd.c | 23 +++++++++++++----------
1 file changed, 13 insertions(+), 10 deletions(-)

diff --git a/drivers/video/backlight/lcd.c b/drivers/video/backlight/lcd.c
index 77c5cb2a44e2..ba4771cbd781 100644
--- a/drivers/video/backlight/lcd.c
+++ b/drivers/video/backlight/lcd.c
@@ -159,8 +159,6 @@ static ssize_t max_contrast_show(struct device *dev,
}
static DEVICE_ATTR_RO(max_contrast);

-static struct class *lcd_class;
-
static void lcd_device_release(struct device *dev)
{
struct lcd_device *ld = to_lcd_device(dev);
@@ -175,6 +173,11 @@ static struct attribute *lcd_device_attrs[] = {
};
ATTRIBUTE_GROUPS(lcd_device);

+static const struct class lcd_class = {
+ .name = "lcd",
+ .dev_groups = lcd_device_groups,
+};
+
/**
* lcd_device_register - register a new object of lcd_device class.
* @name: the name of the new object(must be the same as the name of the
@@ -202,7 +205,7 @@ struct lcd_device *lcd_device_register(const char *name, struct device *parent,
mutex_init(&new_ld->ops_lock);
mutex_init(&new_ld->update_lock);

- new_ld->dev.class = lcd_class;
+ new_ld->dev.class = &lcd_class;
new_ld->dev.parent = parent;
new_ld->dev.release = lcd_device_release;
dev_set_name(&new_ld->dev, "%s", name);
@@ -318,19 +321,19 @@ EXPORT_SYMBOL(devm_lcd_device_unregister);

static void __exit lcd_class_exit(void)
{
- class_destroy(lcd_class);
+ class_unregister(&lcd_class);
}

static int __init lcd_class_init(void)
{
- lcd_class = class_create("lcd");
- if (IS_ERR(lcd_class)) {
- pr_warn("Unable to create backlight class; errno = %ld\n",
- PTR_ERR(lcd_class));
- return PTR_ERR(lcd_class);
+ int ret;
+
+ ret = class_register(&lcd_class);
+ if (ret) {
+ pr_warn("Unable to create backlight class; errno = %d\n", ret);
+ return ret;
}

- lcd_class->dev_groups = lcd_device_groups;
return 0;
}


--
2.43.0


2024-03-25 19:55:37

by Daniel Thompson

[permalink] [raw]
Subject: Re: [PATCH 2/2] video: backlight: lcd: make lcd_class constant

On Tue, Mar 05, 2024 at 09:21:18AM -0300, Ricardo B. Marliere wrote:
> Since commit 43a7206b0963 ("driver core: class: make class_register() take
> a const *"), the driver core allows for struct class to be in read-only
> memory, so move the lcd_class structure to be declared at build time
> placing it into read-only memory, instead of having to be dynamically
> allocated at boot time.
>
> Cc: Greg Kroah-Hartman <[email protected]>
> Suggested-by: Greg Kroah-Hartman <[email protected]>
> Signed-off-by: Ricardo B. Marliere <[email protected]>

Reviewed-by: Daniel Thompson <[email protected]>


Daniel.

2024-03-25 22:03:31

by Daniel Thompson

[permalink] [raw]
Subject: Re: [PATCH 1/2] video: backlight: make backlight_class constant

On Tue, Mar 05, 2024 at 09:21:17AM -0300, Ricardo B. Marliere wrote:
> Since commit 43a7206b0963 ("driver core: class: make class_register() take
> a const *"), the driver core allows for struct class to be in read-only
> memory, so move the backlight_class structure to be declared at build time
> placing it into read-only memory, instead of having to be dynamically
> allocated at boot time.
>
> Cc: Greg Kroah-Hartman <[email protected]>
> Suggested-by: Greg Kroah-Hartman <[email protected]>
> Signed-off-by: Ricardo B. Marliere <[email protected]>

Reviewed-by: Daniel Thompson <[email protected]>


Daniel.

2024-03-28 11:41:49

by Lee Jones

[permalink] [raw]
Subject: Re: [PATCH 0/2] video: backlight: constify struct class usage

On Tue, 05 Mar 2024, Ricardo B. Marliere wrote:

> This is a simple and straight forward cleanup series that aims to make the
> class structures in backlight constant. This has been possible since 2023
> [1].
>
> [1]: https://lore.kernel.org/all/2023040248-customary-release-4aec@gregkh/
>
> Signed-off-by: Ricardo B. Marliere <[email protected]>
> ---
> Ricardo B. Marliere (2):
> video: backlight: make backlight_class constant
> video: backlight: lcd: make lcd_class constant
>
> drivers/video/backlight/backlight.c | 29 ++++++++++++++++-------------
> drivers/video/backlight/lcd.c | 23 +++++++++++++----------
> 2 files changed, 29 insertions(+), 23 deletions(-)

No longer apply.

Please rebase on top of v6.9-rc1 or for-backlight-next.

--
Lee Jones [李琼斯]

2024-03-28 12:01:17

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 0/2] video: backlight: constify struct class usage

On Thu, Mar 28, 2024 at 11:41:31AM +0000, Lee Jones wrote:
> On Tue, 05 Mar 2024, Ricardo B. Marliere wrote:
>
> > This is a simple and straight forward cleanup series that aims to make the
> > class structures in backlight constant. This has been possible since 2023
> > [1].
> >
> > [1]: https://lore.kernel.org/all/2023040248-customary-release-4aec@gregkh/
> >
> > Signed-off-by: Ricardo B. Marliere <[email protected]>
> > ---
> > Ricardo B. Marliere (2):
> > video: backlight: make backlight_class constant
> > video: backlight: lcd: make lcd_class constant
> >
> > drivers/video/backlight/backlight.c | 29 ++++++++++++++++-------------
> > drivers/video/backlight/lcd.c | 23 +++++++++++++----------
> > 2 files changed, 29 insertions(+), 23 deletions(-)
>
> No longer apply.
>
> Please rebase on top of v6.9-rc1 or for-backlight-next.

As I already had this in my local tree, I've sent out a v2 at:
https://lore.kernel.org/lkml/2024032805-putdown-mushy-a0f9@gregkh/

thanks,

greg k-h

2024-03-28 12:53:50

by Ricardo B. Marliere

[permalink] [raw]
Subject: Re: [PATCH 0/2] video: backlight: constify struct class usage

On 28 Mar 13:01, Greg Kroah-Hartman wrote:
> On Thu, Mar 28, 2024 at 11:41:31AM +0000, Lee Jones wrote:
> > On Tue, 05 Mar 2024, Ricardo B. Marliere wrote:
> >
> > > This is a simple and straight forward cleanup series that aims to make the
> > > class structures in backlight constant. This has been possible since 2023
> > > [1].
> > >
> > > [1]: https://lore.kernel.org/all/2023040248-customary-release-4aec@gregkh/
> > >
> > > Signed-off-by: Ricardo B. Marliere <[email protected]>
> > > ---
> > > Ricardo B. Marliere (2):
> > > video: backlight: make backlight_class constant
> > > video: backlight: lcd: make lcd_class constant
> > >
> > > drivers/video/backlight/backlight.c | 29 ++++++++++++++++-------------
> > > drivers/video/backlight/lcd.c | 23 +++++++++++++----------
> > > 2 files changed, 29 insertions(+), 23 deletions(-)
> >
> > No longer apply.
> >
> > Please rebase on top of v6.9-rc1 or for-backlight-next.
>
> As I already had this in my local tree, I've sent out a v2 at:
> https://lore.kernel.org/lkml/2024032805-putdown-mushy-a0f9@gregkh/

Thank you Greg. I will see what is left to be made const for -next.

>
> thanks,
>
> greg k-h

2024-03-28 16:58:31

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 0/2] video: backlight: constify struct class usage

On Thu, Mar 28, 2024 at 09:46:01AM -0300, Ricardo B. Marliere wrote:
> On 28 Mar 13:01, Greg Kroah-Hartman wrote:
> > On Thu, Mar 28, 2024 at 11:41:31AM +0000, Lee Jones wrote:
> > > On Tue, 05 Mar 2024, Ricardo B. Marliere wrote:
> > >
> > > > This is a simple and straight forward cleanup series that aims to make the
> > > > class structures in backlight constant. This has been possible since 2023
> > > > [1].
> > > >
> > > > [1]: https://lore.kernel.org/all/2023040248-customary-release-4aec@gregkh/
> > > >
> > > > Signed-off-by: Ricardo B. Marliere <[email protected]>
> > > > ---
> > > > Ricardo B. Marliere (2):
> > > > video: backlight: make backlight_class constant
> > > > video: backlight: lcd: make lcd_class constant
> > > >
> > > > drivers/video/backlight/backlight.c | 29 ++++++++++++++++-------------
> > > > drivers/video/backlight/lcd.c | 23 +++++++++++++----------
> > > > 2 files changed, 29 insertions(+), 23 deletions(-)
> > >
> > > No longer apply.
> > >
> > > Please rebase on top of v6.9-rc1 or for-backlight-next.
> >
> > As I already had this in my local tree, I've sent out a v2 at:
> > https://lore.kernel.org/lkml/2024032805-putdown-mushy-a0f9@gregkh/
>
> Thank you Greg. I will see what is left to be made const for -next.

Many of your patches were not picked up for -rc1, I'll be taking a bunch
of them into my tree "soon" as that usually means the subsystem isn't as
active.

thanks,

greg k-h

2024-03-28 17:43:36

by Ricardo B. Marliere

[permalink] [raw]
Subject: Re: [PATCH 0/2] video: backlight: constify struct class usage

On 28 Mar 17:49, Greg Kroah-Hartman wrote:
> On Thu, Mar 28, 2024 at 09:46:01AM -0300, Ricardo B. Marliere wrote:
> > On 28 Mar 13:01, Greg Kroah-Hartman wrote:
> > > On Thu, Mar 28, 2024 at 11:41:31AM +0000, Lee Jones wrote:
> > > > On Tue, 05 Mar 2024, Ricardo B. Marliere wrote:
> > > >
> > > > > This is a simple and straight forward cleanup series that aims to make the
> > > > > class structures in backlight constant. This has been possible since 2023
> > > > > [1].
> > > > >
> > > > > [1]: https://lore.kernel.org/all/2023040248-customary-release-4aec@gregkh/
> > > > >
> > > > > Signed-off-by: Ricardo B. Marliere <[email protected]>
> > > > > ---
> > > > > Ricardo B. Marliere (2):
> > > > > video: backlight: make backlight_class constant
> > > > > video: backlight: lcd: make lcd_class constant
> > > > >
> > > > > drivers/video/backlight/backlight.c | 29 ++++++++++++++++-------------
> > > > > drivers/video/backlight/lcd.c | 23 +++++++++++++----------
> > > > > 2 files changed, 29 insertions(+), 23 deletions(-)
> > > >
> > > > No longer apply.
> > > >
> > > > Please rebase on top of v6.9-rc1 or for-backlight-next.
> > >
> > > As I already had this in my local tree, I've sent out a v2 at:
> > > https://lore.kernel.org/lkml/2024032805-putdown-mushy-a0f9@gregkh/
> >
> > Thank you Greg. I will see what is left to be made const for -next.
>
> Many of your patches were not picked up for -rc1, I'll be taking a bunch
> of them into my tree "soon" as that usually means the subsystem isn't as
> active.

Yup, I was keeping them in my inbox so as to resend but if you could
pick them that would be great!

Cheers,

>
> thanks,
>
> greg k-h