From: kernel test robot <lkp@intel.com>
To: Nicolas Frattaroli <nicolas.frattaroli@collabora.com>
Cc: oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org,
Ulf Hansson <ulf.hansson@linaro.org>,
AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com>
Subject: drivers/pmdomain/mediatek/mtk-mfg-pmdomain.c:490:31: sparse: sparse: incorrect type in assignment (different base types)
Date: Wed, 15 Apr 2026 20:37:07 +0800 [thread overview]
Message-ID: <202604152059.jesiTWK3-lkp@intel.com> (raw)
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
reply other threads:[~2026-04-15 12:38 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202604152059.jesiTWK3-lkp@intel.com \
--to=lkp@intel.com \
--cc=angelogioacchino.delregno@collabora.com \
--cc=linux-kernel@vger.kernel.org \
--cc=nicolas.frattaroli@collabora.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=ulf.hansson@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox