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.