mbox series

[v2,0/3] arch/powerpc: Resolve backlight include dependencies

Message ID 20240305090910.26742-1-tzimmermann@suse.de
Headers show
Series arch/powerpc: Resolve backlight include dependencies | expand

Message

Thomas Zimmermann March 5, 2024, 9 a.m. UTC
After cleaning up <linux/fb.h> in commit 11b4eedfc87d ("fbdev: Do
not include <linux/backlight.h> in header"), building with
CONFIG_PMAC_BACKLIGHT=y returns errors about missing declarations.
Patches 1 and 2 resolve the errors. Patch 1 has been reviewed at [1].
Patch 3 removes another dependency between backlight and fbdev code.

Compile tested with ppc6xx_defconfig.

v2:
	* via-pmu-backlight: fix build errors
	* powerpc: resolve dependency between fbdev and backlight

[1] https://patchwork.freedesktop.org/series/130661/

Thomas Zimmermann (3):
  fbdev/chipsfb: Include <linux/backlight.h>
  macintosh/via-pmu-backlight: Include <linux/backlight.h>
  arch/powerpc: Remove <linux/fb.h> from backlight code

 arch/powerpc/include/asm/backlight.h        |  5 ++--
 arch/powerpc/platforms/powermac/backlight.c | 26 ---------------------
 drivers/macintosh/via-pmu-backlight.c       |  1 +
 drivers/video/fbdev/chipsfb.c               |  1 +
 4 files changed, 4 insertions(+), 29 deletions(-)

Comments

Jani Nikula March 5, 2024, 9:15 a.m. UTC | #1
On Tue, 05 Mar 2024, Thomas Zimmermann <tzimmermann@suse.de> wrote:
> Replace <linux/fb.h> with a forward declaration in <asm/backlight.h> to
> resolves an unnecessary dependency. Remove pmac_backlight_curve_lookup()

*resolve

> and struct fb_info from source and header files. The function and the
> framebuffer struct is unused. No functional changes.

*are

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

>
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> ---
>  arch/powerpc/include/asm/backlight.h        |  5 ++--
>  arch/powerpc/platforms/powermac/backlight.c | 26 ---------------------
>  2 files changed, 2 insertions(+), 29 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/backlight.h b/arch/powerpc/include/asm/backlight.h
> index 1b5eab62ed047..061a910d74929 100644
> --- a/arch/powerpc/include/asm/backlight.h
> +++ b/arch/powerpc/include/asm/backlight.h
> @@ -10,15 +10,14 @@
>  #define __ASM_POWERPC_BACKLIGHT_H
>  #ifdef __KERNEL__
>  
> -#include <linux/fb.h>
>  #include <linux/mutex.h>
>  
> +struct backlight_device;
> +
>  /* For locking instructions, see the implementation file */
>  extern struct backlight_device *pmac_backlight;
>  extern struct mutex pmac_backlight_mutex;
>  
> -extern int pmac_backlight_curve_lookup(struct fb_info *info, int value);
> -
>  extern int pmac_has_backlight_type(const char *type);
>  
>  extern void pmac_backlight_key(int direction);
> diff --git a/arch/powerpc/platforms/powermac/backlight.c b/arch/powerpc/platforms/powermac/backlight.c
> index aeb79a8b3e109..12bc01353bd3c 100644
> --- a/arch/powerpc/platforms/powermac/backlight.c
> +++ b/arch/powerpc/platforms/powermac/backlight.c
> @@ -9,7 +9,6 @@
>   */
>  
>  #include <linux/kernel.h>
> -#include <linux/fb.h>
>  #include <linux/backlight.h>
>  #include <linux/adb.h>
>  #include <linux/pmu.h>
> @@ -72,31 +71,6 @@ int pmac_has_backlight_type(const char *type)
>  	return 0;
>  }
>  
> -int pmac_backlight_curve_lookup(struct fb_info *info, int value)
> -{
> -	int level = (FB_BACKLIGHT_LEVELS - 1);
> -
> -	if (info && info->bl_dev) {
> -		int i, max = 0;
> -
> -		/* Look for biggest value */
> -		for (i = 0; i < FB_BACKLIGHT_LEVELS; i++)
> -			max = max((int)info->bl_curve[i], max);
> -
> -		/* Look for nearest value */
> -		for (i = 0; i < FB_BACKLIGHT_LEVELS; i++) {
> -			int diff = abs(info->bl_curve[i] - value);
> -			if (diff < max) {
> -				max = diff;
> -				level = i;
> -			}
> -		}
> -
> -	}
> -
> -	return level;
> -}
> -
>  static void pmac_backlight_key_worker(struct work_struct *work)
>  {
>  	if (atomic_read(&kernel_backlight_disabled))
Christophe Leroy March 5, 2024, 10:06 a.m. UTC | #2
Le 05/03/2024 à 11:04, Thomas Zimmermann a écrit :
> Hi
> 
> Am 05.03.24 um 10:25 schrieb Christophe Leroy:
>>
>> Le 05/03/2024 à 10:01, Thomas Zimmermann a écrit :
>>> Replace <linux/fb.h> with a forward declaration in <asm/backlight.h> to
>>> resolves an unnecessary dependency. Remove pmac_backlight_curve_lookup()
>>> and struct fb_info from source and header files. The function and the
>>> framebuffer struct is unused. No functional changes.
>> When you remove pmac_backlight_curve_lookup() prototype you'll then get
>> a warning/error about missing prototype when building
>> arch/powerpc/platforms/powermac/backlight.c
>>
>> The fonction is not used outside of that file so it should be static.
>> And then it is not used in that file either so it should be removed
>> completely. Indeed last use of that function was removed by commit
>> d565dd3b0824 ("[PATCH] powerpc: More via-pmu backlight fixes") so the
>> function can safely be removed.
> 
> Isn't that what my patch is doing? I have no callers of the function in 
> my tree (drm-tip), so I removed it entirely. Should I add a Fixes tag 
> against commit d565dd3b0824? Best regards Thomas

Sorry I overlooked your patch and focussed on the removal of the 
prototype and missed the removal of the function.

Christophe

>>
>> Christophe
>>
>>> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
>>> ---
>>>    arch/powerpc/include/asm/backlight.h        |  5 ++--
>>>    arch/powerpc/platforms/powermac/backlight.c | 26 
>>> ---------------------
>>>    2 files changed, 2 insertions(+), 29 deletions(-)
>>>
>>> diff --git a/arch/powerpc/include/asm/backlight.h 
>>> b/arch/powerpc/include/asm/backlight.h
>>> index 1b5eab62ed047..061a910d74929 100644
>>> --- a/arch/powerpc/include/asm/backlight.h
>>> +++ b/arch/powerpc/include/asm/backlight.h
>>> @@ -10,15 +10,14 @@
>>>    #define __ASM_POWERPC_BACKLIGHT_H
>>>    #ifdef __KERNEL__
>>> -#include <linux/fb.h>
>>>    #include <linux/mutex.h>
>>> +struct backlight_device;
>>> +
>>>    /* For locking instructions, see the implementation file */
>>>    extern struct backlight_device *pmac_backlight;
>>>    extern struct mutex pmac_backlight_mutex;
>>> -extern int pmac_backlight_curve_lookup(struct fb_info *info, int 
>>> value);
>>> -
>>>    extern int pmac_has_backlight_type(const char *type);
>>>    extern void pmac_backlight_key(int direction);
>>> diff --git a/arch/powerpc/platforms/powermac/backlight.c 
>>> b/arch/powerpc/platforms/powermac/backlight.c
>>> index aeb79a8b3e109..12bc01353bd3c 100644
>>> --- a/arch/powerpc/platforms/powermac/backlight.c
>>> +++ b/arch/powerpc/platforms/powermac/backlight.c
>>> @@ -9,7 +9,6 @@
>>>     */
>>>    #include <linux/kernel.h>
>>> -#include <linux/fb.h>
>>>    #include <linux/backlight.h>
>>>    #include <linux/adb.h>
>>>    #include <linux/pmu.h>
>>> @@ -72,31 +71,6 @@ int pmac_has_backlight_type(const char *type)
>>>        return 0;
>>>    }
>>> -int pmac_backlight_curve_lookup(struct fb_info *info, int value)
>>> -{
>>> -    int level = (FB_BACKLIGHT_LEVELS - 1);
>>> -
>>> -    if (info && info->bl_dev) {
>>> -        int i, max = 0;
>>> -
>>> -        /* Look for biggest value */
>>> -        for (i = 0; i < FB_BACKLIGHT_LEVELS; i++)
>>> -            max = max((int)info->bl_curve[i], max);
>>> -
>>> -        /* Look for nearest value */
>>> -        for (i = 0; i < FB_BACKLIGHT_LEVELS; i++) {
>>> -            int diff = abs(info->bl_curve[i] - value);
>>> -            if (diff < max) {
>>> -                max = diff;
>>> -                level = i;
>>> -            }
>>> -        }
>>> -
>>> -    }
>>> -
>>> -    return level;
>>> -}
>>> -
>>>    static void pmac_backlight_key_worker(struct work_struct *work)
>>>    {
>>>        if (atomic_read(&kernel_backlight_disabled))
>