All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Victor Shih <victor.shih@genesyslogic.com.tw>
Cc: oe-kbuild-all@lists.linux.dev,
	Ulf Hansson <ulf.hansson@linaro.org>,
	Ben Chuang <ben.chuang@genesyslogic.com.tw>
Subject: [ulfh-mmc:next 73/75] drivers/mmc/core/sd_uhs2.c:184:37: sparse: sparse: incorrect type in assignment (different base types)
Date: Tue, 5 Nov 2024 13:00:24 +0800	[thread overview]
Message-ID: <202411051248.wvjHSFNj-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc.git next
head:   84185573da385cc0469f5fe2b8c47147c8e24dbf
commit: 53857ced9f23c8720d148748fff434386780afab [73/75] mmc: core: Correct type in variable assignment for UHS-II
config: x86_64-randconfig-121-20241105 (https://download.01.org/0day-ci/archive/20241105/202411051248.wvjHSFNj-lkp@intel.com/config)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241105/202411051248.wvjHSFNj-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
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202411051248.wvjHSFNj-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> drivers/mmc/core/sd_uhs2.c:184:37: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __be32 @@     got unsigned int [assigned] [usertype] payload0 @@
   drivers/mmc/core/sd_uhs2.c:184:37: sparse:     expected restricted __be32
   drivers/mmc/core/sd_uhs2.c:184:37: sparse:     got unsigned int [assigned] [usertype] payload0

vim +184 drivers/mmc/core/sd_uhs2.c

   132	
   133	/*
   134	 * Do the early initialization of the card, by sending the device init broadcast
   135	 * command and wait for the process to be completed.
   136	 */
   137	static int sd_uhs2_dev_init(struct mmc_host *host)
   138	{
   139		struct mmc_command cmd = {0};
   140		struct uhs2_command uhs2_cmd = {};
   141		u32 cnt;
   142		u32 dap, gap, resp_gap;
   143		u32 payload0;
   144		u8 gd = 0;
   145		int err;
   146	
   147		dap = host->uhs2_caps.dap;
   148		gap = host->uhs2_caps.gap;
   149	
   150		/*
   151		 * Refer to UHS-II Addendum Version 1.02 Figure 6-21 to see DEVICE_INIT CCMD format.
   152		 * Head:
   153		 *      - Control Write(R/W=1) with 4-Byte payload(PLEN=01b).
   154		 *      - IOADR = CMD_BASE + 002h
   155		 * Payload:
   156		 *      - bit [3:0]  : GAP(Group Allocated Power)
   157		 *      - bit [7:4]  : GD(Group Descriptor)
   158		 *      - bit [11]   : Complete Flag
   159		 *      - bit [15:12]: DAP(Device Allocated Power)
   160		 */
   161		uhs2_cmd.header = UHS2_NATIVE_PACKET | UHS2_PACKET_TYPE_CCMD;
   162		uhs2_cmd.arg = ((UHS2_DEV_CMD_DEVICE_INIT & 0xFF) << 8) |
   163		       UHS2_NATIVE_CMD_WRITE |
   164		       UHS2_NATIVE_CMD_PLEN_4B |
   165		       (UHS2_DEV_CMD_DEVICE_INIT >> 8);
   166	
   167		/*
   168		 * Refer to UHS-II Addendum Version 1.02 section 6.3.1.
   169		 * Max. time from DEVICE_INIT CCMD EOP reception on Device
   170		 * Rx to its SOP transmission on Device Tx(Tfwd_init_cmd) is
   171		 * 1 second.
   172		 */
   173		cmd.busy_timeout = 1000;
   174	
   175		/*
   176		 * Refer to UHS-II Addendum Version 1.02 section 6.2.6.3.
   177		 * Let's retry the DEVICE_INIT command no more than 30 times.
   178		 */
   179		for (cnt = 0; cnt < 30; cnt++) {
   180			payload0 = ((dap & 0xF) << 12) |
   181				    UHS2_DEV_INIT_COMPLETE_FLAG |
   182				    ((gd & 0xF) << 4) |
   183				    (gap & 0xF);
 > 184			uhs2_cmd.payload[0] = payload0;
   185	
   186			sd_uhs2_cmd_assemble(&cmd, &uhs2_cmd, UHS2_DEV_INIT_PAYLOAD_LEN,
   187					     UHS2_DEV_INIT_RESP_LEN);
   188	
   189			err = mmc_wait_for_cmd(host, &cmd, 0);
   190	
   191			if (err) {
   192				pr_err("%s: %s: UHS2 CMD send fail, err= 0x%x!\n",
   193				       mmc_hostname(host), __func__, err);
   194				continue;
   195			}
   196	
   197			if (uhs2_cmd.uhs2_resp[3] != (UHS2_DEV_CMD_DEVICE_INIT & 0xFF)) {
   198				pr_err("%s: DEVICE_INIT response is wrong!\n",
   199				       mmc_hostname(host));
   200				return -EIO;
   201			}
   202	
   203			if (uhs2_cmd.uhs2_resp[5] & 0x8) {
   204				host->uhs2_caps.group_desc = gd;
   205				return 0;
   206			}
   207			resp_gap = uhs2_cmd.uhs2_resp[4] & 0x0F;
   208			if (gap == resp_gap)
   209				gd++;
   210		}
   211	
   212		if (err) {
   213			pr_err("%s: %s: UHS2 CMD send fail, err= 0x%x!\n",
   214			       mmc_hostname(host), __func__, err);
   215			return err;
   216		}
   217	
   218		return 0;
   219	}
   220	

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

                 reply	other threads:[~2024-11-05  5:01 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=202411051248.wvjHSFNj-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=ben.chuang@genesyslogic.com.tw \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=ulf.hansson@linaro.org \
    --cc=victor.shih@genesyslogic.com.tw \
    /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.