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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.