tree:
https://github.com/intel/linux-intel-lts.git 5.4/yocto
head: 87241c08286384feb3ddc57d4cb0daca4be1e384
commit: be0e9733a9c8b728a733e6d96210e7abbb0d4d5d [8453/9195] pinctrl: Add Intel Keem Bay
pinctrl driver
config: nios2-randconfig-s031-20200811 (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
# apt-get install sparse
# sparse version: v0.6.2-168-g9554805c-dirty
git checkout be0e9733a9c8b728a733e6d96210e7abbb0d4d5d
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1
CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=nios2
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
drivers/pinctrl/pinctrl-keembay.c:953:20: sparse: sparse: undefined identifier
'pinmux_generic_get_function'
drivers/pinctrl/pinctrl-keembay.c:959:36: sparse: sparse: using member 'data'
in incomplete struct function_desc
> drivers/pinctrl/pinctrl-keembay.c:959:22: sparse: sparse: cast
from unknown type
> drivers/pinctrl/pinctrl-keembay.c:959:20: sparse: sparse: cannot dereference this
type
drivers/pinctrl/pinctrl-keembay.c:1268:32: sparse: sparse: undefined
identifier 'pinmux_generic_get_function_count'
drivers/pinctrl/pinctrl-keembay.c:1269:32: sparse: sparse: undefined identifier
'pinmux_generic_get_function_name'
drivers/pinctrl/pinctrl-keembay.c:1270:32: sparse: sparse: undefined identifier
'pinmux_generic_get_function_groups'
drivers/pinctrl/pinctrl-keembay.c:1797:71: sparse: sparse: using member 'name'
in incomplete struct function_desc
drivers/pinctrl/pinctrl-keembay.c:1807:39: sparse: sparse: using member
'num_group_names' in incomplete struct function_desc
drivers/pinctrl/pinctrl-keembay.c:1808:48: sparse: sparse: using member
'group_names' in incomplete struct function_desc
drivers/pinctrl/pinctrl-keembay.c:1810:34: sparse: sparse: using member
'group_names' in incomplete struct function_desc
drivers/pinctrl/pinctrl-keembay.c:1811:37: sparse: sparse: using member
'group_names' in incomplete struct function_desc
drivers/pinctrl/pinctrl-keembay.c:1815:42: sparse: sparse: using member
'group_names' in incomplete struct function_desc
drivers/pinctrl/pinctrl-keembay.c:1821:35: sparse: sparse: using member
'group_names' in incomplete struct function_desc
drivers/pinctrl/pinctrl-keembay.c:1832:17: sparse: sparse: undefined identifier
'pinmux_generic_add_function'
drivers/pinctrl/pinctrl-keembay.c:1865:36: sparse: sparse: using member 'name'
in incomplete struct function_desc
drivers/pinctrl/pinctrl-keembay.c:1866:64: sparse: sparse: using member 'name'
in incomplete struct function_desc
drivers/pinctrl/pinctrl-keembay.c:1867:45: sparse: sparse: using member
'num_group_names' in incomplete struct function_desc
> drivers/pinctrl/pinctrl-keembay.c:1871:37: sparse: sparse: bad
argument type for ++/--
drivers/pinctrl/pinctrl-keembay.c:1874:34: sparse:
sparse: using member 'name' in incomplete struct function_desc
drivers/pinctrl/pinctrl-keembay.c:1875:37: sparse: sparse: using member 'name'
in incomplete struct function_desc
drivers/pinctrl/pinctrl-keembay.c:1876:37: sparse: sparse: using member
'num_group_names' in incomplete struct function_desc
drivers/pinctrl/pinctrl-keembay.c:1877:37: sparse: sparse: using member 'data'
in incomplete struct function_desc
drivers/pinctrl/pinctrl-keembay.c: note: in included file (through
arch/nios2/include/asm/io.h, include/linux/io.h, include/linux/irq.h, ...):
include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32
include/asm-generic/io.h:225:22: sparse: sparse: incorrect type in argument 1
(different base types) @@ expected unsigned int [usertype] value @@ got restricted
__le32 [usertype] @@
include/asm-generic/io.h:225:22: sparse: expected unsigned int [usertype] value
include/asm-generic/io.h:225:22: sparse: got restricted __le32 [usertype]
include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32
include/asm-generic/io.h:225:22: sparse: sparse: incorrect type in argument 1
(different base types) @@ expected unsigned int [usertype] value @@ got restricted
__le32 [usertype] @@
include/asm-generic/io.h:225:22: sparse: expected unsigned int [usertype] value
include/asm-generic/io.h:225:22: sparse: got restricted __le32 [usertype]
include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32
include/asm-generic/io.h:225:22: sparse: sparse: incorrect type in argument 1
(different base types) @@ expected unsigned int [usertype] value @@ got restricted
__le32 [usertype] @@
include/asm-generic/io.h:225:22: sparse: expected unsigned int [usertype] value
include/asm-generic/io.h:225:22: sparse: got restricted __le32 [usertype]
include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32
include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32
include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32
include/asm-generic/io.h:225:22: sparse: sparse: incorrect type in argument 1
(different base types) @@ expected unsigned int [usertype] value @@ got restricted
__le32 [usertype] @@
include/asm-generic/io.h:225:22: sparse: expected unsigned int [usertype] value
include/asm-generic/io.h:225:22: sparse: got restricted __le32 [usertype]
include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32
include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32
include/asm-generic/io.h:225:22: sparse: sparse: incorrect type in argument 1
(different base types) @@ expected unsigned int [usertype] value @@ got restricted
__le32 [usertype] @@
include/asm-generic/io.h:225:22: sparse: expected unsigned int [usertype] value
include/asm-generic/io.h:225:22: sparse: got restricted __le32 [usertype]
include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32
include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32
include/asm-generic/io.h:225:22: sparse: sparse: incorrect type in argument 1
(different base types) @@ expected unsigned int [usertype] value @@ got restricted
__le32 [usertype] @@
include/asm-generic/io.h:225:22: sparse: expected unsigned int [usertype] value
include/asm-generic/io.h:225:22: sparse: got restricted __le32 [usertype]
include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32
include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32
include/asm-generic/io.h:225:22: sparse: sparse: incorrect type in argument 1
(different base types) @@ expected unsigned int [usertype] value @@ got restricted
__le32 [usertype] @@
include/asm-generic/io.h:225:22: sparse: expected unsigned int [usertype] value
include/asm-generic/io.h:225:22: sparse: got restricted __le32 [usertype]
include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32
include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32
include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32
include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32
include/asm-generic/io.h:225:22: sparse: sparse: incorrect type in argument 1
(different base types) @@ expected unsigned int [usertype] value @@ got restricted
__le32 [usertype] @@
include/asm-generic/io.h:225:22: sparse: expected unsigned int [usertype] value
include/asm-generic/io.h:225:22: sparse: got restricted __le32 [usertype]
include/asm-generic/io.h:225:22: sparse: sparse: incorrect type in argument 1
(different base types) @@ expected unsigned int [usertype] value @@ got restricted
__le32 [usertype] @@
include/asm-generic/io.h:225:22: sparse: expected unsigned int [usertype] value
include/asm-generic/io.h:225:22: sparse: got restricted __le32 [usertype]
include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32
include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32
include/asm-generic/io.h:225:22: sparse: sparse: incorrect type in argument 1
(different base types) @@ expected unsigned int [usertype] value @@ got restricted
__le32 [usertype] @@
include/asm-generic/io.h:225:22: sparse: expected unsigned int [usertype] value
include/asm-generic/io.h:225:22: sparse: got restricted __le32 [usertype]
include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32
include/asm-generic/io.h:225:22: sparse: sparse: incorrect type in argument 1
(different base types) @@ expected unsigned int [usertype] value @@ got restricted
__le32 [usertype] @@
include/asm-generic/io.h:225:22: sparse: expected unsigned int [usertype] value
include/asm-generic/io.h:225:22: sparse: got restricted __le32 [usertype]
include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32
include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32
include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32
include/asm-generic/io.h:225:22: sparse: sparse: incorrect type in argument 1
(different base types) @@ expected unsigned int [usertype] value @@ got restricted
__le32 [usertype] @@
include/asm-generic/io.h:225:22: sparse: expected unsigned int [usertype] value
include/asm-generic/io.h:225:22: sparse: got restricted __le32 [usertype]
include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32
include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32
include/asm-generic/io.h:179:15: sparse: sparse: cast to restricted __le32
include/asm-generic/io.h:225:22: sparse: sparse: incorrect type in argument 1
(different base types) @@ expected unsigned int [usertype] value @@ got restricted
__le32 [usertype] @@
include/asm-generic/io.h:225:22: sparse: expected unsigned int [usertype] value
include/asm-generic/io.h:225:22: sparse: got restricted __le32 [usertype]
vim +959 drivers/pinctrl/pinctrl-keembay.c
936
937 static int keembay_set_mux(struct pinctrl_dev *pctldev,
938 unsigned int func_select,
939 unsigned int group_select)
940 {
941 struct keembay_pinctrl *kpc = pinctrl_dev_get_drvdata(pctldev);
942 struct function_desc *function;
943 struct group_desc *group;
944 unsigned long flags;
945 u8 pin_mode;
946 int pin;
947 u32 reg;
948
949 group = pinctrl_generic_get_group(pctldev, group_select);
950 if (!group)
951 return -EINVAL;
952
953 function = pinmux_generic_get_function(pctldev, func_select);
954 if (!function)
955 return -EINVAL;
956
957 /* Change modes for pins in the selected group */
958 pin = *group->pins;
959 pin_mode = *(u8 *)(function->data);
960
961 raw_spin_lock_irqsave(&kpc->lock, flags);
962 reg = read_reg(kpc->base1 + GPIO_MODE, pin);
963 reg &= ~GPIO_MODE_SELECT_MASK;
964 reg |= FIELD_PREP(GPIO_MODE_SELECT_MASK, pin_mode);
965 write_reg(reg, kpc->base1 + GPIO_MODE, pin);
966 raw_spin_unlock_irqrestore(&kpc->lock, flags);
967
968 return 0;
969 }
970
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org