[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <202503141052.v7b9psFM-lkp@intel.com>
Date: Fri, 14 Mar 2025 11:19:30 +0800
From: kernel test robot <lkp@...el.com>
To: Subu Dwevedi <messigoatcr7nop@...il.com>
Cc: oe-kbuild-all@...ts.linux.dev, Subu Dwevedi <messigoatcr7nop@...il.com>,
Henrik Rydberg <rydberg@...math.org>,
Jean Delvare <jdelvare@...e.com>,
Guenter Roeck <linux@...ck-us.net>, linux-hwmon@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/2] hwmon/applesmc: add MMIO for newer macs
Hi Subu,
kernel test robot noticed the following build warnings:
[auto build test WARNING on groeck-staging/hwmon-next]
[also build test WARNING on linus/master v6.14-rc6 next-20250313]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Subu-Dwevedi/hwmon-applesmc-add-MMIO-for-newer-macs/20250312-203248
base: https://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git hwmon-next
patch link: https://lore.kernel.org/r/20250312123055.1735-2-messigoatcr7nop%40gmail.com
patch subject: [PATCH 1/2] hwmon/applesmc: add MMIO for newer macs
config: x86_64-randconfig-122-20250313 (https://download.01.org/0day-ci/archive/20250314/202503141052.v7b9psFM-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250314/202503141052.v7b9psFM-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@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202503141052.v7b9psFM-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> drivers/hwmon/applesmc.c:257:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned char [usertype] * @@
drivers/hwmon/applesmc.c:257:31: sparse: expected void const [noderef] __iomem *
drivers/hwmon/applesmc.c:257:31: sparse: got unsigned char [usertype] *
>> drivers/hwmon/applesmc.c:258:46: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned char [usertype] * @@
drivers/hwmon/applesmc.c:258:46: sparse: expected void [noderef] __iomem *
drivers/hwmon/applesmc.c:258:46: sparse: got unsigned char [usertype] *
drivers/hwmon/applesmc.c:269:44: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned char [usertype] * @@
drivers/hwmon/applesmc.c:269:44: sparse: expected void const [noderef] __iomem *
drivers/hwmon/applesmc.c:269:44: sparse: got unsigned char [usertype] *
drivers/hwmon/applesmc.c:281:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned char [usertype] * @@
drivers/hwmon/applesmc.c:281:44: sparse: expected void [noderef] __iomem *
drivers/hwmon/applesmc.c:281:44: sparse: got unsigned char [usertype] *
drivers/hwmon/applesmc.c:282:34: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned char [usertype] * @@
drivers/hwmon/applesmc.c:282:34: sparse: expected void [noderef] __iomem *
drivers/hwmon/applesmc.c:282:34: sparse: got unsigned char [usertype] *
drivers/hwmon/applesmc.c:283:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned char [usertype] * @@
drivers/hwmon/applesmc.c:283:33: sparse: expected void [noderef] __iomem *
drivers/hwmon/applesmc.c:283:33: sparse: got unsigned char [usertype] *
drivers/hwmon/applesmc.c:288:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned char [usertype] * @@
drivers/hwmon/applesmc.c:288:31: sparse: expected void const [noderef] __iomem *
drivers/hwmon/applesmc.c:288:31: sparse: got unsigned char [usertype] *
drivers/hwmon/applesmc.c:292:39: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned char [usertype] * @@
drivers/hwmon/applesmc.c:292:39: sparse: expected void const [noderef] __iomem *
drivers/hwmon/applesmc.c:292:39: sparse: got unsigned char [usertype] *
drivers/hwmon/applesmc.c:299:71: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned char [usertype] * @@
drivers/hwmon/applesmc.c:299:71: sparse: expected void const [noderef] __iomem *
drivers/hwmon/applesmc.c:299:71: sparse: got unsigned char [usertype] *
drivers/hwmon/applesmc.c:302:81: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned char [usertype] * @@
drivers/hwmon/applesmc.c:302:81: sparse: expected void const [noderef] __iomem *
drivers/hwmon/applesmc.c:302:81: sparse: got unsigned char [usertype] *
drivers/hwmon/applesmc.c:306:73: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned char [usertype] * @@
drivers/hwmon/applesmc.c:306:73: sparse: expected void const [noderef] __iomem *
drivers/hwmon/applesmc.c:306:73: sparse: got unsigned char [usertype] *
>> drivers/hwmon/applesmc.c:311:49: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const volatile [noderef] __iomem * @@ got unsigned char [usertype] * @@
drivers/hwmon/applesmc.c:311:49: sparse: expected void const volatile [noderef] __iomem *
drivers/hwmon/applesmc.c:311:49: sparse: got unsigned char [usertype] *
drivers/hwmon/applesmc.c:320:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned char [usertype] * @@
drivers/hwmon/applesmc.c:320:44: sparse: expected void [noderef] __iomem *
drivers/hwmon/applesmc.c:320:44: sparse: got unsigned char [usertype] *
drivers/hwmon/applesmc.c:324:63: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned char [usertype] * @@
drivers/hwmon/applesmc.c:324:63: sparse: expected void [noderef] __iomem *
drivers/hwmon/applesmc.c:324:63: sparse: got unsigned char [usertype] *
drivers/hwmon/applesmc.c:327:73: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned char [usertype] * @@
drivers/hwmon/applesmc.c:327:73: sparse: expected void [noderef] __iomem *
drivers/hwmon/applesmc.c:327:73: sparse: got unsigned char [usertype] *
drivers/hwmon/applesmc.c:331:65: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned char [usertype] * @@
drivers/hwmon/applesmc.c:331:65: sparse: expected void [noderef] __iomem *
drivers/hwmon/applesmc.c:331:65: sparse: got unsigned char [usertype] *
drivers/hwmon/applesmc.c:335:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned char [usertype] * @@
drivers/hwmon/applesmc.c:335:33: sparse: expected void [noderef] __iomem *
drivers/hwmon/applesmc.c:335:33: sparse: got unsigned char [usertype] *
drivers/hwmon/applesmc.c:336:34: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned char [usertype] * @@
drivers/hwmon/applesmc.c:336:34: sparse: expected void [noderef] __iomem *
drivers/hwmon/applesmc.c:336:34: sparse: got unsigned char [usertype] *
drivers/hwmon/applesmc.c:337:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned char [usertype] * @@
drivers/hwmon/applesmc.c:337:33: sparse: expected void [noderef] __iomem *
drivers/hwmon/applesmc.c:337:33: sparse: got unsigned char [usertype] *
drivers/hwmon/applesmc.c:341:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned char [usertype] * @@
drivers/hwmon/applesmc.c:341:31: sparse: expected void const [noderef] __iomem *
drivers/hwmon/applesmc.c:341:31: sparse: got unsigned char [usertype] *
drivers/hwmon/applesmc.c:510:52: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned char [usertype] * @@
drivers/hwmon/applesmc.c:510:52: sparse: expected void [noderef] __iomem *
drivers/hwmon/applesmc.c:510:52: sparse: got unsigned char [usertype] *
drivers/hwmon/applesmc.c:511:39: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned char [usertype] * @@
drivers/hwmon/applesmc.c:511:39: sparse: expected void [noderef] __iomem *
drivers/hwmon/applesmc.c:511:39: sparse: got unsigned char [usertype] *
drivers/hwmon/applesmc.c:512:63: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned char [usertype] * @@
drivers/hwmon/applesmc.c:512:63: sparse: expected void [noderef] __iomem *
drivers/hwmon/applesmc.c:512:63: sparse: got unsigned char [usertype] *
drivers/hwmon/applesmc.c:517:41: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned char [usertype] * @@
drivers/hwmon/applesmc.c:517:41: sparse: expected void const [noderef] __iomem *
drivers/hwmon/applesmc.c:517:41: sparse: got unsigned char [usertype] *
drivers/hwmon/applesmc.c:521:58: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned char [usertype] * @@
drivers/hwmon/applesmc.c:521:58: sparse: expected void const [noderef] __iomem *
drivers/hwmon/applesmc.c:521:58: sparse: got unsigned char [usertype] *
drivers/hwmon/applesmc.c:522:48: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned char [usertype] * @@
drivers/hwmon/applesmc.c:522:48: sparse: expected void const [noderef] __iomem *
drivers/hwmon/applesmc.c:522:48: sparse: got unsigned char [usertype] *
drivers/hwmon/applesmc.c:523:50: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned char [usertype] * @@
drivers/hwmon/applesmc.c:523:50: sparse: expected void const [noderef] __iomem *
drivers/hwmon/applesmc.c:523:50: sparse: got unsigned char [usertype] *
>> drivers/hwmon/applesmc.c:740:19: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [usertype] *static [noderef] [toplevel] __iomem mmio_base @@ got void [noderef] __iomem * @@
drivers/hwmon/applesmc.c:740:19: sparse: expected unsigned char [usertype] *static [noderef] [toplevel] __iomem mmio_base
drivers/hwmon/applesmc.c:740:19: sparse: got void [noderef] __iomem *
drivers/hwmon/applesmc.c:745:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned char [usertype] * @@
drivers/hwmon/applesmc.c:745:31: sparse: expected void const [noderef] __iomem *
drivers/hwmon/applesmc.c:745:31: sparse: got unsigned char [usertype] *
>> drivers/hwmon/applesmc.c:757:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned char [usertype] *static [noderef] [toplevel] __iomem mmio_base @@
drivers/hwmon/applesmc.c:757:17: sparse: expected void volatile [noderef] __iomem *addr
drivers/hwmon/applesmc.c:757:17: sparse: got unsigned char [usertype] *static [noderef] [toplevel] __iomem mmio_base
drivers/hwmon/applesmc.c:1611:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned char [usertype] *static [noderef] [toplevel] __iomem mmio_base @@
drivers/hwmon/applesmc.c:1611:25: sparse: expected void volatile [noderef] __iomem *addr
drivers/hwmon/applesmc.c:1611:25: sparse: got unsigned char [usertype] *static [noderef] [toplevel] __iomem mmio_base
>> drivers/hwmon/applesmc.c:257:21: sparse: sparse: dereference of noderef expression
drivers/hwmon/applesmc.c:258:36: sparse: sparse: dereference of noderef expression
drivers/hwmon/applesmc.c:269:34: sparse: sparse: dereference of noderef expression
drivers/hwmon/applesmc.c:281:34: sparse: sparse: dereference of noderef expression
drivers/hwmon/applesmc.c:282:24: sparse: sparse: dereference of noderef expression
drivers/hwmon/applesmc.c:283:23: sparse: sparse: dereference of noderef expression
drivers/hwmon/applesmc.c:288:21: sparse: sparse: dereference of noderef expression
drivers/hwmon/applesmc.c:292:29: sparse: sparse: dereference of noderef expression
drivers/hwmon/applesmc.c:299:61: sparse: sparse: dereference of noderef expression
drivers/hwmon/applesmc.c:302:71: sparse: sparse: dereference of noderef expression
drivers/hwmon/applesmc.c:306:63: sparse: sparse: dereference of noderef expression
drivers/hwmon/applesmc.c:311:39: sparse: sparse: dereference of noderef expression
drivers/hwmon/applesmc.c:320:34: sparse: sparse: dereference of noderef expression
drivers/hwmon/applesmc.c:324:53: sparse: sparse: dereference of noderef expression
drivers/hwmon/applesmc.c:327:63: sparse: sparse: dereference of noderef expression
drivers/hwmon/applesmc.c:331:55: sparse: sparse: dereference of noderef expression
drivers/hwmon/applesmc.c:335:23: sparse: sparse: dereference of noderef expression
drivers/hwmon/applesmc.c:336:24: sparse: sparse: dereference of noderef expression
drivers/hwmon/applesmc.c:337:23: sparse: sparse: dereference of noderef expression
drivers/hwmon/applesmc.c:341:21: sparse: sparse: dereference of noderef expression
drivers/hwmon/applesmc.c:510:42: sparse: sparse: dereference of noderef expression
drivers/hwmon/applesmc.c:511:29: sparse: sparse: dereference of noderef expression
drivers/hwmon/applesmc.c:512:53: sparse: sparse: dereference of noderef expression
drivers/hwmon/applesmc.c:517:31: sparse: sparse: dereference of noderef expression
drivers/hwmon/applesmc.c:521:48: sparse: sparse: dereference of noderef expression
drivers/hwmon/applesmc.c:522:38: sparse: sparse: dereference of noderef expression
drivers/hwmon/applesmc.c:523:40: sparse: sparse: dereference of noderef expression
drivers/hwmon/applesmc.c:742:14: sparse: sparse: dereference of noderef expression
drivers/hwmon/applesmc.c:745:21: sparse: sparse: dereference of noderef expression
drivers/hwmon/applesmc.c:757:17: sparse: sparse: dereference of noderef expression
drivers/hwmon/applesmc.c:1611:25: sparse: sparse: dereference of noderef expression
vim +257 drivers/hwmon/applesmc.c
250
251 /*
252 * MMIO Impliementation
253 */
254
255 static void clearArbitration(void)
256 {
> 257 if (ioread8(mmio_base + 0x4005))
> 258 return iowrite8(0, mmio_base + 0x4005);
259 }
260 static int waitForKeyDone(void)
261 {
262 int i = 1000; //millisecounds
263 u8 status;
264
265 while (i) {
266 msleep(1);
267 i--;
268
269 status = ioread8(mmio_base + 0x4005);
270 if (status & 0x20)
271 return 0;
272 }
273
274 return -EIO;
275 }
276 static int mmio_read_smc(u8 cmd, const char *key, u8 *buffer, u64 len)
277 {
278 u8 i, u = 0;
279
280 clearArbitration();
281 iowrite32(*((u32 *)key), mmio_base + 0x78);
282 iowrite8(0x15, mmio_base + 0x7E);
283 iowrite8(cmd, mmio_base + 0x7F);
284
285 if (waitForKeyDone())
286 return -EIO;
287
288 i = ioread8(mmio_base + 0x7F);
289 if (i)
290 return -EIO;
291 if (cmd == APPLESMC_READ_CMD) {
292 i = ioread8(mmio_base + 0x7D);
293 if (i > len || !i)
294 return -EIO;
295
296 while (u < i) {
297 if ((i - u) < 4) {
298 if ((i - u) < 2) {
299 buffer[u] = ioread8(mmio_base + u);
300 u += 1;
301 } else {
302 *(u16 *)&buffer[u] = ioread16(mmio_base + u);
303 u += 2;
304 }
305 } else {
306 *(u32 *)&buffer[u] = ioread32(mmio_base + u);
307 u += 4;
308 }
309 }
310 } else
> 311 memcpy_fromio(buffer, mmio_base + 0x0, len);
312
313 return 0;
314 }
315 static int mmio_write_smc(u8 cmd, const char *key, const u8 *buffer, u8 len)
316 {
317 u8 i = 0;
318
319 clearArbitration();
320 iowrite32(*((u32 *)key), mmio_base + 0x78);
321 while (i < len) {
322 if (len - i < 4) {
323 if (len - i < 2) {
324 iowrite8(buffer[i], mmio_base + i);
325 i += 1;
326 } else {
327 iowrite16(*(u16 *)&buffer[i], mmio_base + i);
328 i += 2;
329 }
330 } else {
331 iowrite32(*(u32 *)&buffer[i], mmio_base + i);
332 i += 4;
333 }
334 }
335 iowrite8(len, mmio_base + 0x7D);
336 iowrite8(0x15, mmio_base + 0x7E);
337 iowrite8(cmd, mmio_base + 0x7F);
338 if (waitForKeyDone())
339 return -EIO;
340
341 i = ioread8(mmio_base + 0x7F);
342 if (i)
343 return -EIO;
344
345 return 0;
346 }
347
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Powered by blists - more mailing lists