Re: [PATCH 1/2] media: cec: add SECO MEC-based cec driver

From: kernel test robot
Date: Wed Feb 02 2022 - 09:32:23 EST


Hi ektor5,

I love your patch! Perhaps something to improve:

[auto build test WARNING on media-tree/master]
[also build test WARNING on linux/master linus/master v5.17-rc2 next-20220202]
[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]

url: https://github.com/0day-ci/linux/commits/ektor5/Add-SECO-CEC-driver-for-MEC-Based-boards/20220202-023834
base: git://linuxtv.org/media_tree.git master
config: x86_64-allmodconfig (https://download.01.org/0day-ci/archive/20220202/202202022216.MCt6c52g-lkp@xxxxxxxxx/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 6b1e844b69f15bb7dffaf9365cd2b355d2eb7579)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/8960cb39808a004dee84a2f955ed949b1a4da7a8
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review ektor5/Add-SECO-CEC-driver-for-MEC-Based-boards/20220202-023834
git checkout 8960cb39808a004dee84a2f955ed949b1a4da7a8
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash drivers/media/cec/platform/seco/ drivers/net/wireless/ath/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

>> drivers/media/cec/platform/seco/seco-meccec.c:735:8: warning: variable 'adaps' is uninitialized when used here [-Wuninitialized]
if (adaps--)
^~~~~
drivers/media/cec/platform/seco/seco-meccec.c:634:11: note: initialize the variable 'adaps' to silence this warning
int adaps, notifs = 0;
^
= 0
1 warning generated.


vim +/adaps +735 drivers/media/cec/platform/seco/seco-meccec.c

626
627 static int seco_meccec_probe(struct platform_device *pdev)
628 {
629 struct seco_meccec_data *meccec;
630 struct device *dev = &pdev->dev;
631 struct device *hdmi_dev;
632 const char * const *conn;
633 int ret, idx;
634 int adaps, notifs = 0;
635
636 meccec = devm_kzalloc(dev, sizeof(*meccec), GFP_KERNEL);
637 if (!meccec)
638 return -ENOMEM;
639
640 dev_set_drvdata(dev, meccec);
641
642 meccec->pdev = pdev;
643 meccec->dev = dev;
644
645 ret = ec_get_version(meccec);
646 if (ret) {
647 dev_err(dev, "Get version failed\n");
648 goto err;
649 }
650
651 if (!has_acpi_companion(dev)) {
652 dev_err(dev, "Cannot find any ACPI companion\n");
653 ret = -ENODEV;
654 goto err;
655 }
656
657 ret = seco_meccec_acpi_probe(meccec);
658 if (ret) {
659 dev_err(dev, "ACPI probe failed\n");
660 goto err;
661 }
662
663 ret = devm_request_threaded_irq(dev,
664 meccec->irq,
665 NULL,
666 seco_meccec_irq_handler,
667 IRQF_TRIGGER_RISING | IRQF_ONESHOT,
668 dev_name(&pdev->dev), meccec);
669
670 if (ret) {
671 dev_err(dev, "Cannot request IRQ %d\n", meccec->irq);
672 ret = -EIO;
673 goto err;
674 }
675
676 hdmi_dev = seco_meccec_find_hdmi_dev(&pdev->dev, &conn);
677 if (IS_ERR(hdmi_dev)) {
678 dev_err(dev, "Cannot find HDMI Device\n");
679 return PTR_ERR(hdmi_dev);
680 }
681 dev_dbg(dev, "HDMI device found\n");
682
683 for (idx = 0; idx < MECCEC_MAX_CEC_ADAP; idx++) {
684 if (meccec->channels & BIT_MASK(idx)) {
685 ret = meccec_create_adapter(meccec, idx);
686 if (ret)
687 goto err_delete_adapter;
688 dev_dbg(dev, "CEC adapter #%d allocated\n", idx);
689 }
690 }
691
692 for (idx = 0; idx < MECCEC_MAX_CEC_ADAP; idx++) {
693 if (meccec->channels & BIT_MASK(idx)) {
694 struct cec_adapter *acec = meccec->cec_adap[idx];
695 struct cec_notifier *ncec;
696
697 if (!acec) {
698 ret = -EINVAL;
699 goto err_notifier;
700 }
701
702 ncec = cec_notifier_cec_adap_register(hdmi_dev,
703 conn[idx], acec);
704
705 dev_dbg(dev, "CEC notifier #%d allocated %s\n", idx, conn[idx]);
706
707 if (IS_ERR(ncec)) {
708 ret = PTR_ERR(ncec);
709 goto err_notifier;
710 }
711
712 meccec->notifier[idx] = ncec;
713 notifs++;
714 }
715 }
716
717 for (idx = 0; idx < MECCEC_MAX_CEC_ADAP; idx++) {
718 if (meccec->channels & BIT_MASK(idx)) {
719 ret = cec_register_adapter(meccec->cec_adap[idx], dev);
720 if (ret)
721 goto err_notifier;
722
723 dev_dbg(dev, "CEC adapter #%d registered\n", idx);
724 }
725 }
726
727 platform_set_drvdata(pdev, meccec);
728 dev_dbg(dev, "Device registered\n");
729
730 return ret;
731
732 err_notifier:
733 for (idx = 0; idx < MECCEC_MAX_CEC_ADAP; idx++) {
734 if (meccec->channels & BIT_MASK(idx)) {
> 735 if (adaps--)
736 return ret;
737
738 cec_notifier_cec_adap_unregister(meccec->notifier[idx],
739 meccec->cec_adap[idx]);
740 }
741 }
742 err_delete_adapter:
743 for (idx = 0; idx < MECCEC_MAX_CEC_ADAP; idx++) {
744 if (meccec->channels & BIT_MASK(idx)) {
745 if (notifs--)
746 return ret;
747
748 cec_delete_adapter(meccec->cec_adap[idx]);
749 }
750 }
751 err:
752 dev_err(dev, "%s device probe failed: %d\n", dev_name(dev), ret);
753
754 return ret;
755 }
756

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx