From: kernel test robot <lkp@intel.com>
To: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
Cc: oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org,
Laurentiu Palcu <laurentiu.palcu@oss.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'
Date: Thu, 23 Jan 2025 20:28:29 +0800 [thread overview]
Message-ID: <202501232041.R736koGV-lkp@intel.com> (raw)
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@intel.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@nxp.com>
:::::: CC: Lucas Stach <l.stach@pengutronix.de>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next reply other threads:[~2025-01-23 12:29 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-23 12:28 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2025-02-16 6:52 drivers/gpu/drm/imx/dcss/dcss-scaler.c:174: warning: Function parameter or struct member 'phase0_identity' not described in 'dcss_scaler_gaussian_filter' kernel test robot
2025-03-03 20:34 kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202501232041.R736koGV-lkp@intel.com \
--to=lkp@intel.com \
--cc=laurentiu.palcu@oss.nxp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=ville.syrjala@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.