* [broonie-ci:filekCZcLQ 7/13] sound/soc/codecs/rt1320-sdw.c:564 rt1320_load_mcu_patch() warn: impossible condition '(addr > 4295491583) => (0-u32max > 4295491583)'
@ 2024-10-01 3:47 kernel test robot
0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2024-10-01 3:47 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: Shuming Fan <shumingf@realtek.com>
CC: Mark Brown <broonie@kernel.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/ci.git filekCZcLQ
head: 4649cbd97fdae5069e9a71cd7669b62b90e03669
commit: d72498fad93abf1817c4998d172a3d7f98f76bbe [7/13] ASoC: rt1320: reads patch code from firmware file
:::::: branch date: 6 hours ago
:::::: commit date: 29 hours ago
config: i386-randconfig-141-20240930 (https://download.01.org/0day-ci/archive/20241001/202410011117.3dImGD4j-lkp@intel.com/config)
compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)
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>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202410011117.3dImGD4j-lkp@intel.com/
smatch warnings:
sound/soc/codecs/rt1320-sdw.c:564 rt1320_load_mcu_patch() warn: impossible condition '(addr > 4295491583) => (0-u32max > 4295491583)'
vim +564 sound/soc/codecs/rt1320-sdw.c
f465d10cd73188 Shuming Fan 2024-09-02 527
d72498fad93abf Shuming Fan 2024-09-14 528 /*
d72498fad93abf Shuming Fan 2024-09-14 529 * The 'patch code' is written to the patch code area.
d72498fad93abf Shuming Fan 2024-09-14 530 * The patch code area is used for SDCA register expansion flexibility.
d72498fad93abf Shuming Fan 2024-09-14 531 */
d72498fad93abf Shuming Fan 2024-09-14 532 static void rt1320_load_mcu_patch(struct rt1320_sdw_priv *rt1320)
d72498fad93abf Shuming Fan 2024-09-14 533 {
d72498fad93abf Shuming Fan 2024-09-14 534 struct sdw_slave *slave = rt1320->sdw_slave;
d72498fad93abf Shuming Fan 2024-09-14 535 const struct firmware *patch;
d72498fad93abf Shuming Fan 2024-09-14 536 const char *filename;
d72498fad93abf Shuming Fan 2024-09-14 537 unsigned int addr, val;
d72498fad93abf Shuming Fan 2024-09-14 538 const unsigned char *ptr;
d72498fad93abf Shuming Fan 2024-09-14 539 int ret, i;
d72498fad93abf Shuming Fan 2024-09-14 540
d72498fad93abf Shuming Fan 2024-09-14 541 if (rt1320->version_id <= RT1320_VB)
d72498fad93abf Shuming Fan 2024-09-14 542 filename = RT1320_VAB_MCU_PATCH;
d72498fad93abf Shuming Fan 2024-09-14 543 else
d72498fad93abf Shuming Fan 2024-09-14 544 filename = RT1320_VC_MCU_PATCH;
d72498fad93abf Shuming Fan 2024-09-14 545
d72498fad93abf Shuming Fan 2024-09-14 546 /* load the patch code here */
d72498fad93abf Shuming Fan 2024-09-14 547 ret = request_firmware(&patch, filename, &slave->dev);
d72498fad93abf Shuming Fan 2024-09-14 548 if (ret) {
d72498fad93abf Shuming Fan 2024-09-14 549 dev_err(&slave->dev, "%s: Failed to load %s firmware", __func__, filename);
d72498fad93abf Shuming Fan 2024-09-14 550 regmap_write(rt1320->regmap, 0xc598, 0x00);
d72498fad93abf Shuming Fan 2024-09-14 551 regmap_write(rt1320->regmap, 0x10007000, 0x67);
d72498fad93abf Shuming Fan 2024-09-14 552 regmap_write(rt1320->regmap, 0x10007001, 0x80);
d72498fad93abf Shuming Fan 2024-09-14 553 regmap_write(rt1320->regmap, 0x10007002, 0x00);
d72498fad93abf Shuming Fan 2024-09-14 554 regmap_write(rt1320->regmap, 0x10007003, 0x00);
d72498fad93abf Shuming Fan 2024-09-14 555 } else {
d72498fad93abf Shuming Fan 2024-09-14 556 ptr = (const unsigned char *)patch->data;
d72498fad93abf Shuming Fan 2024-09-14 557 if ((patch->size % 8) == 0) {
d72498fad93abf Shuming Fan 2024-09-14 558 for (i = 0; i < patch->size; i += 8) {
d72498fad93abf Shuming Fan 2024-09-14 559 addr = (ptr[i] & 0xff) | (ptr[i + 1] & 0xff) << 8 |
d72498fad93abf Shuming Fan 2024-09-14 560 (ptr[i + 2] & 0xff) << 16 | (ptr[i + 3] & 0xff) << 24;
d72498fad93abf Shuming Fan 2024-09-14 561 val = (ptr[i + 4] & 0xff) | (ptr[i + 5] & 0xff) << 8 |
d72498fad93abf Shuming Fan 2024-09-14 562 (ptr[i + 6] & 0xff) << 16 | (ptr[i + 7] & 0xff) << 24;
d72498fad93abf Shuming Fan 2024-09-14 563
d72498fad93abf Shuming Fan 2024-09-14 @564 if (addr > 0x10007ffff || addr < 0x10007000) {
d72498fad93abf Shuming Fan 2024-09-14 565 dev_err(&slave->dev, "%s: the address 0x%x is wrong", __func__, addr);
d72498fad93abf Shuming Fan 2024-09-14 566 goto _exit_;
d72498fad93abf Shuming Fan 2024-09-14 567 }
d72498fad93abf Shuming Fan 2024-09-14 568 if (val > 0xff) {
d72498fad93abf Shuming Fan 2024-09-14 569 dev_err(&slave->dev, "%s: the value 0x%x is wrong", __func__, val);
d72498fad93abf Shuming Fan 2024-09-14 570 goto _exit_;
d72498fad93abf Shuming Fan 2024-09-14 571 }
d72498fad93abf Shuming Fan 2024-09-14 572 regmap_write(rt1320->regmap, addr, val);
d72498fad93abf Shuming Fan 2024-09-14 573 }
d72498fad93abf Shuming Fan 2024-09-14 574 }
d72498fad93abf Shuming Fan 2024-09-14 575 _exit_:
d72498fad93abf Shuming Fan 2024-09-14 576 release_firmware(patch);
d72498fad93abf Shuming Fan 2024-09-14 577 }
d72498fad93abf Shuming Fan 2024-09-14 578 }
d72498fad93abf Shuming Fan 2024-09-14 579
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread* [broonie-ci:filekCZcLQ 7/13] sound/soc/codecs/rt1320-sdw.c:564 rt1320_load_mcu_patch() warn: impossible condition '(addr > 4295491583) => (0-u32max > 4295491583)'
@ 2024-10-01 7:12 Dan Carpenter
0 siblings, 0 replies; 2+ messages in thread
From: Dan Carpenter @ 2024-10-01 7:12 UTC (permalink / raw)
To: oe-kbuild, Shuming Fan; +Cc: lkp, oe-kbuild-all, Mark Brown
tree: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/ci.git filekCZcLQ
head: 4649cbd97fdae5069e9a71cd7669b62b90e03669
commit: d72498fad93abf1817c4998d172a3d7f98f76bbe [7/13] ASoC: rt1320: reads patch code from firmware file
config: i386-randconfig-141-20240930 (https://download.01.org/0day-ci/archive/20241001/202410011117.3dImGD4j-lkp@intel.com/config)
compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)
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>
| Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
| Closes: https://lore.kernel.org/r/202410011117.3dImGD4j-lkp@intel.com/
smatch warnings:
sound/soc/codecs/rt1320-sdw.c:564 rt1320_load_mcu_patch() warn: impossible condition '(addr > 4295491583) => (0-u32max > 4295491583)'
vim +564 sound/soc/codecs/rt1320-sdw.c
d72498fad93abf Shuming Fan 2024-09-14 532 static void rt1320_load_mcu_patch(struct rt1320_sdw_priv *rt1320)
d72498fad93abf Shuming Fan 2024-09-14 533 {
d72498fad93abf Shuming Fan 2024-09-14 534 struct sdw_slave *slave = rt1320->sdw_slave;
d72498fad93abf Shuming Fan 2024-09-14 535 const struct firmware *patch;
d72498fad93abf Shuming Fan 2024-09-14 536 const char *filename;
d72498fad93abf Shuming Fan 2024-09-14 537 unsigned int addr, val;
d72498fad93abf Shuming Fan 2024-09-14 538 const unsigned char *ptr;
d72498fad93abf Shuming Fan 2024-09-14 539 int ret, i;
d72498fad93abf Shuming Fan 2024-09-14 540
d72498fad93abf Shuming Fan 2024-09-14 541 if (rt1320->version_id <= RT1320_VB)
d72498fad93abf Shuming Fan 2024-09-14 542 filename = RT1320_VAB_MCU_PATCH;
d72498fad93abf Shuming Fan 2024-09-14 543 else
d72498fad93abf Shuming Fan 2024-09-14 544 filename = RT1320_VC_MCU_PATCH;
d72498fad93abf Shuming Fan 2024-09-14 545
d72498fad93abf Shuming Fan 2024-09-14 546 /* load the patch code here */
d72498fad93abf Shuming Fan 2024-09-14 547 ret = request_firmware(&patch, filename, &slave->dev);
d72498fad93abf Shuming Fan 2024-09-14 548 if (ret) {
d72498fad93abf Shuming Fan 2024-09-14 549 dev_err(&slave->dev, "%s: Failed to load %s firmware", __func__, filename);
d72498fad93abf Shuming Fan 2024-09-14 550 regmap_write(rt1320->regmap, 0xc598, 0x00);
d72498fad93abf Shuming Fan 2024-09-14 551 regmap_write(rt1320->regmap, 0x10007000, 0x67);
d72498fad93abf Shuming Fan 2024-09-14 552 regmap_write(rt1320->regmap, 0x10007001, 0x80);
d72498fad93abf Shuming Fan 2024-09-14 553 regmap_write(rt1320->regmap, 0x10007002, 0x00);
d72498fad93abf Shuming Fan 2024-09-14 554 regmap_write(rt1320->regmap, 0x10007003, 0x00);
d72498fad93abf Shuming Fan 2024-09-14 555 } else {
d72498fad93abf Shuming Fan 2024-09-14 556 ptr = (const unsigned char *)patch->data;
d72498fad93abf Shuming Fan 2024-09-14 557 if ((patch->size % 8) == 0) {
d72498fad93abf Shuming Fan 2024-09-14 558 for (i = 0; i < patch->size; i += 8) {
d72498fad93abf Shuming Fan 2024-09-14 559 addr = (ptr[i] & 0xff) | (ptr[i + 1] & 0xff) << 8 |
d72498fad93abf Shuming Fan 2024-09-14 560 (ptr[i + 2] & 0xff) << 16 | (ptr[i + 3] & 0xff) << 24;
d72498fad93abf Shuming Fan 2024-09-14 561 val = (ptr[i + 4] & 0xff) | (ptr[i + 5] & 0xff) << 8 |
d72498fad93abf Shuming Fan 2024-09-14 562 (ptr[i + 6] & 0xff) << 16 | (ptr[i + 7] & 0xff) << 24;
d72498fad93abf Shuming Fan 2024-09-14 563
d72498fad93abf Shuming Fan 2024-09-14 @564 if (addr > 0x10007ffff || addr < 0x10007000) {
^^^^^^^^^^^^^^^^^^
Impossible condition. I suspect there is an extra 'f'.
d72498fad93abf Shuming Fan 2024-09-14 565 dev_err(&slave->dev, "%s: the address 0x%x is wrong", __func__, addr);
d72498fad93abf Shuming Fan 2024-09-14 566 goto _exit_;
d72498fad93abf Shuming Fan 2024-09-14 567 }
d72498fad93abf Shuming Fan 2024-09-14 568 if (val > 0xff) {
d72498fad93abf Shuming Fan 2024-09-14 569 dev_err(&slave->dev, "%s: the value 0x%x is wrong", __func__, val);
d72498fad93abf Shuming Fan 2024-09-14 570 goto _exit_;
d72498fad93abf Shuming Fan 2024-09-14 571 }
d72498fad93abf Shuming Fan 2024-09-14 572 regmap_write(rt1320->regmap, addr, val);
d72498fad93abf Shuming Fan 2024-09-14 573 }
d72498fad93abf Shuming Fan 2024-09-14 574 }
d72498fad93abf Shuming Fan 2024-09-14 575 _exit_:
d72498fad93abf Shuming Fan 2024-09-14 576 release_firmware(patch);
d72498fad93abf Shuming Fan 2024-09-14 577 }
d72498fad93abf Shuming Fan 2024-09-14 578 }
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-10-01 7:12 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-01 3:47 [broonie-ci:filekCZcLQ 7/13] sound/soc/codecs/rt1320-sdw.c:564 rt1320_load_mcu_patch() warn: impossible condition '(addr > 4295491583) => (0-u32max > 4295491583)' kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2024-10-01 7:12 Dan Carpenter
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.