Hi larry.lai, kernel test robot noticed the following build warnings: [auto build test WARNING on 4fe89d07dcc2804c8b562f6c7896a45643d34b2f] url: https://github.com/intel-lab-lkp/linux/commits/larry-lai/mfd-Add-support-for-UP-board-CPLD-FPGA/20231228-231750 base: 4fe89d07dcc2804c8b562f6c7896a45643d34b2f patch link: https://lore.kernel.org/r/20231228151544.14408-3-larry.lai%40yunjingtech.com patch subject: [PATCH V8 2/3] pinctrl: Add support pin control for UP board CPLD/FPGA config: i386-allyesconfig (https://download.01.org/0day-ci/archive/20231229/202312291646.wfn6dxdH-lkp@xxxxxxxxx/config) compiler: ClangBuiltLinux clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231229/202312291646.wfn6dxdH-lkp@xxxxxxxxx/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@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202312291646.wfn6dxdH-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): >> drivers/pinctrl/pinctrl-upboard.c:709:13: warning: variable length array used [-Wvla] 709 | int offset[pctrl->pctldesc->npins]; | ^~~~~~~~~~~~~~~~~~~~~~ drivers/pinctrl/pinctrl-upboard.c:1089:12: error: incompatible integer to pointer conversion initializing 'const char *' with an expression of type 'int' [-Wint-conversion] 1089 | .ident = BOARD_UP_APL01, | ^~~~~~~~~~~~~~ drivers/pinctrl/pinctrl-upboard.c:46:27: note: expanded from macro 'BOARD_UP_APL01' 46 | #define BOARD_UP_APL01 1 | ^ drivers/pinctrl/pinctrl-upboard.c:1096:12: error: incompatible integer to pointer conversion initializing 'const char *' with an expression of type 'int' [-Wint-conversion] 1096 | .ident = BOARD_UP_APL01, | ^~~~~~~~~~~~~~ drivers/pinctrl/pinctrl-upboard.c:46:27: note: expanded from macro 'BOARD_UP_APL01' 46 | #define BOARD_UP_APL01 1 | ^ drivers/pinctrl/pinctrl-upboard.c:1103:12: error: incompatible integer to pointer conversion initializing 'const char *' with an expression of type 'int' [-Wint-conversion] 1103 | .ident = BOARD_UP_APL03, | ^~~~~~~~~~~~~~ drivers/pinctrl/pinctrl-upboard.c:53:27: note: expanded from macro 'BOARD_UP_APL03' 53 | #define BOARD_UP_APL03 9 | ^ drivers/pinctrl/pinctrl-upboard.c:1110:12: error: incompatible integer to pointer conversion initializing 'const char *' with an expression of type 'int' [-Wint-conversion] 1110 | .ident = BOARD_UP_WHL01, | ^~~~~~~~~~~~~~ drivers/pinctrl/pinctrl-upboard.c:50:27: note: expanded from macro 'BOARD_UP_WHL01' 50 | #define BOARD_UP_WHL01 5 | ^ drivers/pinctrl/pinctrl-upboard.c:1117:12: error: incompatible integer to pointer conversion initializing 'const char *' with an expression of type 'int' [-Wint-conversion] 1117 | .ident = BOARD_UPX_TGL, | ^~~~~~~~~~~~~ drivers/pinctrl/pinctrl-upboard.c:55:26: note: expanded from macro 'BOARD_UPX_TGL' 55 | #define BOARD_UPX_TGL 11 | ^~ drivers/pinctrl/pinctrl-upboard.c:1124:12: error: incompatible integer to pointer conversion initializing 'const char *' with an expression of type 'int' [-Wint-conversion] 1124 | .ident = BOARD_UPN_EHL01, | ^~~~~~~~~~~~~~~ drivers/pinctrl/pinctrl-upboard.c:57:28: note: expanded from macro 'BOARD_UPN_EHL01' 57 | #define BOARD_UPN_EHL01 13 | ^~ drivers/pinctrl/pinctrl-upboard.c:1131:12: error: incompatible integer to pointer conversion initializing 'const char *' with an expression of type 'int' [-Wint-conversion] 1131 | .ident = BOARD_UPS_EHL01, | ^~~~~~~~~~~~~~~ drivers/pinctrl/pinctrl-upboard.c:58:28: note: expanded from macro 'BOARD_UPS_EHL01' 58 | #define BOARD_UPS_EHL01 BOARD_UPN_EHL01 | ^~~~~~~~~~~~~~~ drivers/pinctrl/pinctrl-upboard.c:57:28: note: expanded from macro 'BOARD_UPN_EHL01' 57 | #define BOARD_UPN_EHL01 13 | ^~ drivers/pinctrl/pinctrl-upboard.c:1138:12: error: incompatible integer to pointer conversion initializing 'const char *' with an expression of type 'int' [-Wint-conversion] 1138 | .ident = BOARD_UPX_ADLP01, | ^~~~~~~~~~~~~~~~ drivers/pinctrl/pinctrl-upboard.c:59:28: note: expanded from macro 'BOARD_UPX_ADLP01' 59 | #define BOARD_UPX_ADLP01 15 | ^~ drivers/pinctrl/pinctrl-upboard.c:1145:12: error: incompatible integer to pointer conversion initializing 'const char *' with an expression of type 'int' [-Wint-conversion] 1145 | .ident = BOARD_UPN_ADLN01, | ^~~~~~~~~~~~~~~~ drivers/pinctrl/pinctrl-upboard.c:60:28: note: expanded from macro 'BOARD_UPN_ADLN01' 60 | #define BOARD_UPN_ADLN01 16 | ^~ drivers/pinctrl/pinctrl-upboard.c:1152:12: error: incompatible integer to pointer conversion initializing 'const char *' with an expression of type 'int' [-Wint-conversion] 1152 | .ident = BOARD_UPS_ADLP01, | ^~~~~~~~~~~~~~~~ drivers/pinctrl/pinctrl-upboard.c:61:28: note: expanded from macro 'BOARD_UPS_ADLP01' 61 | #define BOARD_UPS_ADLP01 BOARD_UPX_ADLP01 | ^~~~~~~~~~~~~~~~ drivers/pinctrl/pinctrl-upboard.c:59:28: note: expanded from macro 'BOARD_UPX_ADLP01' 59 | #define BOARD_UPX_ADLP01 15 | ^~ drivers/pinctrl/pinctrl-upboard.c:1159:12: error: incompatible integer to pointer conversion initializing 'const char *' with an expression of type 'int' [-Wint-conversion] 1159 | .ident = BOARD_UP_ADLN01, | ^~~~~~~~~~~~~~~ drivers/pinctrl/pinctrl-upboard.c:62:28: note: expanded from macro 'BOARD_UP_ADLN01' 62 | #define BOARD_UP_ADLN01 18 | ^~ drivers/pinctrl/pinctrl-upboard.c:1185:12: error: incompatible pointer to integer conversion assigning to 'int' from 'const char *const' [-Wint-conversion] 1185 | board_id = system_id->ident; | ^ ~~~~~~~~~~~~~~~~ 1 warning and 12 errors generated. vim +709 drivers/pinctrl/pinctrl-upboard.c 705 706 static void upboard_alt_func_enable(struct gpio_chip *gc, const char *name, int id) 707 { 708 struct upboard_pinctrl *pctrl = container_of(gc, struct upboard_pinctrl, chip); > 709 int offset[pctrl->pctldesc->npins]; 710 int i, cnt; 711 bool input; 712 int mode; 713 unsigned int val; 714 715 /* find all pins */ 716 for (i = 0, cnt = 0; i < pctrl->pctldesc->npins; i++) { 717 if (strstr(pctrl->pctldesc->pins[i].name, name)) 718 offset[cnt++] = i; 719 } 720 721 /* change to alternate function */ 722 for (i = 0; i < cnt; i++) { 723 if (pctrl->pins[offset[i]].regs == NULL) 724 continue; 725 input = false; 726 mode = 0; /* default GPIO */ 727 val = readl(pctrl->pins[offset[i]].regs); 728 729 if (strstr(pctrl->pctldesc->pins[offset[i]].name, "I2C") || 730 strstr(pctrl->pctldesc->pins[offset[i]].name, "PINMUX")) { 731 mode = 1; 732 switch (id) { 733 case BOARD_UPN_ADLN01: 734 case BOARD_UPX_ADLP01: 735 mode = 2; 736 break; 737 default: 738 break; 739 } 740 741 val |= mode<<PADCFG0_PMODE_SHIFT; 742 writel(val, pctrl->pins[offset[i]].regs); 743 upboard_fpga_request_free(pctrl->pctldev, offset[i]); 744 continue; 745 } 746 747 if (strstr(pctrl->pctldesc->pins[offset[i]].name, "UART")) { 748 mode = 1; 749 switch (id) { 750 case BOARD_UPN_EHL01: 751 mode = 4; 752 break; 753 case BOARD_UP_ADLN01: 754 case BOARD_UPN_ADLN01: 755 case BOARD_UPX_ADLP01: 756 mode = 2; 757 break; 758 default: 759 break; 760 } 761 } 762 763 if (strstr(pctrl->pctldesc->pins[offset[i]].name, "SPI")) { 764 mode = 1; 765 switch (id) { 766 case BOARD_UP_WHL01: 767 mode = 3; 768 break; 769 case BOARD_UP_ADLN01: 770 case BOARD_UPN_ADLN01: 771 case BOARD_UPX_ADLP01: 772 mode = 7; 773 if (strstr(pctrl->pctldesc->pins[offset[i]].name, "MOSI")) { 774 val &= ~PADCFG0_GPIOTXDIS; 775 val |= PADCFG0_GPIORXDIS; 776 } 777 778 if (strstr(pctrl->pctldesc->pins[offset[i]].name, "MISO")) 779 val |= PADCFG0_GPIORXDIS; 780 781 if (strstr(pctrl->pctldesc->pins[offset[i]].name, "CLK")) { 782 val &= ~PADCFG0_GPIOTXDIS; 783 val |= PADCFG0_GPIORXDIS; 784 } 785 if (strstr(pctrl->pctldesc->pins[offset[i]].name, "CS0")) 786 val |= PADCFG0_GPIORXDIS; 787 788 if (strstr(pctrl->pctldesc->pins[offset[i]].name, "CS1")) 789 continue; 790 break; 791 default: 792 break; 793 } 794 } 795 796 if (strstr(pctrl->pctldesc->pins[offset[i]].name, "I2S")) { 797 mode = 1; 798 switch (id) { 799 case BOARD_UPX_ADLP01: 800 mode = 4; 801 break; 802 default: 803 break; 804 } 805 } 806 807 val |= mode<<PADCFG0_PMODE_SHIFT; 808 writel(val, pctrl->pins[offset[i]].regs); 809 810 /* input pins */ 811 if (strstr(pctrl->pctldesc->pins[offset[i]].name, "RX")) 812 input = true; 813 814 if (strstr(pctrl->pctldesc->pins[offset[i]].name, "CTS")) 815 input = true; 816 817 if (strstr(pctrl->pctldesc->pins[offset[i]].name, "ADC")) { 818 input = true; 819 if (id == BOARD_UP_APL01) 820 upboard_fpga_request_enable(pctrl->pctldev, NULL, offset[i]); 821 else 822 upboard_fpga_request_free(pctrl->pctldev, offset[i]); 823 } 824 825 if (strstr(pctrl->pctldesc->pins[offset[i]].name, "MISO")) 826 input = true; 827 828 if (strstr(pctrl->pctldesc->pins[offset[i]].name, "DIN")) 829 input = true; 830 831 if (strstr(pctrl->pctldesc->pins[offset[i]].name, "SDI")) 832 input = true; 833 834 upboard_fpga_set_direction(pctrl->pctldev, NULL, offset[i], input); 835 } 836 } 837 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki