[PATCH v2 1/2] drm/i915/display: Use explicit cast in POWER_DOMAIN_*() macros

Ville Syrjälä ville.syrjala at linux.intel.com
Wed Feb 12 17:52:19 UTC 2025


On Wed, Feb 12, 2025 at 02:43:16PM -0300, Gustavo Sousa wrote:
> Let the compiler know that we are intetionally using a different enum
> type to perform arithmetic with enum intel_display_power_domain in the
> POWER_DOMAIN_*(). Do that by explicitly casting the macro argument to
> int.
> 
> Reported-by: kernel test robot <lkp at intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202502120809.XfmcqkBD-lkp@intel.com/
> Signed-off-by: Gustavo Sousa <gustavo.sousa at intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_display_power.h | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display_power.h b/drivers/gpu/drm/i915/display/intel_display_power.h
> index a3a5c1be8bab..3caa3f517a32 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_power.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_power.h
> @@ -117,12 +117,12 @@ enum intel_display_power_domain {
>  	POWER_DOMAIN_INVALID = POWER_DOMAIN_NUM,
>  };
>  
> -#define POWER_DOMAIN_PIPE(pipe) ((pipe) + POWER_DOMAIN_PIPE_A)
> +#define POWER_DOMAIN_PIPE(pipe) ((int)(pipe) + POWER_DOMAIN_PIPE_A)
>  #define POWER_DOMAIN_PIPE_PANEL_FITTER(pipe) \
> -		((pipe) + POWER_DOMAIN_PIPE_PANEL_FITTER_A)
> +		((int)(pipe) + POWER_DOMAIN_PIPE_PANEL_FITTER_A)
>  #define POWER_DOMAIN_TRANSCODER(tran) \
>  	((tran) == TRANSCODER_EDP ? POWER_DOMAIN_TRANSCODER_EDP : \
> -	 (tran) + POWER_DOMAIN_TRANSCODER_A)
> +	 (int)(tran) + POWER_DOMAIN_TRANSCODER_A)

I've generally gone for the 
POWER_DOMAIN_TRANSCODER_A + (tran) - TRANSCODER_A
form for such things, to also make sure it works
even if TRANSCODER_A isn't 0 anymore.
Does that avoid the warning as well?

Maybe these should even be functions rather than macros?

>  
>  struct intel_power_domain_mask {
>  	DECLARE_BITMAP(bits, POWER_DOMAIN_NUM);
> -- 
> 2.48.1

-- 
Ville Syrjälä
Intel


More information about the Intel-xe mailing list