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@xxxxxxxxx> > Closes: https://lore.kernel.org/oe-kbuild-all/202502120809.XfmcqkBD-lkp@xxxxxxxxx/ > Signed-off-by: Gustavo Sousa <gustavo.sousa@xxxxxxxxx> > --- > 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