diff mbox

[v3,1/4] platform/x86: fujitsu-laptop: register backlight device in a separate function

Message ID 20170307101516.9852-2-kernel@kempniu.pl (mailing list archive)
State Superseded, archived
Headers show

Commit Message

Michał Kępień March 7, 2017, 10:15 a.m. UTC
Move code responsible for backlight device registration to a separate
function in order to simplify error handling and decrease indentation.
Simplify initialization of struct backlight_properties.  Use
KBUILD_MODNAME as device name to avoid repeating the same string literal
throughout the module.

Signed-off-by: Michał Kępień <kernel@kempniu.pl>
---
 drivers/platform/x86/fujitsu-laptop.c | 38 ++++++++++++++++++++---------------
 1 file changed, 22 insertions(+), 16 deletions(-)

Comments

Michał Kępień March 10, 2017, 9:08 a.m. UTC | #1
> Move code responsible for backlight device registration to a separate
> function in order to simplify error handling and decrease indentation.
> Simplify initialization of struct backlight_properties.  Use
> KBUILD_MODNAME as device name to avoid repeating the same string literal
> throughout the module.
> 
> Signed-off-by: Michał Kępień <kernel@kempniu.pl>
> ---
>  drivers/platform/x86/fujitsu-laptop.c | 38 ++++++++++++++++++++---------------
>  1 file changed, 22 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/platform/x86/fujitsu-laptop.c b/drivers/platform/x86/fujitsu-laptop.c
> index e12cc3504d48..185c929898d9 100644
> --- a/drivers/platform/x86/fujitsu-laptop.c
> +++ b/drivers/platform/x86/fujitsu-laptop.c
> @@ -685,6 +685,25 @@ static const struct dmi_system_id fujitsu_dmi_table[] __initconst = {
>  
>  /* ACPI device for LCD brightness control */
>  
> +static int fujitsu_backlight_register(void)
> +{
> +	struct backlight_properties props = {
> +		.brightness = fujitsu_bl->brightness_level,
> +		.max_brightness = fujitsu_bl->max_brightness - 1,
> +		.type = BACKLIGHT_PLATFORM
> +	};
> +	struct backlight_device *bd;
> +
> +	bd = backlight_device_register(KBUILD_MODNAME, NULL, NULL,
> +				       &fujitsu_bl_ops, &props);

I have only just now noticed that this effectively breaks userspace
interface as KBUILD_MODNAME is "fujitsu_laptop" while the previously
used device name was "fujitsu-laptop" (underscore vs. hyphen).

Jonathan, as this series is already long overdue, I suggest the
following course of action: please review these patches anyway and if
you find no other issues, please provide your Reviewed-by etc. as you
normally would.  Once you do that, I will post v4 which will use
"fujitsu-laptop" for backlight device name and will contain your v3
review tags.  Does that sound reasonable?
Jonathan Woithe March 10, 2017, 10:42 a.m. UTC | #2
Hi Michael

On Fri, Mar 10, 2017 at 10:08:49AM +0100, Micha?? K??pie?? wrote:
> > Move code responsible for backlight device registration to a separate
> > function in order to simplify error handling and decrease indentation.
> > Simplify initialization of struct backlight_properties.  Use
> > KBUILD_MODNAME as device name to avoid repeating the same string literal
> > throughout the module.
> > 
> > Signed-off-by: Micha?? K??pie?? <kernel@kempniu.pl>
> > ---
> >  drivers/platform/x86/fujitsu-laptop.c | 38 ++++++++++++++++++++---------------
> >  1 file changed, 22 insertions(+), 16 deletions(-)
> > 
> > diff --git a/drivers/platform/x86/fujitsu-laptop.c b/drivers/platform/x86/fujitsu-laptop.c
> > index e12cc3504d48..185c929898d9 100644
> > --- a/drivers/platform/x86/fujitsu-laptop.c
> > +++ b/drivers/platform/x86/fujitsu-laptop.c
> > @@ -685,6 +685,25 @@ static const struct dmi_system_id fujitsu_dmi_table[] __initconst = {
> >  
> >  /* ACPI device for LCD brightness control */
> >  
> > +static int fujitsu_backlight_register(void)
> > +{
> > +	struct backlight_properties props = {
> > +		.brightness = fujitsu_bl->brightness_level,
> > +		.max_brightness = fujitsu_bl->max_brightness - 1,
> > +		.type = BACKLIGHT_PLATFORM
> > +	};
> > +	struct backlight_device *bd;
> > +
> > +	bd = backlight_device_register(KBUILD_MODNAME, NULL, NULL,
> > +				       &fujitsu_bl_ops, &props);
> 
> I have only just now noticed that this effectively breaks userspace
> interface as KBUILD_MODNAME is "fujitsu_laptop" while the previously
> used device name was "fujitsu-laptop" (underscore vs. hyphen).

Ah yes, I noticed that too, as you see from the review I just sent through. 
Sorry, I didn't see the above post until after I'd sent the review in.  It's
no big deal though.

> Jonathan, as this series is already long overdue, I suggest the
> following course of action: please review these patches anyway and if
> you find no other issues, please provide your Reviewed-by etc. as you
> normally would.  Once you do that, I will post v4 which will use
> "fujitsu-laptop" for backlight device name and will contain your v3
> review tags.  Does that sound reasonable?

As per my review comments, I am happy with the patch series so long as the
backlight device name reverts to "fujitsu-laptop".  Your suggested course of
action sounds fine to me.  Alternatively, I could quickly and easily add
tags to a v4 post if that is seen to be more appropriate by Darren/Andy. 
I'm easy either way.

Regards
  jonathan
Michał Kępień March 10, 2017, 10:45 a.m. UTC | #3
> Hi Michael
> 
> On Fri, Mar 10, 2017 at 10:08:49AM +0100, Micha?? K??pie?? wrote:
> > > Move code responsible for backlight device registration to a separate
> > > function in order to simplify error handling and decrease indentation.
> > > Simplify initialization of struct backlight_properties.  Use
> > > KBUILD_MODNAME as device name to avoid repeating the same string literal
> > > throughout the module.
> > > 
> > > Signed-off-by: Micha?? K??pie?? <kernel@kempniu.pl>
> > > ---
> > >  drivers/platform/x86/fujitsu-laptop.c | 38 ++++++++++++++++++++---------------
> > >  1 file changed, 22 insertions(+), 16 deletions(-)
> > > 
> > > diff --git a/drivers/platform/x86/fujitsu-laptop.c b/drivers/platform/x86/fujitsu-laptop.c
> > > index e12cc3504d48..185c929898d9 100644
> > > --- a/drivers/platform/x86/fujitsu-laptop.c
> > > +++ b/drivers/platform/x86/fujitsu-laptop.c
> > > @@ -685,6 +685,25 @@ static const struct dmi_system_id fujitsu_dmi_table[] __initconst = {
> > >  
> > >  /* ACPI device for LCD brightness control */
> > >  
> > > +static int fujitsu_backlight_register(void)
> > > +{
> > > +	struct backlight_properties props = {
> > > +		.brightness = fujitsu_bl->brightness_level,
> > > +		.max_brightness = fujitsu_bl->max_brightness - 1,
> > > +		.type = BACKLIGHT_PLATFORM
> > > +	};
> > > +	struct backlight_device *bd;
> > > +
> > > +	bd = backlight_device_register(KBUILD_MODNAME, NULL, NULL,
> > > +				       &fujitsu_bl_ops, &props);
> > 
> > I have only just now noticed that this effectively breaks userspace
> > interface as KBUILD_MODNAME is "fujitsu_laptop" while the previously
> > used device name was "fujitsu-laptop" (underscore vs. hyphen).
> 
> Ah yes, I noticed that too, as you see from the review I just sent through. 
> Sorry, I didn't see the above post until after I'd sent the review in.  It's
> no big deal though.
> 
> > Jonathan, as this series is already long overdue, I suggest the
> > following course of action: please review these patches anyway and if
> > you find no other issues, please provide your Reviewed-by etc. as you
> > normally would.  Once you do that, I will post v4 which will use
> > "fujitsu-laptop" for backlight device name and will contain your v3
> > review tags.  Does that sound reasonable?
> 
> As per my review comments, I am happy with the patch series so long as the
> backlight device name reverts to "fujitsu-laptop".  Your suggested course of
> action sounds fine to me.  Alternatively, I could quickly and easily add
> tags to a v4 post if that is seen to be more appropriate by Darren/Andy. 
> I'm easy either way.

Sure, we can do it this way as well.  I will post v4 shortly.
diff mbox

Patch

diff --git a/drivers/platform/x86/fujitsu-laptop.c b/drivers/platform/x86/fujitsu-laptop.c
index e12cc3504d48..185c929898d9 100644
--- a/drivers/platform/x86/fujitsu-laptop.c
+++ b/drivers/platform/x86/fujitsu-laptop.c
@@ -685,6 +685,25 @@  static const struct dmi_system_id fujitsu_dmi_table[] __initconst = {
 
 /* ACPI device for LCD brightness control */
 
+static int fujitsu_backlight_register(void)
+{
+	struct backlight_properties props = {
+		.brightness = fujitsu_bl->brightness_level,
+		.max_brightness = fujitsu_bl->max_brightness - 1,
+		.type = BACKLIGHT_PLATFORM
+	};
+	struct backlight_device *bd;
+
+	bd = backlight_device_register(KBUILD_MODNAME, NULL, NULL,
+				       &fujitsu_bl_ops, &props);
+	if (IS_ERR(bd))
+		return PTR_ERR(bd);
+
+	fujitsu_bl->bl_device = bd;
+
+	return 0;
+}
+
 static int acpi_fujitsu_bl_add(struct acpi_device *device)
 {
 	int state = 0;
@@ -1192,7 +1211,7 @@  MODULE_DEVICE_TABLE(acpi, fujitsu_ids);
 
 static int __init fujitsu_init(void)
 {
-	int ret, max_brightness;
+	int ret;
 
 	if (acpi_disabled)
 		return -ENODEV;
@@ -1232,22 +1251,9 @@  static int __init fujitsu_init(void)
 	/* Register backlight stuff */
 
 	if (acpi_video_get_backlight_type() == acpi_backlight_vendor) {
-		struct backlight_properties props;
-
-		memset(&props, 0, sizeof(struct backlight_properties));
-		max_brightness = fujitsu_bl->max_brightness;
-		props.type = BACKLIGHT_PLATFORM;
-		props.max_brightness = max_brightness - 1;
-		fujitsu_bl->bl_device = backlight_device_register("fujitsu-laptop",
-								  NULL, NULL,
-								  &fujitsu_bl_ops,
-								  &props);
-		if (IS_ERR(fujitsu_bl->bl_device)) {
-			ret = PTR_ERR(fujitsu_bl->bl_device);
-			fujitsu_bl->bl_device = NULL;
+		ret = fujitsu_backlight_register();
+		if (ret)
 			goto fail_sysfs_group;
-		}
-		fujitsu_bl->bl_device->props.brightness = fujitsu_bl->brightness_level;
 	}
 
 	ret = platform_driver_register(&fujitsu_pf_driver);