Re: [PATCH] gpu: anx7808: fix a missing check of return value

From: kbuild test robot
Date: Thu Dec 20 2018 - 17:18:45 EST


Hi Kangjie,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v4.20-rc7 next-20181220]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url: https://github.com/0day-ci/linux/commits/Kangjie-Lu/gpu-anx7808-fix-a-missing-check-of-return-value/20181221-054313
config: x86_64-randconfig-x013-201850 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64

All error/warnings (new ones prefixed by >>):

drivers/gpu/drm/bridge/analogix-anx78xx.c: In function 'anx78xx_poweron':
>> drivers/gpu/drm/bridge/analogix-anx78xx.c:646:3: error: implicit declaration of function 'anx78xx_poweroff'; did you mean 'anx78xx_poweron'? [-Werror=implicit-function-declaration]
anx78xx_poweroff(anx78xx);
^~~~~~~~~~~~~~~~
anx78xx_poweron
drivers/gpu/drm/bridge/analogix-anx78xx.c: At top level:
>> drivers/gpu/drm/bridge/analogix-anx78xx.c:655:13: warning: conflicting types for 'anx78xx_poweroff'
static void anx78xx_poweroff(struct anx78xx *anx78xx)
^~~~~~~~~~~~~~~~
>> drivers/gpu/drm/bridge/analogix-anx78xx.c:655:13: error: static declaration of 'anx78xx_poweroff' follows non-static declaration
drivers/gpu/drm/bridge/analogix-anx78xx.c:646:3: note: previous implicit declaration of 'anx78xx_poweroff' was here
anx78xx_poweroff(anx78xx);
^~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors

vim +646 drivers/gpu/drm/bridge/analogix-anx78xx.c

612
613 static int anx78xx_poweron(struct anx78xx *anx78xx)
614 {
615 struct anx78xx_platform_data *pdata = &anx78xx->pdata;
616 int err = 0;
617
618 if (WARN_ON(anx78xx->powered))
619 return err;
620
621 if (pdata->dvdd10) {
622 err = regulator_enable(pdata->dvdd10);
623 if (err) {
624 DRM_ERROR("Failed to enable DVDD10 regulator: %d\n",
625 err);
626 return err;
627 }
628
629 usleep_range(1000, 2000);
630 }
631
632 gpiod_set_value_cansleep(pdata->gpiod_reset, 1);
633 usleep_range(1000, 2000);
634
635 gpiod_set_value_cansleep(pdata->gpiod_pd, 0);
636 usleep_range(1000, 2000);
637
638 gpiod_set_value_cansleep(pdata->gpiod_reset, 0);
639
640 /* Power on registers module */
641 err = anx78xx_set_bits(anx78xx->map[I2C_IDX_TX_P2], SP_POWERDOWN_CTRL_REG,
642 SP_HDCP_PD | SP_AUDIO_PD | SP_VIDEO_PD | SP_LINK_PD);
643 err |= anx78xx_clear_bits(anx78xx->map[I2C_IDX_TX_P2], SP_POWERDOWN_CTRL_REG,
644 SP_REGISTER_PD | SP_TOTAL_PD);
645 if (err) {
> 646 anx78xx_poweroff(anx78xx);
647 return err;
648 }
649
650 anx78xx->powered = true;
651
652 return err;
653 }
654
> 655 static void anx78xx_poweroff(struct anx78xx *anx78xx)
656 {
657 struct anx78xx_platform_data *pdata = &anx78xx->pdata;
658 int err;
659
660 if (WARN_ON(!anx78xx->powered))
661 return;
662
663 gpiod_set_value_cansleep(pdata->gpiod_reset, 1);
664 usleep_range(1000, 2000);
665
666 gpiod_set_value_cansleep(pdata->gpiod_pd, 1);
667 usleep_range(1000, 2000);
668
669 if (pdata->dvdd10) {
670 err = regulator_disable(pdata->dvdd10);
671 if (err) {
672 DRM_ERROR("Failed to disable DVDD10 regulator: %d\n",
673 err);
674 return;
675 }
676
677 usleep_range(1000, 2000);
678 }
679
680 anx78xx->powered = false;
681 }
682

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip