diff options
| author | Gustavo Sousa <gustavo.sousa@intel.com> | 2025-02-27 18:09:12 -0300 | 
|---|---|---|
| committer | Gustavo Sousa <gustavo.sousa@intel.com> | 2025-02-28 13:30:57 -0300 | 
| commit | 322ec93e9081d717fbc02c14fe80f754709e8b9c (patch) | |
| tree | 7eef9fca31f08939595ac101b65b548c2ab3ecef | |
| parent | 2c2e7170a750506ed9e1d28e225b647a6563fb3c (diff) | |
drm/i915/display: Use explicit base values in POWER_DOMAIN_*() macros
Although we have comments in intel_display_limits.h saying that the
code expects PIPE_A and TRANSCODER_A to be zero, it doesn't hurt to add
them as explicit base values for calculating the power domain offset in
POWER_DOMAIN_*() macros.
On the plus side, we have that this:
 * Fixes a warning reported by kernel test robot <lkp@intel.com>
   about doing arithmetic with two different enum types.
 * Makes the code arguably more robust (in the unlikely event of those
   bases becoming non-zero).
v2:
  - Prefer using explicit base values instead of simply casting the
    macro argument to int. (Ville)
  - Update commit message to match the new approach (for reference, the
    old message subject was "drm/i915/display: Use explicit cast in
    POWER_DOMAIN_*() macros").
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202502120809.XfmcqkBD-lkp@intel.com/
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250227-improve-type-safey-power-domain-macros-v3-1-b6eaa00f9c33@intel.com
Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com>
| -rw-r--r-- | drivers/gpu/drm/i915/display/intel_display_power.h | 6 | 
1 files 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..4ad35bd4b040 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) ((pipe) - PIPE_A + POWER_DOMAIN_PIPE_A)  #define POWER_DOMAIN_PIPE_PANEL_FITTER(pipe) \ -		((pipe) + POWER_DOMAIN_PIPE_PANEL_FITTER_A) +		((pipe) - PIPE_A + POWER_DOMAIN_PIPE_PANEL_FITTER_A)  #define POWER_DOMAIN_TRANSCODER(tran) \  	((tran) == TRANSCODER_EDP ? POWER_DOMAIN_TRANSCODER_EDP : \ -	 (tran) + POWER_DOMAIN_TRANSCODER_A) +	 (tran) - TRANSCODER_A + POWER_DOMAIN_TRANSCODER_A)  struct intel_power_domain_mask {  	DECLARE_BITMAP(bits, POWER_DOMAIN_NUM);  | 
