lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202501232041.R736koGV-lkp@intel.com>
Date: Thu, 23 Jan 2025 20:28:29 +0800
From: kernel test robot <lkp@...el.com>
To: Ville Syrjälä <ville.syrjala@...ux.intel.com>
Cc: oe-kbuild-all@...ts.linux.dev, linux-kernel@...r.kernel.org,
	Laurentiu Palcu <laurentiu.palcu@....nxp.com>
Subject: drivers/gpu/drm/imx/dcss/dcss-scaler.c:174: warning: Function
 parameter or struct member 'phase0_identity' not described in
 'dcss_scaler_gaussian_filter'

Hi Ville,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   21266b8df5224c4f677acf9f353eecc9094731f0
commit: 004555a18d57fbad42553c2e98e00a054bbe618c drm/imx/dcss: Allow build with COMPILE_TEST=y
date:   3 months ago
config: arc-randconfig-001-20250102 (https://download.01.org/0day-ci/archive/20250123/202501232041.R736koGV-lkp@intel.com/config)
compiler: arceb-elf-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250123/202501232041.R736koGV-lkp@intel.com/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@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202501232041.R736koGV-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> drivers/gpu/drm/imx/dcss/dcss-scaler.c:174: warning: Function parameter or struct member 'phase0_identity' not described in 'dcss_scaler_gaussian_filter'
>> drivers/gpu/drm/imx/dcss/dcss-scaler.c:271: warning: Function parameter or struct member 'phase0_identity' not described in 'dcss_scaler_filter_design'
>> drivers/gpu/drm/imx/dcss/dcss-scaler.c:271: warning: Function parameter or struct member 'nn_interpolation' not described in 'dcss_scaler_filter_design'


vim +174 drivers/gpu/drm/imx/dcss/dcss-scaler.c

9021c317b77024 Laurentiu Palcu 2020-07-31  164  
9021c317b77024 Laurentiu Palcu 2020-07-31  165  /**
9021c317b77024 Laurentiu Palcu 2020-07-31  166   * dcss_scaler_gaussian_filter() - Generate gaussian prototype filter.
9021c317b77024 Laurentiu Palcu 2020-07-31  167   * @fc_q: fixed-point cutoff frequency normalized to range [0, 1]
9021c317b77024 Laurentiu Palcu 2020-07-31  168   * @use_5_taps: indicates whether to use 5 taps or 7 taps
9021c317b77024 Laurentiu Palcu 2020-07-31  169   * @coef: output filter coefficients
9021c317b77024 Laurentiu Palcu 2020-07-31  170   */
9021c317b77024 Laurentiu Palcu 2020-07-31  171  static void dcss_scaler_gaussian_filter(int fc_q, bool use_5_taps,
9021c317b77024 Laurentiu Palcu 2020-07-31  172  					bool phase0_identity,
9021c317b77024 Laurentiu Palcu 2020-07-31  173  					int coef[][PSC_NUM_TAPS])
9021c317b77024 Laurentiu Palcu 2020-07-31 @174  {
9021c317b77024 Laurentiu Palcu 2020-07-31  175  	int sigma_q, g0_q, g1_q, g2_q;
9021c317b77024 Laurentiu Palcu 2020-07-31  176  	int tap_cnt1, tap_cnt2, tap_idx, phase_cnt;
9021c317b77024 Laurentiu Palcu 2020-07-31  177  	int mid;
9021c317b77024 Laurentiu Palcu 2020-07-31  178  	int phase;
9021c317b77024 Laurentiu Palcu 2020-07-31  179  	int i;
9021c317b77024 Laurentiu Palcu 2020-07-31  180  	int taps;
9021c317b77024 Laurentiu Palcu 2020-07-31  181  
9021c317b77024 Laurentiu Palcu 2020-07-31  182  	if (use_5_taps)
9021c317b77024 Laurentiu Palcu 2020-07-31  183  		for (phase = 0; phase < PSC_STORED_PHASES; phase++) {
9021c317b77024 Laurentiu Palcu 2020-07-31  184  			coef[phase][0] = 0;
9021c317b77024 Laurentiu Palcu 2020-07-31  185  			coef[phase][PSC_NUM_TAPS - 1] = 0;
9021c317b77024 Laurentiu Palcu 2020-07-31  186  		}
9021c317b77024 Laurentiu Palcu 2020-07-31  187  
9021c317b77024 Laurentiu Palcu 2020-07-31  188  	/* seed coefficient scanner */
9021c317b77024 Laurentiu Palcu 2020-07-31  189  	taps = use_5_taps ? PSC_NUM_TAPS_RGBA : PSC_NUM_TAPS;
9021c317b77024 Laurentiu Palcu 2020-07-31  190  	mid = (PSC_NUM_PHASES * taps) / 2 - 1;
9021c317b77024 Laurentiu Palcu 2020-07-31  191  	phase_cnt = (PSC_NUM_PHASES * (PSC_NUM_TAPS + 1)) / 2;
9021c317b77024 Laurentiu Palcu 2020-07-31  192  	tap_cnt1 = (PSC_NUM_PHASES * PSC_NUM_TAPS) / 2;
9021c317b77024 Laurentiu Palcu 2020-07-31  193  	tap_cnt2 = (PSC_NUM_PHASES * PSC_NUM_TAPS) / 2;
9021c317b77024 Laurentiu Palcu 2020-07-31  194  
9021c317b77024 Laurentiu Palcu 2020-07-31  195  	/* seed gaussian filter generator */
9021c317b77024 Laurentiu Palcu 2020-07-31  196  	sigma_q = div_q(PSC_Q_ROUND_OFFSET, fc_q);
9021c317b77024 Laurentiu Palcu 2020-07-31  197  	g0_q = 1 << PSC_Q_FRACTION;
9021c317b77024 Laurentiu Palcu 2020-07-31  198  	g1_q = exp_approx_q(div_q(-PSC_Q_ROUND_OFFSET,
9021c317b77024 Laurentiu Palcu 2020-07-31  199  				  mult_q(sigma_q, sigma_q)));
9021c317b77024 Laurentiu Palcu 2020-07-31  200  	g2_q = mult_q(g1_q, g1_q);
9021c317b77024 Laurentiu Palcu 2020-07-31  201  	coef[phase_cnt & PSC_PHASE_MASK][tap_cnt1 >> PSC_BITS_FOR_PHASE] = g0_q;
9021c317b77024 Laurentiu Palcu 2020-07-31  202  
9021c317b77024 Laurentiu Palcu 2020-07-31  203  	for (i = 0; i < mid; i++) {
9021c317b77024 Laurentiu Palcu 2020-07-31  204  		phase_cnt++;
9021c317b77024 Laurentiu Palcu 2020-07-31  205  		tap_cnt1--;
9021c317b77024 Laurentiu Palcu 2020-07-31  206  		tap_cnt2++;
9021c317b77024 Laurentiu Palcu 2020-07-31  207  
9021c317b77024 Laurentiu Palcu 2020-07-31  208  		g0_q = mult_q(g0_q, g1_q);
9021c317b77024 Laurentiu Palcu 2020-07-31  209  		g1_q = mult_q(g1_q, g2_q);
9021c317b77024 Laurentiu Palcu 2020-07-31  210  
9021c317b77024 Laurentiu Palcu 2020-07-31  211  		if ((phase_cnt & PSC_PHASE_MASK) <= 8) {
9021c317b77024 Laurentiu Palcu 2020-07-31  212  			tap_idx = tap_cnt1 >> PSC_BITS_FOR_PHASE;
9021c317b77024 Laurentiu Palcu 2020-07-31  213  			coef[phase_cnt & PSC_PHASE_MASK][tap_idx] = g0_q;
9021c317b77024 Laurentiu Palcu 2020-07-31  214  		}
9021c317b77024 Laurentiu Palcu 2020-07-31  215  		if (((-phase_cnt) & PSC_PHASE_MASK) <= 8) {
9021c317b77024 Laurentiu Palcu 2020-07-31  216  			tap_idx = tap_cnt2 >> PSC_BITS_FOR_PHASE;
9021c317b77024 Laurentiu Palcu 2020-07-31  217  			coef[(-phase_cnt) & PSC_PHASE_MASK][tap_idx] = g0_q;
9021c317b77024 Laurentiu Palcu 2020-07-31  218  		}
9021c317b77024 Laurentiu Palcu 2020-07-31  219  	}
9021c317b77024 Laurentiu Palcu 2020-07-31  220  
9021c317b77024 Laurentiu Palcu 2020-07-31  221  	phase_cnt++;
9021c317b77024 Laurentiu Palcu 2020-07-31  222  	tap_cnt1--;
9021c317b77024 Laurentiu Palcu 2020-07-31  223  	coef[phase_cnt & PSC_PHASE_MASK][tap_cnt1 >> PSC_BITS_FOR_PHASE] = 0;
9021c317b77024 Laurentiu Palcu 2020-07-31  224  
9021c317b77024 Laurentiu Palcu 2020-07-31  225  	/* override phase 0 with identity filter if specified */
9021c317b77024 Laurentiu Palcu 2020-07-31  226  	if (phase0_identity)
9021c317b77024 Laurentiu Palcu 2020-07-31  227  		for (i = 0; i < PSC_NUM_TAPS; i++)
9021c317b77024 Laurentiu Palcu 2020-07-31  228  			coef[0][i] = i == (PSC_NUM_TAPS >> 1) ?
9021c317b77024 Laurentiu Palcu 2020-07-31  229  						(1 << PSC_COEFF_PRECISION) : 0;
9021c317b77024 Laurentiu Palcu 2020-07-31  230  
9021c317b77024 Laurentiu Palcu 2020-07-31  231  	/* normalize coef */
9021c317b77024 Laurentiu Palcu 2020-07-31  232  	for (phase = 0; phase < PSC_STORED_PHASES; phase++) {
9021c317b77024 Laurentiu Palcu 2020-07-31  233  		int sum = 0;
9021c317b77024 Laurentiu Palcu 2020-07-31  234  		s64 ll_temp;
9021c317b77024 Laurentiu Palcu 2020-07-31  235  
9021c317b77024 Laurentiu Palcu 2020-07-31  236  		for (i = 0; i < PSC_NUM_TAPS; i++)
9021c317b77024 Laurentiu Palcu 2020-07-31  237  			sum += coef[phase][i];
9021c317b77024 Laurentiu Palcu 2020-07-31  238  		for (i = 0; i < PSC_NUM_TAPS; i++) {
9021c317b77024 Laurentiu Palcu 2020-07-31  239  			ll_temp = coef[phase][i];
9021c317b77024 Laurentiu Palcu 2020-07-31  240  			ll_temp <<= PSC_COEFF_PRECISION;
9021c317b77024 Laurentiu Palcu 2020-07-31  241  			ll_temp += sum >> 1;
f2cab5a0e8c3a4 Ville Syrjälä   2024-10-03  242  			ll_temp = div_s64(ll_temp, sum);
9021c317b77024 Laurentiu Palcu 2020-07-31  243  			coef[phase][i] = (int)ll_temp;
9021c317b77024 Laurentiu Palcu 2020-07-31  244  		}
9021c317b77024 Laurentiu Palcu 2020-07-31  245  	}
9021c317b77024 Laurentiu Palcu 2020-07-31  246  }
9021c317b77024 Laurentiu Palcu 2020-07-31  247  
05faf1559de524 Laurentiu Palcu 2020-11-05  248  static void dcss_scaler_nearest_neighbor_filter(bool use_5_taps,
05faf1559de524 Laurentiu Palcu 2020-11-05  249  						int coef[][PSC_NUM_TAPS])
05faf1559de524 Laurentiu Palcu 2020-11-05  250  {
05faf1559de524 Laurentiu Palcu 2020-11-05  251  	int i, j;
05faf1559de524 Laurentiu Palcu 2020-11-05  252  
05faf1559de524 Laurentiu Palcu 2020-11-05  253  	for (i = 0; i < PSC_STORED_PHASES; i++)
05faf1559de524 Laurentiu Palcu 2020-11-05  254  		for (j = 0; j < PSC_NUM_TAPS; j++)
05faf1559de524 Laurentiu Palcu 2020-11-05  255  			coef[i][j] = j == PSC_NUM_TAPS >> 1 ?
05faf1559de524 Laurentiu Palcu 2020-11-05  256  						(1 << PSC_COEFF_PRECISION) : 0;
05faf1559de524 Laurentiu Palcu 2020-11-05  257  }
05faf1559de524 Laurentiu Palcu 2020-11-05  258  
9021c317b77024 Laurentiu Palcu 2020-07-31  259  /**
9021c317b77024 Laurentiu Palcu 2020-07-31  260   * dcss_scaler_filter_design() - Compute filter coefficients using
9021c317b77024 Laurentiu Palcu 2020-07-31  261   *				 Gaussian filter.
9021c317b77024 Laurentiu Palcu 2020-07-31  262   * @src_length: length of input
9021c317b77024 Laurentiu Palcu 2020-07-31  263   * @dst_length: length of output
9021c317b77024 Laurentiu Palcu 2020-07-31  264   * @use_5_taps: 0 for 7 taps per phase, 1 for 5 taps
9021c317b77024 Laurentiu Palcu 2020-07-31  265   * @coef: output coefficients
9021c317b77024 Laurentiu Palcu 2020-07-31  266   */
9021c317b77024 Laurentiu Palcu 2020-07-31  267  static void dcss_scaler_filter_design(int src_length, int dst_length,
9021c317b77024 Laurentiu Palcu 2020-07-31  268  				      bool use_5_taps, bool phase0_identity,
05faf1559de524 Laurentiu Palcu 2020-11-05  269  				      int coef[][PSC_NUM_TAPS],
05faf1559de524 Laurentiu Palcu 2020-11-05  270  				      bool nn_interpolation)
9021c317b77024 Laurentiu Palcu 2020-07-31 @271  {
9021c317b77024 Laurentiu Palcu 2020-07-31  272  	int fc_q;
9021c317b77024 Laurentiu Palcu 2020-07-31  273  
9021c317b77024 Laurentiu Palcu 2020-07-31  274  	/* compute cutoff frequency */
9021c317b77024 Laurentiu Palcu 2020-07-31  275  	if (dst_length >= src_length)
9021c317b77024 Laurentiu Palcu 2020-07-31  276  		fc_q = div_q(1, PSC_NUM_PHASES);
9021c317b77024 Laurentiu Palcu 2020-07-31  277  	else
9021c317b77024 Laurentiu Palcu 2020-07-31  278  		fc_q = div_q(dst_length, src_length * PSC_NUM_PHASES);
9021c317b77024 Laurentiu Palcu 2020-07-31  279  
05faf1559de524 Laurentiu Palcu 2020-11-05  280  	if (nn_interpolation)
05faf1559de524 Laurentiu Palcu 2020-11-05  281  		dcss_scaler_nearest_neighbor_filter(use_5_taps, coef);
05faf1559de524 Laurentiu Palcu 2020-11-05  282  	else
9021c317b77024 Laurentiu Palcu 2020-07-31  283  		/* compute gaussian filter coefficients */
9021c317b77024 Laurentiu Palcu 2020-07-31  284  		dcss_scaler_gaussian_filter(fc_q, use_5_taps, phase0_identity, coef);
9021c317b77024 Laurentiu Palcu 2020-07-31  285  }
9021c317b77024 Laurentiu Palcu 2020-07-31  286  

:::::: The code at line 174 was first introduced by commit
:::::: 9021c317b77024fb2642af7e84ad944769ae0949 drm/imx: Add initial support for DCSS on iMX8MQ

:::::: TO: Laurentiu Palcu <laurentiu.palcu@....com>
:::::: CC: Lucas Stach <l.stach@...gutronix.de>

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ