[<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