Hi Suraj, kernel test robot noticed the following build warnings: [auto build test WARNING on drm-intel/for-linux-next] [also build test WARNING on next-20241106] [cannot apply to linus/master drm-intel/for-linux-next-fixes drm-tip/drm-tip v6.12-rc6] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Suraj-Kandpal/drm-i915-hdcp-Handle-HDCP-Line-Rekeying-for-HDCP-1-4/20241107-015848 base: git://anongit.freedesktop.org/drm-intel for-linux-next patch link: https://lore.kernel.org/r/20241106174041.860223-1-suraj.kandpal%40intel.com patch subject: [PATCH] drm/i915/hdcp: Handle HDCP Line Rekeying for HDCP 1.4 config: i386-defconfig (https://download.01.org/0day-ci/archive/20241107/202411070920.hut0uhH0-lkp@xxxxxxxxx/config) compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241107/202411070920.hut0uhH0-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202411070920.hut0uhH0-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): In file included from drivers/gpu/drm/i915/display/intel_hdcp.c:12: In file included from include/linux/i2c.h:19: In file included from include/linux/regulator/consumer.h:35: In file included from include/linux/suspend.h:5: In file included from include/linux/swap.h:9: In file included from include/linux/memcontrol.h:21: In file included from include/linux/mm.h:2213: include/linux/vmstat.h:518:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion] 518 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_" | ~~~~~~~~~~~ ^ ~~~ drivers/gpu/drm/i915/display/intel_hdcp.c:54:13: warning: variable 'rekey_bit' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized] 54 | } else if (IS_DISPLAY_VERx100_STEP(display, 1400, STEP_D0, STEP_FOREVER)) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/display/intel_display_device.h:211:2: note: expanded from macro 'IS_DISPLAY_VERx100_STEP' 211 | (IS_DISPLAY_VERx100((__i915), (ipver), (ipver)) && \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 212 | IS_DISPLAY_STEP((__i915), (from), (until))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/display/intel_hdcp.c:59:35: note: uninitialized use occurs here 59 | intel_de_rmw(display, rekey_reg, rekey_bit, enable ? 0 : rekey_bit); | ^~~~~~~~~ drivers/gpu/drm/i915/display/intel_de.h:109:67: note: expanded from macro 'intel_de_rmw' 109 | #define intel_de_rmw(p,...) __intel_de_rmw(__to_intel_display(p), __VA_ARGS__) | ^~~~~~~~~~~ drivers/gpu/drm/i915/display/intel_hdcp.c:54:9: note: remove the 'if' if its condition is always true 54 | } else if (IS_DISPLAY_VERx100_STEP(display, 1400, STEP_D0, STEP_FOREVER)) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/display/intel_hdcp.c:54:13: warning: variable 'rekey_bit' is used uninitialized whenever '&&' condition is false [-Wsometimes-uninitialized] 54 | } else if (IS_DISPLAY_VERx100_STEP(display, 1400, STEP_D0, STEP_FOREVER)) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/display/intel_display_device.h:211:3: note: expanded from macro 'IS_DISPLAY_VERx100_STEP' 211 | (IS_DISPLAY_VERx100((__i915), (ipver), (ipver)) && \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/display/intel_display_device.h:190:49: note: expanded from macro 'IS_DISPLAY_VERx100' 190 | #define IS_DISPLAY_VERx100(__i915, from, until) ( \ | ^~~ 191 | BUILD_BUG_ON_ZERO((from) < 200) + \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 192 | (DISPLAY_VERx100(__i915) >= (from) && \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 193 | DISPLAY_VERx100(__i915) <= (until))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/display/intel_hdcp.c:59:35: note: uninitialized use occurs here 59 | intel_de_rmw(display, rekey_reg, rekey_bit, enable ? 0 : rekey_bit); | ^~~~~~~~~ drivers/gpu/drm/i915/display/intel_de.h:109:67: note: expanded from macro 'intel_de_rmw' 109 | #define intel_de_rmw(p,...) __intel_de_rmw(__to_intel_display(p), __VA_ARGS__) | ^~~~~~~~~~~ drivers/gpu/drm/i915/display/intel_hdcp.c:54:13: note: remove the '&&' if its condition is always true 54 | } else if (IS_DISPLAY_VERx100_STEP(display, 1400, STEP_D0, STEP_FOREVER)) { | ^ drivers/gpu/drm/i915/display/intel_display_device.h:211:3: note: expanded from macro 'IS_DISPLAY_VERx100_STEP' 211 | (IS_DISPLAY_VERx100((__i915), (ipver), (ipver)) && \ | ^ drivers/gpu/drm/i915/display/intel_display_device.h:190:49: note: expanded from macro 'IS_DISPLAY_VERx100' 190 | #define IS_DISPLAY_VERx100(__i915, from, until) ( \ | ^ drivers/gpu/drm/i915/display/intel_hdcp.c:41:15: note: initialize the variable 'rekey_bit' to silence this warning 41 | u32 rekey_bit; | ^ | = 0 >> drivers/gpu/drm/i915/display/intel_hdcp.c:54:13: warning: variable 'rekey_reg' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized] 54 | } else if (IS_DISPLAY_VERx100_STEP(display, 1400, STEP_D0, STEP_FOREVER)) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/display/intel_display_device.h:211:2: note: expanded from macro 'IS_DISPLAY_VERx100_STEP' 211 | (IS_DISPLAY_VERx100((__i915), (ipver), (ipver)) && \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 212 | IS_DISPLAY_STEP((__i915), (from), (until))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/display/intel_hdcp.c:59:24: note: uninitialized use occurs here 59 | intel_de_rmw(display, rekey_reg, rekey_bit, enable ? 0 : rekey_bit); | ^~~~~~~~~ drivers/gpu/drm/i915/display/intel_de.h:109:67: note: expanded from macro 'intel_de_rmw' 109 | #define intel_de_rmw(p,...) __intel_de_rmw(__to_intel_display(p), __VA_ARGS__) | ^~~~~~~~~~~ drivers/gpu/drm/i915/display/intel_hdcp.c:54:9: note: remove the 'if' if its condition is always true 54 | } else if (IS_DISPLAY_VERx100_STEP(display, 1400, STEP_D0, STEP_FOREVER)) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/gpu/drm/i915/display/intel_hdcp.c:54:13: warning: variable 'rekey_reg' is used uninitialized whenever '&&' condition is false [-Wsometimes-uninitialized] 54 | } else if (IS_DISPLAY_VERx100_STEP(display, 1400, STEP_D0, STEP_FOREVER)) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/display/intel_display_device.h:211:3: note: expanded from macro 'IS_DISPLAY_VERx100_STEP' 211 | (IS_DISPLAY_VERx100((__i915), (ipver), (ipver)) && \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/display/intel_display_device.h:190:49: note: expanded from macro 'IS_DISPLAY_VERx100' 190 | #define IS_DISPLAY_VERx100(__i915, from, until) ( \ | ^~~ 191 | BUILD_BUG_ON_ZERO((from) < 200) + \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 192 | (DISPLAY_VERx100(__i915) >= (from) && \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 193 | DISPLAY_VERx100(__i915) <= (until))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/display/intel_hdcp.c:59:24: note: uninitialized use occurs here 59 | intel_de_rmw(display, rekey_reg, rekey_bit, enable ? 0 : rekey_bit); | ^~~~~~~~~ drivers/gpu/drm/i915/display/intel_de.h:109:67: note: expanded from macro 'intel_de_rmw' 109 | #define intel_de_rmw(p,...) __intel_de_rmw(__to_intel_display(p), __VA_ARGS__) | ^~~~~~~~~~~ drivers/gpu/drm/i915/display/intel_hdcp.c:54:13: note: remove the '&&' if its condition is always true 54 | } else if (IS_DISPLAY_VERx100_STEP(display, 1400, STEP_D0, STEP_FOREVER)) { | ^ drivers/gpu/drm/i915/display/intel_display_device.h:211:3: note: expanded from macro 'IS_DISPLAY_VERx100_STEP' 211 | (IS_DISPLAY_VERx100((__i915), (ipver), (ipver)) && \ | ^ drivers/gpu/drm/i915/display/intel_display_device.h:190:49: note: expanded from macro 'IS_DISPLAY_VERx100' 190 | #define IS_DISPLAY_VERx100(__i915, from, until) ( \ | ^ drivers/gpu/drm/i915/display/intel_hdcp.c:40:2: note: variable 'rekey_reg' is declared here 40 | i915_reg_t rekey_reg; | ^ 5 warnings generated. vim +54 drivers/gpu/drm/i915/display/intel_hdcp.c 33 34 static void 35 intel_hdcp_adjust_hdcp_line_rekeying(struct intel_encoder *encoder, 36 struct intel_hdcp *hdcp, 37 bool enable) 38 { 39 struct intel_display *display = to_intel_display(encoder); 40 i915_reg_t rekey_reg; 41 u32 rekey_bit; 42 43 /* Here we assume HDMI is in TMDS mode of operation */ 44 if (encoder->type != INTEL_OUTPUT_HDMI) 45 return; 46 47 if (DISPLAY_VER(display) >= 30) { 48 rekey_reg = TRANS_DDI_FUNC_CTL(display, hdcp->cpu_transcoder); 49 rekey_bit = XE3_TRANS_DDI_HDCP_LINE_REKEY_DISABLE; 50 } else if (IS_DISPLAY_VERx100_STEP(display, 1401, STEP_B0, STEP_FOREVER) || 51 IS_DISPLAY_VERx100_STEP(display, 2000, STEP_B0, STEP_FOREVER)) { 52 rekey_reg = TRANS_DDI_FUNC_CTL(display, hdcp->cpu_transcoder); 53 rekey_bit = TRANS_DDI_HDCP_LINE_REKEY_DISABLE; > 54 } else if (IS_DISPLAY_VERx100_STEP(display, 1400, STEP_D0, STEP_FOREVER)) { 55 rekey_reg = MTL_CHICKEN_TRANS(hdcp->cpu_transcoder); 56 rekey_bit = HDCP_LINE_REKEY_DISABLE; 57 } 58 59 intel_de_rmw(display, rekey_reg, rekey_bit, enable ? 0 : rekey_bit); 60 } 61 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki