Re: [PATCH 1/5] drm/i915/display: Add support for SNPS PHY HDMI PLL algorithm for DG2

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

 



Hi Ankit,

kernel test robot noticed the following build warnings:

[auto build test WARNING on drm-intel/for-linux-next]
[also build test WARNING on drm-intel/for-linux-next-fixes drm-tip/drm-tip drm-xe/drm-xe-next linus/master v6.11-rc3 next-20240816]
[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/Ankit-Nautiyal/drm-i915-display-Add-support-for-SNPS-PHY-HDMI-PLL-algorithm-for-DG2/20240814-222404
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
patch link:    https://lore.kernel.org/r/20240813031941.3553574-2-ankit.k.nautiyal%40intel.com
patch subject: [PATCH 1/5] drm/i915/display: Add support for SNPS PHY HDMI PLL algorithm for DG2
config: i386-randconfig-061-20240816 (https://download.01.org/0day-ci/archive/20240816/202408162056.qbWTZcLT-lkp@xxxxxxxxx/config)
compiler: clang version 18.1.5 (https://github.com/llvm/llvm-project 617a15a9eac96088ae5e9134248d8236e34b91b1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240816/202408162056.qbWTZcLT-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/202408162056.qbWTZcLT-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
   drivers/gpu/drm/i915/display/intel_snps_hdmi_pll.c: note: in included file (through include/linux/mmzone.h, include/linux/gfp.h, include/linux/slab.h, ...):
   include/linux/page-flags.h:235:46: sparse: sparse: self-comparison always evaluates to false
   include/linux/page-flags.h:235:46: sparse: sparse: self-comparison always evaluates to false
>> drivers/gpu/drm/i915/display/intel_snps_hdmi_pll.c:103:23: sparse: sparse: cast truncates bits from constant value (e8d4a51000 becomes d4a51000)

vim +103 drivers/gpu/drm/i915/display/intel_snps_hdmi_pll.c

    47	
    48	static void get_ana_cp_int_prop(u32 vco_clk,
    49					u32 refclk_postscalar,
    50					int mpll_ana_v2i,
    51					int c, int a,
    52					const u64 curve_freq_hz[2][8],
    53					const u64 curve_0[2][8],
    54					const u64 curve_1[2][8],
    55					const u64 curve_2[2][8],
    56					u32 *ana_cp_int,
    57					u32 *ana_cp_prop)
    58	{
    59		u64 vco_div_refclk_float;
    60		u64 curve_0_interpolated;
    61		u64 curve_2_interpolated;
    62		u64 curve_1_interpolated;
    63		u64 curve_2_scaled1;
    64		u64 curve_2_scaled2;
    65		u64 adjusted_vco_clk1;
    66		u64 adjusted_vco_clk2;
    67		u64 curve_2_scaled_int;
    68		u64 interpolated_product;
    69		u64 scaled_interpolated_sqrt;
    70		u64 scaled_vco_div_refclk1;
    71		u64 scaled_vco_div_refclk2;
    72		u64 temp;
    73	
    74		vco_div_refclk_float = vco_clk * DIV_ROUND_DOWN_ULL(1000000000000ULL, refclk_postscalar);
    75	
    76		/* Interpolate curve values at the target vco_clk frequency */
    77		curve_0_interpolated = interp(vco_clk, curve_freq_hz[c][a], curve_freq_hz[c][a + 1],
    78					      curve_0[c][a], curve_0[c][a + 1]);
    79	
    80		curve_2_interpolated = interp(vco_clk, curve_freq_hz[c][a], curve_freq_hz[c][a + 1],
    81					      curve_2[c][a], curve_2[c][a + 1]);
    82	
    83		curve_1_interpolated = interp(vco_clk, curve_freq_hz[c][a], curve_freq_hz[c][a + 1],
    84					      curve_1[c][a], curve_1[c][a + 1]);
    85	
    86		curve_1_interpolated = DIV_ROUND_DOWN_ULL(curve_1_interpolated, CURVE1_MULTIPLIER);
    87	
    88		/*
    89		 * Scale curve_2_interpolated based on mpll_ana_v2i, for integer part
    90		 * ana_cp_int and for the proportional part ana_cp_prop
    91		 */
    92		temp = curve_2_interpolated * (4 - mpll_ana_v2i);
    93		curve_2_scaled1 = DIV_ROUND_DOWN_ULL(temp, 16000);
    94		curve_2_scaled2 = DIV_ROUND_DOWN_ULL(temp, 160);
    95	
    96		/* Scale vco_div_refclk for ana_cp_int */
    97		scaled_vco_div_refclk1 = 112008301 * DIV_ROUND_DOWN_ULL(vco_div_refclk_float, 100000);
    98	
    99		adjusted_vco_clk1 = CURVE2_MULTIPLIER *
   100				    DIV_ROUND_DOWN_ULL(scaled_vco_div_refclk1, (curve_0_interpolated *
   101				    DIV_ROUND_DOWN_ULL(curve_1_interpolated, CURVE0_MULTIPLIER)));
   102	
 > 103		*ana_cp_int = DIV_ROUND_CLOSEST_ULL(DIV_ROUND_DOWN_ULL(adjusted_vco_clk1, curve_2_scaled1),
   104						    CURVE2_MULTIPLIER);
   105		*ana_cp_int = max(1, min(*ana_cp_int, 127));
   106	
   107		curve_2_scaled_int = curve_2_scaled1 * (*ana_cp_int);
   108	
   109		interpolated_product = curve_1_interpolated *
   110				       (curve_2_scaled_int * DIV_ROUND_DOWN_ULL(curve_0_interpolated,
   111									      CURVE0_MULTIPLIER));
   112	
   113		scaled_interpolated_sqrt =
   114				int_sqrt(DIV_ROUND_UP_ULL(interpolated_product, vco_div_refclk_float) *
   115				DIV_ROUND_DOWN_ULL(1000000000000ULL, 55));
   116	
   117		/* Scale vco_div_refclk for ana_cp_int */
   118		scaled_vco_div_refclk2 = DIV_ROUND_UP_ULL(vco_div_refclk_float, 1000000);
   119		adjusted_vco_clk2 = 1460281 * DIV_ROUND_UP_ULL(scaled_interpolated_sqrt *
   120							       scaled_vco_div_refclk2,
   121							       curve_1_interpolated);
   122	
   123		*ana_cp_prop = DIV_ROUND_UP_ULL(adjusted_vco_clk2, curve_2_scaled2);
   124		*ana_cp_prop = max(1, min(*ana_cp_prop, 127));
   125	}
   126	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki



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

  Powered by Linux