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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Quoting Ville Syrjälä (2025-02-12 14:52:19-03:00)
>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?

Hm... That's a good idea; and I think it might avoid the warning indeed
(maybe we would need parentheses around (tran) - TRANSCODER_A).

>
>Maybe these should even be functions rather than macros?

Yeah. I actually considered this possibility, but went with the macros
to keep the change simple.

If that's welcome, I could go ahead with turning those macros into
static inline functions.

--
Gustavo Sousa

>
>>  
>>  struct intel_power_domain_mask {
>>          DECLARE_BITMAP(bits, POWER_DOMAIN_NUM);
>> -- 
>> 2.48.1
>
>-- 
>Ville Syrjälä
>Intel




[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux