public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:490:31: sparse: sparse: incorrect type in assignment (different base types)
@ 2026-04-15 12:37 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-04-15 12:37 UTC (permalink / raw)
  To: Nicolas Frattaroli
  Cc: oe-kbuild-all, linux-kernel, Ulf Hansson,
	AngeloGioacchino Del Regno

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   1f5ffc672165ff851063a5fd044b727ab2517ae3
commit: f08e7a4e8d6ac4de677727af352ea33c6ce9f444 pmdomain: mediatek: Add support for MFlexGraphics
date:   5 months ago
config: arc-randconfig-r111-20260415 (https://download.01.org/0day-ci/archive/20260415/202604152059.jesiTWK3-lkp@intel.com/config)
compiler: arc-linux-gcc (GCC) 9.5.0
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260415/202604152059.jesiTWK3-lkp@intel.com/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
| Fixes: f08e7a4e8d6a ("pmdomain: mediatek: Add support for MFlexGraphics")
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202604152059.jesiTWK3-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
   drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:418:26: sparse: sparse: incorrect type in initializer (different base types) @@     expected restricted __le32 [usertype] magic @@     got unsigned long @@
   drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:418:26: sparse:     expected restricted __le32 [usertype] magic
   drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:418:26: sparse:     got unsigned long
   drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:458:20: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] magic @@     got unsigned int [usertype] ipi_magic @@
   drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:458:20: sparse:     expected restricted __le32 [usertype] magic
   drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:458:20: sparse:     got unsigned int [usertype] ipi_magic
   drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:472:19: sparse: sparse: restricted signed int degrades to integer
>> drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:490:31: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le64 [assigned] [usertype] base @@     got unsigned int [usertype] shared_mem_phys @@
   drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:490:31: sparse:     expected restricted __le64 [assigned] [usertype] base
   drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:490:31: sparse:     got unsigned int [usertype] shared_mem_phys
   drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:491:31: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [assigned] [usertype] size @@     got unsigned int shared_mem_size @@
   drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:491:31: sparse:     expected restricted __le32 [assigned] [usertype] size
   drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:491:31: sparse:     got unsigned int shared_mem_size
   drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:509:17: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cmd @@     got int @@
   drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:509:17: sparse:     expected restricted __le32 [usertype] cmd
   drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:509:17: sparse:     got int
   drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:510:27: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] power_state @@     got int @@
   drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:510:27: sparse:     expected restricted __le32 [usertype] power_state
   drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:510:27: sparse:     got int
   drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:523:17: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] cmd @@     got int @@
   drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:523:17: sparse:     expected restricted __le32 [usertype] cmd
   drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:523:17: sparse:     got int
   drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:524:38: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted signed int [usertype] gpu_oppidx @@     got unsigned int opp_idx @@
   drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:524:38: sparse:     expected restricted signed int [usertype] gpu_oppidx
   drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:524:38: sparse:     got unsigned int opp_idx
   drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:525:40: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted signed int [usertype] stack_oppidx @@     got unsigned int opp_idx @@
   drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:525:40: sparse:     expected restricted signed int [usertype] stack_oppidx
   drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:525:40: sparse:     got unsigned int opp_idx
   drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:578:42: sparse: sparse: restricted __le32 degrades to integer
   drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:579:44: sparse: sparse: restricted __le32 degrades to integer
   drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:593:44: sparse: sparse: restricted __le32 degrades to integer
   drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:594:46: sparse: sparse: restricted __le32 degrades to integer

vim +490 drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c

   411	
   412	static int mtk_mfg_eb_off(struct mtk_mfg *mfg)
   413	{
   414		struct device *dev = &mfg->pdev->dev;
   415		struct mtk_mfg_ipi_sleep_msg msg = {
   416			.event = 0,
   417			.state = 0,
 > 418			.magic = GPUEB_SLEEP_MAGIC
   419		};
   420		u32 val;
   421		int ret;
   422	
   423		ret = mbox_send_message(mfg->slp_mbox->ch, &msg);
   424		if (ret < 0) {
   425			dev_err(dev, "Cannot send sleep command: %pe\n", ERR_PTR(ret));
   426			return ret;
   427		}
   428	
   429		ret = readl_poll_timeout(mfg->rpc + RPC_PWR_CON, val,
   430					 !(val & PWR_ACK_M), GPUEB_POLL_US,
   431					 GPUEB_TIMEOUT_US);
   432	
   433		if (ret) {
   434			dev_err(dev, "Timed out waiting for EB to power off, val=0x%08X\n", val);
   435			return ret;
   436		}
   437	
   438		return 0;
   439	}
   440	
   441	/**
   442	 * mtk_mfg_send_ipi - synchronously send an IPI message on the gpufreq channel
   443	 * @mfg: pointer to this driver instance's private &struct mtk_mfg
   444	 * @msg: pointer to a message to send; will have magic filled and response assigned
   445	 *
   446	 * Send an IPI message on the gpufreq channel, and wait for a response. Once a
   447	 * response is received, assign a pointer to the response buffer (valid until
   448	 * next response is received) to @msg.
   449	 *
   450	 * Returns 0 on success, negative errno on failure.
   451	 */
   452	static int mtk_mfg_send_ipi(struct mtk_mfg *mfg, struct mtk_mfg_ipi_msg *msg)
   453	{
   454		struct device *dev = &mfg->pdev->dev;
   455		unsigned long wait;
   456		int ret;
   457	
   458		msg->magic = mfg->ipi_magic;
   459	
   460		ret = mbox_send_message(mfg->gf_mbox->ch, msg);
   461		if (ret < 0) {
   462			dev_err(dev, "Cannot send GPUFreq IPI command: %pe\n", ERR_PTR(ret));
   463			return ret;
   464		}
   465	
   466		wait = wait_for_completion_timeout(&mfg->gf_mbox->rx_done, msecs_to_jiffies(500));
   467		if (!wait)
   468			return -ETIMEDOUT;
   469	
   470		msg = mfg->gf_mbox->rx_data;
   471	
   472		if (msg->u.return_value < 0) {
   473			dev_err(dev, "IPI return: %d\n", msg->u.return_value);
   474			return -EPROTO;
   475		}
   476	
   477		return 0;
   478	}
   479	
   480	static int mtk_mfg_init_shared_mem(struct mtk_mfg *mfg)
   481	{
   482		struct device *dev = &mfg->pdev->dev;
   483		struct mtk_mfg_ipi_msg msg = {};
   484		int ret;
   485	
   486		dev_dbg(dev, "clearing GPUEB shared memory, 0x%X bytes\n", mfg->shared_mem_size);
   487		memset_io(mfg->shared_mem, 0, mfg->shared_mem_size);
   488	
   489		msg.cmd = CMD_INIT_SHARED_MEM;
 > 490		msg.u.shared_mem.base = mfg->shared_mem_phys;
   491		msg.u.shared_mem.size = mfg->shared_mem_size;
   492	
   493		ret = mtk_mfg_send_ipi(mfg, &msg);
   494		if (ret)
   495			return ret;
   496	
   497		if (readl(mfg->shared_mem + GF_REG_MAGIC) != GPUEB_MEM_MAGIC) {
   498			dev_err(dev, "EB did not initialise shared memory correctly\n");
   499			return -EIO;
   500		}
   501	
   502		return 0;
   503	}
   504	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-04-15 12:38 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-15 12:37 drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:490:31: sparse: sparse: incorrect type in assignment (different base types) kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox