Hi Dafna,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on linuxtv-media/master]
[also build test ERROR on v5.7-rc5 next-20200512]
[cannot apply to staging/staging-testing]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see
https://stackoverflow.com/a/37406982]
url:
https://github.com/0day-ci/linux/commits/Dafna-Hirschfeld/media-staging-r...
base:
git://linuxtv.org/media_tree.git master
config: nios2-allyesconfig (attached as .config)
compiler: nios2-linux-gcc (GCC) 9.3.0
reproduce:
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day GCC_VERSION=9.3.0 make.cross ARCH=nios2
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp(a)intel.com>
All error/warnings (new ones prefixed by >>):
In file included from drivers/staging/media/rkisp1/rkisp1-stats.c:14:
drivers/staging/media/rkisp1/rkisp1-common.h:309:1: error: unknown type name
'irqreturn_t'
309 | irqreturn_t rkisp1_read_stats_threaded_irq(int irq, void *ctx);
| ^~~~~~~~~~~
drivers/staging/media/rkisp1/rkisp1-common.h:310:1: error: unknown type name
'irqreturn_t'
310 | irqreturn_t rkisp1_isp_isr(struct rkisp1_device *rkisp1);
| ^~~~~~~~~~~
drivers/staging/media/rkisp1/rkisp1-common.h:311:1: error: unknown type name
'irqreturn_t'
311 | irqreturn_t rkisp1_mipi_isr(struct rkisp1_device *rkisp1);
| ^~~~~~~~~~~
drivers/staging/media/rkisp1/rkisp1-common.h:312:1: error: unknown type name
'irqreturn_t'
312 | irqreturn_t rkisp1_capture_isr(struct rkisp1_device *rkisp1);
| ^~~~~~~~~~~
drivers/staging/media/rkisp1/rkisp1-common.h:313:1: error: unknown type name
'irqreturn_t'
313 | irqreturn_t rkisp1_stats_isr(struct rkisp1_stats *stats, u32 isp_ris);
| ^~~~~~~~~~~
> drivers/staging/media/rkisp1/rkisp1-stats.c:313:1: error: unknown
type name 'irqreturn_t'
313 | irqreturn_t rkisp1_read_stats_threaded_irq(int
irq, void *ctx)
| ^~~~~~~~~~~
drivers/staging/media/rkisp1/rkisp1-stats.c: In function
'rkisp1_read_stats_threaded_irq':
> drivers/staging/media/rkisp1/rkisp1-stats.c:326:10: error:
'IRQ_HANDLED' undeclared (first use in this function)
326 | return
IRQ_HANDLED;
| ^~~~~~~~~~~
drivers/staging/media/rkisp1/rkisp1-stats.c:326:10: note: each undeclared identifier is
reported only once for each function it appears in
drivers/staging/media/rkisp1/rkisp1-stats.c: At top level:
drivers/staging/media/rkisp1/rkisp1-stats.c:382:1: error: unknown type name
'irqreturn_t'
382 | irqreturn_t rkisp1_stats_isr(struct rkisp1_stats *stats, u32 isp_ris)
| ^~~~~~~~~~~
drivers/staging/media/rkisp1/rkisp1-stats.c: In function 'rkisp1_stats_isr':
drivers/staging/media/rkisp1/rkisp1-stats.c:387:2: error: unknown type name
'irqreturn_t'
387 | irqreturn_t ret = IRQ_HANDLED;
| ^~~~~~~~~~~
drivers/staging/media/rkisp1/rkisp1-stats.c:387:20: error: 'IRQ_HANDLED'
undeclared (first use in this function)
387 | irqreturn_t ret = IRQ_HANDLED;
| ^~~~~~~~~~~
> drivers/staging/media/rkisp1/rkisp1-stats.c:409:10: error:
'IRQ_WAKE_THREAD' undeclared (first use in this function); did you mean
'RUSAGE_THREAD'?
409 | ret = IRQ_WAKE_THREAD;
| ^~~~~~~~~~~~~~~
| RUSAGE_THREAD
drivers/staging/media/rkisp1/rkisp1-stats.c: In function
'rkisp1_read_stats_threaded_irq':
> drivers/staging/media/rkisp1/rkisp1-stats.c:379:1: warning:
control reaches end of non-void function [-Wreturn-type]
379 | }
| ^
vim +/irqreturn_t +313 drivers/staging/media/rkisp1/rkisp1-stats.c
312
313 irqreturn_t rkisp1_read_stats_threaded_irq(int irq, void *ctx)
314 {
315 struct device *dev = ctx;
316 struct rkisp1_device *rkisp1 = dev_get_drvdata(dev);
317 struct rkisp1_stats *stats = &rkisp1->stats;
318 struct rkisp1_kstats_buffer *kstats_buf = NULL;
319 struct rkisp1_stat_buffer *cur_stat_buf;
320 unsigned long flags;
321 u64 timestamp = ktime_get_ns();
322
323 spin_lock_irqsave(&stats->stats_lock, flags);
324 if (!stats->is_streaming) {
325 spin_unlock_irqrestore(&stats->stats_lock, flags);
326 return IRQ_HANDLED;
327 }
328 if (list_empty(&stats->stat)) {
329 spin_unlock_irqrestore(&stats->stats_lock, flags);
330 WARN("%s: threaded irq waked but there are no buffers",
331 __func__);
332 return IRQ_HANDLED;
333 }
334 kstats_buf = list_first_entry(&stats->stat,
335 struct rkisp1_kstats_buffer, buff.queue);
336
337 /*
338 * each waked irq thread reads exactly one ready statistics
339 * so it is a bug if no statistics are ready
340 */
341 if (!kstats_buf->ris) {
342 spin_unlock_irqrestore(&stats->stats_lock, flags);
343 WARN("%s: threaded irq waked but buffer holds no measures",
344 __func__);
345 return IRQ_HANDLED;
346 }
347 list_del(&kstats_buf->buff.queue);
348 spin_unlock_irqrestore(&stats->stats_lock, flags);
349
350 cur_stat_buf =
351 (struct rkisp1_stat_buffer *)(kstats_buf->buff.vaddr[0]);
352
353 if (kstats_buf->ris & RKISP1_CIF_ISP_AWB_DONE) {
354 rkisp1_stats_get_awb_meas(stats, cur_stat_buf);
355 cur_stat_buf->meas_type |= RKISP1_CIF_ISP_STAT_AWB;
356 }
357
358 if (kstats_buf->ris & RKISP1_CIF_ISP_AFM_FIN) {
359 rkisp1_stats_get_afc_meas(stats, cur_stat_buf);
360 cur_stat_buf->meas_type |= RKISP1_CIF_ISP_STAT_AFM_FIN;
361 }
362
363 if (kstats_buf->ris & RKISP1_CIF_ISP_EXP_END) {
364 rkisp1_stats_get_aec_meas(stats, cur_stat_buf);
365 rkisp1_stats_get_bls_meas(stats, cur_stat_buf);
366 cur_stat_buf->meas_type |= RKISP1_CIF_ISP_STAT_AUTOEXP;
367 }
368
369 if (kstats_buf->ris & RKISP1_CIF_ISP_HIST_MEASURE_RDY) {
370 rkisp1_stats_get_hst_meas(stats, cur_stat_buf);
371 cur_stat_buf->meas_type |= RKISP1_CIF_ISP_STAT_HIST;
372 }
373
374 vb2_set_plane_payload(&kstats_buf->buff.vb.vb2_buf, 0,
375 sizeof(struct rkisp1_stat_buffer));
376 kstats_buf->buff.vb.vb2_buf.timestamp = timestamp;
377 vb2_buffer_done(&kstats_buf->buff.vb.vb2_buf, VB2_BUF_STATE_DONE);
378 return IRQ_HANDLED;
379 }
380
381
382 irqreturn_t rkisp1_stats_isr(struct rkisp1_stats *stats, u32 isp_ris)
383 {
384 struct rkisp1_device *rkisp1 = stats->rkisp1;
385 struct rkisp1_isp *isp = &rkisp1->isp;
386 struct rkisp1_kstats_buffer *buf = NULL;
387 irqreturn_t ret = IRQ_HANDLED;
388 unsigned int
isp_mis_tmp = 0;
389 unsigned long flags;
390 u32 val;
391
392 spin_lock_irqsave(&stats->stats_lock, flags);
393
394 val = RKISP1_STATS_MEAS_MASK;
395 rkisp1_write(rkisp1, val, RKISP1_CIF_ISP_ICR);
396
397 isp_mis_tmp = rkisp1_read(rkisp1, RKISP1_CIF_ISP_MIS);
398 if (isp_mis_tmp & RKISP1_STATS_MEAS_MASK)
399 rkisp1->debug.stats_error++;
400
401 if (!stats->is_streaming || !(isp_ris & RKISP1_STATS_MEAS_MASK))
402 goto unlock;
403
404 list_for_each_entry(buf, &stats->stat, buff.queue) {
405 if (!buf->ris) {
406 buf->buff.vb.sequence =
407 atomic_read(&isp->frame_sequence);
408 buf->ris = isp_ris;
409 ret = IRQ_WAKE_THREAD;
410 break;
411 }
412 }
413
414 unlock:
415 spin_unlock_irqrestore(&stats->stats_lock, flags);
416 return ret;
417 }
418
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org