Linux MIPS Architecture development
 help / color / mirror / Atom feed
* 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