* Re: [PATCH v13 5/6] drm/loongson: add drm driver for loongson display controller [not found] <20220328022835.2508587-5-15330273260@189.cn> @ 2022-03-28 8:51 ` kernel test robot 2022-03-28 9:01 ` Sui Jingfeng 0 siblings, 1 reply; 3+ messages in thread From: kernel test robot @ 2022-03-28 8:51 UTC (permalink / raw) To: Sui Jingfeng, Maxime Ripard, Thomas Zimmermann, Roland Scheidegger, Zack Rusin, Christian Gmeiner, David Airlie, Daniel Vetter, Rob Herring, Thomas Bogendoerfer, Dan Carpenter, Krzysztof Kozlowski, Andrey Zhizhikin, Sam Ravnborg, David S . Miller, Jiaxun Yang, Lucas Stach, Maarten Lankhorst, Ilia Mirkin, Qing Zhang, suijingfeng Cc: kbuild-all, devicetree, linux-mips, dri-devel, linux-kernel Hi Sui, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on drm/drm-next] [also build test WARNING on robh/for-next linus/master v5.17 next-20220328] [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/intel-lab-lkp/linux/commits/Sui-Jingfeng/MIPS-Loongson64-dts-update-the-display-controller-device-node/20220328-103101 base: git://anongit.freedesktop.org/drm/drm drm-next config: microblaze-randconfig-s032-20220328 (https://download.01.org/0day-ci/archive/20220328/202203281653.wiRaycuD-lkp@intel.com/config) compiler: microblaze-linux-gcc (GCC) 11.2.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.4-dirty # https://github.com/intel-lab-lkp/linux/commit/836c0ab646f65b0a8c6574b5d2495c8617e96545 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Sui-Jingfeng/MIPS-Loongson64-dts-update-the-display-controller-device-node/20220328-103101 git checkout 836c0ab646f65b0a8c6574b5d2495c8617e96545 # save the config file to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=microblaze SHELL=/bin/bash drivers/gpu/drm/loongson/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> sparse warnings: (new ones prefixed by >>) >> drivers/gpu/drm/loongson/lsdc_i2c.c:179:23: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *dir_reg @@ got void * @@ drivers/gpu/drm/loongson/lsdc_i2c.c:179:23: sparse: expected void [noderef] __iomem *dir_reg drivers/gpu/drm/loongson/lsdc_i2c.c:179:23: sparse: got void * >> drivers/gpu/drm/loongson/lsdc_i2c.c:180:23: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *dat_reg @@ got void * @@ drivers/gpu/drm/loongson/lsdc_i2c.c:180:23: sparse: expected void [noderef] __iomem *dat_reg drivers/gpu/drm/loongson/lsdc_i2c.c:180:23: sparse: got void * drivers/gpu/drm/loongson/lsdc_i2c.c:252:23: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *dir_reg @@ got void * @@ drivers/gpu/drm/loongson/lsdc_i2c.c:252:23: sparse: expected void [noderef] __iomem *dir_reg drivers/gpu/drm/loongson/lsdc_i2c.c:252:23: sparse: got void * drivers/gpu/drm/loongson/lsdc_i2c.c:253:23: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *dat_reg @@ got void * @@ drivers/gpu/drm/loongson/lsdc_i2c.c:253:23: sparse: expected void [noderef] __iomem *dat_reg drivers/gpu/drm/loongson/lsdc_i2c.c:253:23: sparse: got void * -- >> drivers/gpu/drm/loongson/lsdc_pci_drv.c:185:61: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void *reg_base @@ got void [noderef] __iomem *reg_base @@ drivers/gpu/drm/loongson/lsdc_pci_drv.c:185:61: sparse: expected void *reg_base drivers/gpu/drm/loongson/lsdc_pci_drv.c:185:61: sparse: got void [noderef] __iomem *reg_base -- >> drivers/gpu/drm/loongson/lsdc_output.c:232:63: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void *reg_base @@ got void [noderef] __iomem *reg_base @@ drivers/gpu/drm/loongson/lsdc_output.c:232:63: sparse: expected void *reg_base drivers/gpu/drm/loongson/lsdc_output.c:232:63: sparse: got void [noderef] __iomem *reg_base vim +179 drivers/gpu/drm/loongson/lsdc_i2c.c 129 130 struct lsdc_i2c *lsdc_of_create_i2c_adapter(struct device *parent, 131 void *reg_base, 132 struct device_node *i2c_np) 133 { 134 unsigned int udelay = 5; 135 unsigned int timeout = 2200; 136 int nr = -1; 137 struct i2c_adapter *adapter; 138 struct lsdc_i2c *li2c; 139 u32 sda, scl; 140 int ret; 141 142 li2c = kzalloc(sizeof(*li2c), GFP_KERNEL); 143 if (!li2c) 144 return ERR_PTR(-ENOMEM); 145 146 spin_lock_init(&li2c->reglock); 147 148 ret = of_property_read_u32(i2c_np, "loongson,sda", &sda); 149 if (ret) { 150 dev_err(parent, "No sda pin number provided\n"); 151 return ERR_PTR(ret); 152 } 153 154 ret = of_property_read_u32(i2c_np, "loongson,scl", &scl); 155 if (ret) { 156 dev_err(parent, "No scl pin number provided\n"); 157 return ERR_PTR(ret); 158 } 159 160 ret = of_property_read_u32(i2c_np, "loongson,nr", &nr); 161 if (ret) { 162 int id; 163 164 if (ret == -EINVAL) 165 dev_dbg(parent, "no nr provided\n"); 166 167 id = of_alias_get_id(i2c_np, "i2c"); 168 if (id >= 0) 169 nr = id; 170 } 171 172 li2c->sda = 1 << sda; 173 li2c->scl = 1 << scl; 174 175 /* Optional properties which made the driver more flexible */ 176 of_property_read_u32(i2c_np, "loongson,udelay", &udelay); 177 of_property_read_u32(i2c_np, "loongson,timeout", &timeout); 178 > 179 li2c->dir_reg = reg_base + LS7A_DC_GPIO_DIR_REG; > 180 li2c->dat_reg = reg_base + LS7A_DC_GPIO_DAT_REG; 181 182 li2c->bit.setsda = ls7a_i2c_set_sda; 183 li2c->bit.setscl = ls7a_i2c_set_scl; 184 li2c->bit.getsda = ls7a_i2c_get_sda; 185 li2c->bit.getscl = ls7a_i2c_get_scl; 186 li2c->bit.udelay = udelay; 187 li2c->bit.timeout = usecs_to_jiffies(timeout); 188 li2c->bit.data = li2c; 189 190 adapter = &li2c->adapter; 191 adapter->algo_data = &li2c->bit; 192 adapter->owner = THIS_MODULE; 193 adapter->class = I2C_CLASS_DDC; 194 adapter->dev.parent = parent; 195 adapter->nr = nr; 196 adapter->dev.of_node = i2c_np; 197 198 snprintf(adapter->name, sizeof(adapter->name), "gpio-i2c-%d", nr); 199 200 i2c_set_adapdata(adapter, li2c); 201 202 ret = i2c_bit_add_numbered_bus(adapter); 203 if (ret) { 204 if (i2c_np) 205 of_node_put(i2c_np); 206 207 kfree(li2c); 208 return ERR_PTR(ret); 209 } 210 211 dev_info(parent, "sda=%u, scl=%u, nr=%d, udelay=%u, timeout=%u\n", 212 li2c->sda, li2c->scl, nr, udelay, timeout); 213 214 ret = devm_add_action_or_reset(parent, lsdc_of_release_i2c_adapter, li2c); 215 if (ret) 216 return NULL; 217 218 return li2c; 219 } 220 -- 0-DAY CI Kernel Test Service https://01.org/lkp ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v13 5/6] drm/loongson: add drm driver for loongson display controller 2022-03-28 8:51 ` [PATCH v13 5/6] drm/loongson: add drm driver for loongson display controller kernel test robot @ 2022-03-28 9:01 ` Sui Jingfeng 2022-03-28 10:01 ` Jiaxun Yang 0 siblings, 1 reply; 3+ messages in thread From: Sui Jingfeng @ 2022-03-28 9:01 UTC (permalink / raw) To: kernel test robot, Maxime Ripard, Thomas Zimmermann, Roland Scheidegger, Zack Rusin, Christian Gmeiner, David Airlie, Daniel Vetter, Rob Herring, Thomas Bogendoerfer, Dan Carpenter, Krzysztof Kozlowski, Andrey Zhizhikin, Sam Ravnborg, David S . Miller, Jiaxun Yang, Lucas Stach, Maarten Lankhorst, Ilia Mirkin, Qing Zhang, suijingfeng Cc: kbuild-all, devicetree, linux-mips, dri-devel, linux-kernel On 2022/3/28 16:51, kernel test robot wrote: > Hi Sui, > > Thank you for the patch! Perhaps something to improve: > > [auto build test WARNING on drm/drm-next] > [also build test WARNING on robh/for-next linus/master v5.17 next-20220328] > [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/intel-lab-lkp/linux/commits/Sui-Jingfeng/MIPS-Loongson64-dts-update-the-display-controller-device-node/20220328-103101 > base: git://anongit.freedesktop.org/drm/drm drm-next > config: microblaze-randconfig-s032-20220328 (https://download.01.org/0day-ci/archive/20220328/202203281653.wiRaycuD-lkp@intel.com/config) > compiler: microblaze-linux-gcc (GCC) 11.2.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.4-dirty > # https://github.com/intel-lab-lkp/linux/commit/836c0ab646f65b0a8c6574b5d2495c8617e96545 > git remote add linux-review https://github.com/intel-lab-lkp/linux > git fetch --no-tags linux-review Sui-Jingfeng/MIPS-Loongson64-dts-update-the-display-controller-device-node/20220328-103101 > git checkout 836c0ab646f65b0a8c6574b5d2495c8617e96545 > # save the config file to linux build tree > mkdir build_dir > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=microblaze SHELL=/bin/bash drivers/gpu/drm/loongson/ > > If you fix the issue, kindly add following tag as appropriate > Reported-by: kernel test robot <lkp@intel.com> > > > sparse warnings: (new ones prefixed by >>) >>> drivers/gpu/drm/loongson/lsdc_i2c.c:179:23: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *dir_reg @@ got void * @@ > drivers/gpu/drm/loongson/lsdc_i2c.c:179:23: sparse: expected void [noderef] __iomem *dir_reg > drivers/gpu/drm/loongson/lsdc_i2c.c:179:23: sparse: got void * >>> drivers/gpu/drm/loongson/lsdc_i2c.c:180:23: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *dat_reg @@ got void * @@ > drivers/gpu/drm/loongson/lsdc_i2c.c:180:23: sparse: expected void [noderef] __iomem *dat_reg > drivers/gpu/drm/loongson/lsdc_i2c.c:180:23: sparse: got void * > drivers/gpu/drm/loongson/lsdc_i2c.c:252:23: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *dir_reg @@ got void * @@ > drivers/gpu/drm/loongson/lsdc_i2c.c:252:23: sparse: expected void [noderef] __iomem *dir_reg > drivers/gpu/drm/loongson/lsdc_i2c.c:252:23: sparse: got void * > drivers/gpu/drm/loongson/lsdc_i2c.c:253:23: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *dat_reg @@ got void * @@ > drivers/gpu/drm/loongson/lsdc_i2c.c:253:23: sparse: expected void [noderef] __iomem *dat_reg > drivers/gpu/drm/loongson/lsdc_i2c.c:253:23: sparse: got void * > -- >>> drivers/gpu/drm/loongson/lsdc_pci_drv.c:185:61: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void *reg_base @@ got void [noderef] __iomem *reg_base @@ > drivers/gpu/drm/loongson/lsdc_pci_drv.c:185:61: sparse: expected void *reg_base > drivers/gpu/drm/loongson/lsdc_pci_drv.c:185:61: sparse: got void [noderef] __iomem *reg_base > -- >>> drivers/gpu/drm/loongson/lsdc_output.c:232:63: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void *reg_base @@ got void [noderef] __iomem *reg_base @@ > drivers/gpu/drm/loongson/lsdc_output.c:232:63: sparse: expected void *reg_base > drivers/gpu/drm/loongson/lsdc_output.c:232:63: sparse: got void [noderef] __iomem *reg_base > > vim +179 drivers/gpu/drm/loongson/lsdc_i2c.c > > 129 > 130 struct lsdc_i2c *lsdc_of_create_i2c_adapter(struct device *parent, > 131 void *reg_base, > 132 struct device_node *i2c_np) > 133 { > 134 unsigned int udelay = 5; > 135 unsigned int timeout = 2200; > 136 int nr = -1; > 137 struct i2c_adapter *adapter; > 138 struct lsdc_i2c *li2c; > 139 u32 sda, scl; > 140 int ret; > 141 > 142 li2c = kzalloc(sizeof(*li2c), GFP_KERNEL); > 143 if (!li2c) > 144 return ERR_PTR(-ENOMEM); > 145 > 146 spin_lock_init(&li2c->reglock); > 147 > 148 ret = of_property_read_u32(i2c_np, "loongson,sda", &sda); > 149 if (ret) { > 150 dev_err(parent, "No sda pin number provided\n"); > 151 return ERR_PTR(ret); > 152 } > 153 > 154 ret = of_property_read_u32(i2c_np, "loongson,scl", &scl); > 155 if (ret) { > 156 dev_err(parent, "No scl pin number provided\n"); > 157 return ERR_PTR(ret); > 158 } > 159 > 160 ret = of_property_read_u32(i2c_np, "loongson,nr", &nr); > 161 if (ret) { > 162 int id; > 163 > 164 if (ret == -EINVAL) > 165 dev_dbg(parent, "no nr provided\n"); > 166 > 167 id = of_alias_get_id(i2c_np, "i2c"); > 168 if (id >= 0) > 169 nr = id; > 170 } > 171 > 172 li2c->sda = 1 << sda; > 173 li2c->scl = 1 << scl; > 174 > 175 /* Optional properties which made the driver more flexible */ > 176 of_property_read_u32(i2c_np, "loongson,udelay", &udelay); > 177 of_property_read_u32(i2c_np, "loongson,timeout", &timeout); > 178 > > 179 li2c->dir_reg = reg_base + LS7A_DC_GPIO_DIR_REG; > > 180 li2c->dat_reg = reg_base + LS7A_DC_GPIO_DAT_REG; > 181 > 182 li2c->bit.setsda = ls7a_i2c_set_sda; > 183 li2c->bit.setscl = ls7a_i2c_set_scl; > 184 li2c->bit.getsda = ls7a_i2c_get_sda; > 185 li2c->bit.getscl = ls7a_i2c_get_scl; > 186 li2c->bit.udelay = udelay; > 187 li2c->bit.timeout = usecs_to_jiffies(timeout); > 188 li2c->bit.data = li2c; > 189 > 190 adapter = &li2c->adapter; > 191 adapter->algo_data = &li2c->bit; > 192 adapter->owner = THIS_MODULE; > 193 adapter->class = I2C_CLASS_DDC; > 194 adapter->dev.parent = parent; > 195 adapter->nr = nr; > 196 adapter->dev.of_node = i2c_np; > 197 > 198 snprintf(adapter->name, sizeof(adapter->name), "gpio-i2c-%d", nr); > 199 > 200 i2c_set_adapdata(adapter, li2c); > 201 > 202 ret = i2c_bit_add_numbered_bus(adapter); > 203 if (ret) { > 204 if (i2c_np) > 205 of_node_put(i2c_np); > 206 > 207 kfree(li2c); > 208 return ERR_PTR(ret); > 209 } > 210 > 211 dev_info(parent, "sda=%u, scl=%u, nr=%d, udelay=%u, timeout=%u\n", > 212 li2c->sda, li2c->scl, nr, udelay, timeout); > 213 > 214 ret = devm_add_action_or_reset(parent, lsdc_of_release_i2c_adapter, li2c); > 215 if (ret) > 216 return NULL; > 217 > 218 return li2c; > 219 } > 220 Hi, my driver will not used on microblaze arch, what does this warnings means, do i need to fix this? ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v13 5/6] drm/loongson: add drm driver for loongson display controller 2022-03-28 9:01 ` Sui Jingfeng @ 2022-03-28 10:01 ` Jiaxun Yang 0 siblings, 0 replies; 3+ messages in thread From: Jiaxun Yang @ 2022-03-28 10:01 UTC (permalink / raw) To: Sui Jingfeng, kernel test robot, Maxime Ripard, Thomas Zimmermann, Roland Scheidegger, Zack Rusin, Christian Gmeiner, David Airlie, Daniel Vetter, Rob Herring, Thomas Bogendoerfer, Dan Carpenter, Krzysztof Kozlowski, Andrey Zhizhikin, Sam Ravnborg, David S . Miller, Lucas Stach, Maarten Lankhorst, Ilia Mirkin, Qing Zhang, suijingfeng Cc: kbuild-all, devicetree, linux-mips, dri-devel, linux-kernel 在 2022/3/28 10:01, Sui Jingfeng 写道: > > On 2022/3/28 16:51, kernel test robot wrote: >> Hi Sui, [...] >> > > Hi, my driver will not used on microblaze arch, > > what does this warnings means, do i need to fix this? Hi Jingfeng, The problem it discovered is general for all archs. Type of reg_base (MMIO pointer) should be "void __iomem *" instead of "void *" everywhere, including parameter list. __iomem is the attribute for MMIO. Thanks. - Jiaxun ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-03-28 10:01 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20220328022835.2508587-5-15330273260@189.cn>
2022-03-28 8:51 ` [PATCH v13 5/6] drm/loongson: add drm driver for loongson display controller kernel test robot
2022-03-28 9:01 ` Sui Jingfeng
2022-03-28 10:01 ` Jiaxun Yang
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox