[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202211121132.U3Qnbtam-lkp@intel.com>
Date: Sat, 12 Nov 2022 11:40:08 +0800
From: kernel test robot <lkp@...el.com>
To: Min Li <min.li.xe@...esas.com>, richardcochran@...il.com,
lee.jones@...aro.org
Cc: llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev,
linux-kernel@...r.kernel.org, netdev@...r.kernel.org,
Min Li <min.li.xe@...esas.com>
Subject: Re: [PATCH net 1/2] mfd/ptp: clockmatrix: support 32-bit address
space
Hi Min,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on net/master]
url: https://github.com/intel-lab-lkp/linux/commits/Min-Li/mfd-ptp-clockmatrix-support-32-bit-address-space/20221112-041119
patch link: https://lore.kernel.org/r/20221111200911.6505-1-min.li.xe%40renesas.com
patch subject: [PATCH net 1/2] mfd/ptp: clockmatrix: support 32-bit address space
config: x86_64-randconfig-a005
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/8c173792ded55a67f9a7895633ac3e8a99871a02
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Min-Li/mfd-ptp-clockmatrix-support-32-bit-address-space/20221112-041119
git checkout 8c173792ded55a67f9a7895633ac3e8a99871a02
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash drivers/ptp/
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@...el.com>
All warnings (new ones prefixed by >>):
>> drivers/ptp/ptp_clockmatrix.c:1257:50: warning: implicit conversion from 'int' to 'u16' (aka 'unsigned short') changes value from 537972560 to 53072 [-Wconstant-conversion]
u16 scratch = IDTCM_FW_REG(idtcm->fw_ver, V520, SCRATCH);
~~~~~~~ ^~~~~~~
include/linux/mfd/idt8a340_reg.h:458:43: note: expanded from macro 'SCRATCH'
#define SCRATCH 0x2010cf50
^~~~~~~~~~
include/linux/mfd/idt8a340_reg.h:677:55: note: expanded from macro 'IDTCM_FW_REG'
#define IDTCM_FW_REG(FW, VER, REG) (((FW) < (VER)) ? (REG) : (REG##_##VER))
^~~
drivers/ptp/ptp_clockmatrix.c:1257:16: warning: implicit conversion from 'int' to 'u16' (aka 'unsigned short') changes value from 537972556 to 53068 [-Wconstant-conversion]
u16 scratch = IDTCM_FW_REG(idtcm->fw_ver, V520, SCRATCH);
~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/mfd/idt8a340_reg.h:677:63: note: expanded from macro 'IDTCM_FW_REG'
#define IDTCM_FW_REG(FW, VER, REG) (((FW) < (VER)) ? (REG) : (REG##_##VER))
^~~~~~~~~~~
<scratch space>:206:1: note: expanded from here
SCRATCH_V520
^~~~~~~~~~~~
include/linux/mfd/idt8a340_reg.h:459:43: note: expanded from macro 'SCRATCH_V520'
#define SCRATCH_V520 0x2010cf4c
^~~~~~~~~~
2 warnings generated.
vim +1257 drivers/ptp/ptp_clockmatrix.c
3a6ba7dc779935 Vincent Cheng 2019-10-31 1253
3a6ba7dc779935 Vincent Cheng 2019-10-31 1254 static int idtcm_load_firmware(struct idtcm *idtcm,
3a6ba7dc779935 Vincent Cheng 2019-10-31 1255 struct device *dev)
3a6ba7dc779935 Vincent Cheng 2019-10-31 1256 {
794c3dffacc166 Min Li 2021-09-13 @1257 u16 scratch = IDTCM_FW_REG(idtcm->fw_ver, V520, SCRATCH);
7ea5fda2b1325e Min Li 2020-07-28 1258 char fname[128] = FW_FILENAME;
3a6ba7dc779935 Vincent Cheng 2019-10-31 1259 const struct firmware *fw;
3a6ba7dc779935 Vincent Cheng 2019-10-31 1260 struct idtcm_fwrc *rec;
3a6ba7dc779935 Vincent Cheng 2019-10-31 1261 u32 regaddr;
3a6ba7dc779935 Vincent Cheng 2019-10-31 1262 int err;
3a6ba7dc779935 Vincent Cheng 2019-10-31 1263 s32 len;
3a6ba7dc779935 Vincent Cheng 2019-10-31 1264 u8 val;
3a6ba7dc779935 Vincent Cheng 2019-10-31 1265 u8 loaddr;
3a6ba7dc779935 Vincent Cheng 2019-10-31 1266
7ea5fda2b1325e Min Li 2020-07-28 1267 if (firmware) /* module parameter */
7ea5fda2b1325e Min Li 2020-07-28 1268 snprintf(fname, sizeof(fname), "%s", firmware);
3a6ba7dc779935 Vincent Cheng 2019-10-31 1269
930dfa56315517 Min Li 2021-09-24 1270 dev_info(idtcm->dev, "requesting firmware '%s'", fname);
3a6ba7dc779935 Vincent Cheng 2019-10-31 1271
7ea5fda2b1325e Min Li 2020-07-28 1272 err = request_firmware(&fw, fname, dev);
7ea5fda2b1325e Min Li 2020-07-28 1273 if (err) {
930dfa56315517 Min Li 2021-09-24 1274 dev_err(idtcm->dev,
1c49d3e947783b Vincent Cheng 2021-02-17 1275 "Failed at line %d in %s!", __LINE__, __func__);
3a6ba7dc779935 Vincent Cheng 2019-10-31 1276 return err;
7ea5fda2b1325e Min Li 2020-07-28 1277 }
3a6ba7dc779935 Vincent Cheng 2019-10-31 1278
930dfa56315517 Min Li 2021-09-24 1279 dev_dbg(idtcm->dev, "firmware size %zu bytes", fw->size);
3a6ba7dc779935 Vincent Cheng 2019-10-31 1280
3a6ba7dc779935 Vincent Cheng 2019-10-31 1281 rec = (struct idtcm_fwrc *) fw->data;
3a6ba7dc779935 Vincent Cheng 2019-10-31 1282
794c3dffacc166 Min Li 2021-09-13 1283 if (contains_full_configuration(idtcm, fw))
3a6ba7dc779935 Vincent Cheng 2019-10-31 1284 idtcm_state_machine_reset(idtcm);
3a6ba7dc779935 Vincent Cheng 2019-10-31 1285
3a6ba7dc779935 Vincent Cheng 2019-10-31 1286 for (len = fw->size; len > 0; len -= sizeof(*rec)) {
3a6ba7dc779935 Vincent Cheng 2019-10-31 1287 if (rec->reserved) {
930dfa56315517 Min Li 2021-09-24 1288 dev_err(idtcm->dev,
1c49d3e947783b Vincent Cheng 2021-02-17 1289 "bad firmware, reserved field non-zero");
3a6ba7dc779935 Vincent Cheng 2019-10-31 1290 err = -EINVAL;
3a6ba7dc779935 Vincent Cheng 2019-10-31 1291 } else {
3a6ba7dc779935 Vincent Cheng 2019-10-31 1292 regaddr = rec->hiaddr << 8;
3a6ba7dc779935 Vincent Cheng 2019-10-31 1293 regaddr |= rec->loaddr;
3a6ba7dc779935 Vincent Cheng 2019-10-31 1294
3a6ba7dc779935 Vincent Cheng 2019-10-31 1295 val = rec->value;
3a6ba7dc779935 Vincent Cheng 2019-10-31 1296 loaddr = rec->loaddr;
3a6ba7dc779935 Vincent Cheng 2019-10-31 1297
3a6ba7dc779935 Vincent Cheng 2019-10-31 1298 rec++;
3a6ba7dc779935 Vincent Cheng 2019-10-31 1299
3a6ba7dc779935 Vincent Cheng 2019-10-31 1300 err = check_and_set_masks(idtcm, regaddr, val);
3a6ba7dc779935 Vincent Cheng 2019-10-31 1301 }
3a6ba7dc779935 Vincent Cheng 2019-10-31 1302
7ea5fda2b1325e Min Li 2020-07-28 1303 if (err != -EINVAL) {
7ea5fda2b1325e Min Li 2020-07-28 1304 err = 0;
7ea5fda2b1325e Min Li 2020-07-28 1305
3a6ba7dc779935 Vincent Cheng 2019-10-31 1306 /* Top (status registers) and bottom are read-only */
8c173792ded55a Min Li 2022-11-11 1307 if (regaddr < SCSR_ADDR(GPIO_USER_CONTROL) || regaddr >= scratch)
3a6ba7dc779935 Vincent Cheng 2019-10-31 1308 continue;
3a6ba7dc779935 Vincent Cheng 2019-10-31 1309
3a6ba7dc779935 Vincent Cheng 2019-10-31 1310 /* Page size 128, last 4 bytes of page skipped */
77fdb168a3e2a6 Vincent Cheng 2021-02-17 1311 if ((loaddr > 0x7b && loaddr <= 0x7f) || loaddr > 0xfb)
3a6ba7dc779935 Vincent Cheng 2019-10-31 1312 continue;
3a6ba7dc779935 Vincent Cheng 2019-10-31 1313
8c173792ded55a Min Li 2022-11-11 1314 err = idtcm_write(idtcm, SCSR_BASE, regaddr, &val, sizeof(val));
3a6ba7dc779935 Vincent Cheng 2019-10-31 1315 }
3a6ba7dc779935 Vincent Cheng 2019-10-31 1316
3a6ba7dc779935 Vincent Cheng 2019-10-31 1317 if (err)
3a6ba7dc779935 Vincent Cheng 2019-10-31 1318 goto out;
3a6ba7dc779935 Vincent Cheng 2019-10-31 1319 }
3a6ba7dc779935 Vincent Cheng 2019-10-31 1320
7ea5fda2b1325e Min Li 2020-07-28 1321 display_pll_and_masks(idtcm);
3a6ba7dc779935 Vincent Cheng 2019-10-31 1322
3a6ba7dc779935 Vincent Cheng 2019-10-31 1323 out:
3a6ba7dc779935 Vincent Cheng 2019-10-31 1324 release_firmware(fw);
3a6ba7dc779935 Vincent Cheng 2019-10-31 1325 return err;
3a6ba7dc779935 Vincent Cheng 2019-10-31 1326 }
3a6ba7dc779935 Vincent Cheng 2019-10-31 1327
--
0-DAY CI Kernel Test Service
https://01.org/lkp
View attachment "config" of type "text/plain" (141205 bytes)
Powered by blists - more mailing lists