[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <202503030529.ccd21udL-lkp@intel.com>
Date: Mon, 3 Mar 2025 05:41:40 +0800
From: kernel test robot <lkp@...el.com>
To: Aakarsh Jain <aakarsh.jain@...sung.com>,
linux-arm-kernel@...ts.infradead.org, linux-media@...r.kernel.org,
linux-kernel@...r.kernel.org
Cc: oe-kbuild-all@...ts.linux.dev, m.szyprowski@...sung.com,
andrzej.hajda@...el.com, mchehab@...nel.org,
hverkuil-cisco@...all.nl, krzysztof.kozlowski+dt@...aro.org,
linux-samsung-soc@...r.kernel.org, gost.dev@...sung.com,
aswani.reddy@...sung.com, pankaj.dubey@...sung.com,
Aakarsh Jain <aakarsh.jain@...sung.com>
Subject: Re: [PATCH] media: s5p-mfc: Support for handling RET_ENC_BUFFER_FULL
interrupt
Hi Aakarsh,
kernel test robot noticed the following build errors:
[auto build test ERROR on soc/for-next]
[also build test ERROR on linuxtv-media-pending/master linus/master sailus-media-tree/streams sailus-media-tree/master v6.14-rc4 next-20250228]
[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/Aakarsh-Jain/media-s5p-mfc-Support-for-handling-RET_ENC_BUFFER_FULL-interrupt/20250228-175738
base: https://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git for-next
patch link: https://lore.kernel.org/r/20250228065952.14375-1-aakarsh.jain%40samsung.com
patch subject: [PATCH] media: s5p-mfc: Support for handling RET_ENC_BUFFER_FULL interrupt
config: loongarch-allyesconfig (https://download.01.org/0day-ci/archive/20250303/202503030529.ccd21udL-lkp@intel.com/config)
compiler: loongarch64-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250303/202503030529.ccd21udL-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/202503030529.ccd21udL-lkp@intel.com/
All errors (new ones prefixed by >>):
drivers/media/platform/samsung/s5p-mfc/s5p_mfc.c: In function 's5p_mfc_irq':
>> drivers/media/platform/samsung/s5p-mfc/s5p_mfc.c:742:14: error: 'S5P_MFC_R2H_CMD_ENC_BUFFER_FULL_RET' undeclared (first use in this function); did you mean 'S5P_MFC_R2H_CMD_ENC_BUFFER_FUL_RET'?
742 | case S5P_MFC_R2H_CMD_ENC_BUFFER_FULL_RET:
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| S5P_MFC_R2H_CMD_ENC_BUFFER_FUL_RET
drivers/media/platform/samsung/s5p-mfc/s5p_mfc.c:742:14: note: each undeclared identifier is reported only once for each function it appears in
vim +742 drivers/media/platform/samsung/s5p-mfc/s5p_mfc.c
645
646 /* Interrupt processing */
647 static irqreturn_t s5p_mfc_irq(int irq, void *priv)
648 {
649 struct s5p_mfc_dev *dev = priv;
650 struct s5p_mfc_ctx *ctx;
651 unsigned int reason;
652 unsigned int err;
653
654 mfc_debug_enter();
655 /* Reset the timeout watchdog */
656 atomic_set(&dev->watchdog_cnt, 0);
657 spin_lock(&dev->irqlock);
658 ctx = dev->ctx[dev->curr_ctx];
659 /* Get the reason of interrupt and the error code */
660 reason = s5p_mfc_hw_call(dev->mfc_ops, get_int_reason, dev);
661 err = s5p_mfc_hw_call(dev->mfc_ops, get_int_err, dev);
662 mfc_debug(1, "Int reason: %d (err: %08x)\n", reason, err);
663 switch (reason) {
664 case S5P_MFC_R2H_CMD_ERR_RET:
665 /* An error has occurred */
666 if (ctx->state == MFCINST_RUNNING &&
667 (s5p_mfc_hw_call(dev->mfc_ops, err_dec, err) >=
668 dev->warn_start ||
669 err == S5P_FIMV_ERR_NO_VALID_SEQ_HDR ||
670 err == S5P_FIMV_ERR_INCOMPLETE_FRAME ||
671 err == S5P_FIMV_ERR_TIMEOUT))
672 s5p_mfc_handle_frame(ctx, reason, err);
673 else
674 s5p_mfc_handle_error(dev, ctx, reason, err);
675 clear_bit(0, &dev->enter_suspend);
676 break;
677
678 case S5P_MFC_R2H_CMD_SLICE_DONE_RET:
679 case S5P_MFC_R2H_CMD_FIELD_DONE_RET:
680 case S5P_MFC_R2H_CMD_FRAME_DONE_RET:
681 if (ctx->c_ops->post_frame_start) {
682 if (ctx->c_ops->post_frame_start(ctx))
683 mfc_err("post_frame_start() failed\n");
684
685 if (ctx->state == MFCINST_FINISHING &&
686 list_empty(&ctx->ref_queue)) {
687 s5p_mfc_hw_call(dev->mfc_ops, clear_int_flags, dev);
688 s5p_mfc_handle_stream_complete(ctx);
689 break;
690 }
691 s5p_mfc_hw_call(dev->mfc_ops, clear_int_flags, dev);
692 WARN_ON(test_and_clear_bit(0, &dev->hw_lock) == 0);
693 s5p_mfc_clock_off(dev);
694 wake_up_ctx(ctx, reason, err);
695 s5p_mfc_hw_call(dev->mfc_ops, try_run, dev);
696 } else {
697 s5p_mfc_handle_frame(ctx, reason, err);
698 }
699 break;
700
701 case S5P_MFC_R2H_CMD_SEQ_DONE_RET:
702 s5p_mfc_handle_seq_done(ctx, reason, err);
703 break;
704
705 case S5P_MFC_R2H_CMD_OPEN_INSTANCE_RET:
706 ctx->inst_no = s5p_mfc_hw_call(dev->mfc_ops, get_inst_no, dev);
707 ctx->state = MFCINST_GOT_INST;
708 goto irq_cleanup_hw;
709
710 case S5P_MFC_R2H_CMD_CLOSE_INSTANCE_RET:
711 ctx->inst_no = MFC_NO_INSTANCE_SET;
712 ctx->state = MFCINST_FREE;
713 goto irq_cleanup_hw;
714
715 case S5P_MFC_R2H_CMD_SYS_INIT_RET:
716 case S5P_MFC_R2H_CMD_FW_STATUS_RET:
717 case S5P_MFC_R2H_CMD_SLEEP_RET:
718 case S5P_MFC_R2H_CMD_WAKEUP_RET:
719 if (ctx)
720 clear_work_bit(ctx);
721 s5p_mfc_hw_call(dev->mfc_ops, clear_int_flags, dev);
722 clear_bit(0, &dev->hw_lock);
723 clear_bit(0, &dev->enter_suspend);
724 wake_up_dev(dev, reason, err);
725 break;
726
727 case S5P_MFC_R2H_CMD_INIT_BUFFERS_RET:
728 s5p_mfc_handle_init_buffers(ctx, reason, err);
729 break;
730
731 case S5P_MFC_R2H_CMD_COMPLETE_SEQ_RET:
732 s5p_mfc_hw_call(dev->mfc_ops, clear_int_flags, dev);
733 ctx->int_type = reason;
734 ctx->int_err = err;
735 s5p_mfc_handle_stream_complete(ctx);
736 break;
737
738 case S5P_MFC_R2H_CMD_DPB_FLUSH_RET:
739 ctx->state = MFCINST_RUNNING;
740 goto irq_cleanup_hw;
741
> 742 case S5P_MFC_R2H_CMD_ENC_BUFFER_FULL_RET:
743 ctx->state = MFCINST_NAL_ABORT;
744 s5p_mfc_hw_call(dev->mfc_ops, clear_int_flags, dev);
745 set_work_bit(ctx);
746 WARN_ON(test_and_clear_bit(0, &dev->hw_lock) == 0);
747 s5p_mfc_hw_call(dev->mfc_ops, try_run, dev);
748 break;
749
750 case S5P_MFC_R2H_CMD_NAL_ABORT_RET:
751 ctx->state = MFCINST_ERROR;
752 s5p_mfc_cleanup_queue(&ctx->dst_queue, &ctx->vq_dst);
753 s5p_mfc_cleanup_queue(&ctx->src_queue, &ctx->vq_src);
754 goto irq_cleanup_hw;
755
756 default:
757 mfc_debug(2, "Unknown int reason\n");
758 s5p_mfc_hw_call(dev->mfc_ops, clear_int_flags, dev);
759 }
760 spin_unlock(&dev->irqlock);
761 mfc_debug_leave();
762 return IRQ_HANDLED;
763 irq_cleanup_hw:
764 s5p_mfc_hw_call(dev->mfc_ops, clear_int_flags, dev);
765 ctx->int_type = reason;
766 ctx->int_err = err;
767 ctx->int_cond = 1;
768 if (test_and_clear_bit(0, &dev->hw_lock) == 0)
769 mfc_err("Failed to unlock hw\n");
770
771 s5p_mfc_clock_off(dev);
772 clear_work_bit(ctx);
773 wake_up(&ctx->queue);
774
775 s5p_mfc_hw_call(dev->mfc_ops, try_run, dev);
776 spin_unlock(&dev->irqlock);
777 mfc_debug(2, "Exit via irq_cleanup_hw\n");
778 return IRQ_HANDLED;
779 }
780
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Powered by blists - more mailing lists