From: kernel test robot <lkp@intel.com>
To: Kyle Switch <kyle.switch@motor-comm.com>,
Frank.Sae@motor-comm.com, andrew@lunn.ch, hkallweit1@gmail.com,
linux@armlinux.org.uk, davem@davemloft.net, edumazet@google.com,
kuba@kernel.org, pabeni@redhat.com, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org
Cc: oe-kbuild-all@lists.linux.dev, ming.xu@motor-comm.com,
xiaolin.xu@motor-comm.com, jianmin.wang@motor-comm.com,
jie.han@motor-comm.com
Subject: Re: [PATCH net-next v8] net: phy: Add driver for Motorcomm Quad 2.5GbE phy
Date: Fri, 14 Aug 2026 04:44:08 +0800 [thread overview]
Message-ID: <202608140410.QYqocPyD-lkp@intel.com> (raw)
In-Reply-To: <20260801035236.3560015-1-kyle.switch@motor-comm.com>
Hi Kyle,
kernel test robot noticed the following build warnings:
[auto build test WARNING on net-next/main]
url: https://github.com/intel-lab-lkp/linux/commits/Kyle-Switch/net-phy-Add-driver-for-Motorcomm-Quad-2-5GbE-phy/20260812-155449
base: net-next/main
patch link: https://lore.kernel.org/r/20260801035236.3560015-1-kyle.switch%40motor-comm.com
patch subject: [PATCH net-next v8] net: phy: Add driver for Motorcomm Quad 2.5GbE phy
config: i386-randconfig-141 (https://download.01.org/0day-ci/archive/20260814/202608140410.QYqocPyD-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
smatch: v0.5.0-9187-g5189e3fb
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/202608140410.QYqocPyD-lkp@intel.com/
smatch warnings:
drivers/net/phy/motorcomm.c:1450 yt8824_extern_config_sds_init_paged() warn: unsigned 'data' is never less than zero.
drivers/net/phy/motorcomm.c:1673 yt8824_internal_config_init_paged() warn: missing error code? 'ret'
vim +/data +1450 drivers/net/phy/motorcomm.c
1220
1221 /**
1222 * yt8824_extern_config_sds_init_paged() - config external phy8824 sds init
1223 * @phydev: target phy_device struct
1224 *
1225 *
1226 * Returns: 0 or negative errno code
1227 */
1228 static int yt8824_extern_config_sds_init_paged(struct phy_device *phydev)
1229 {
1230 struct yt8824_shared_priv *shared_priv;
1231 int ret = 0, old_page;
1232 int val_1, val_2, val_3, tmp;
1233 u16 data = 0;
1234 int port;
1235
1236 shared_priv = phy_package_get_priv(phydev);
1237 port = phydev->mdio.addr - shared_priv->offset;
1238 if (port < 0)
1239 return -EINVAL;
1240 old_page = phy_select_page(phydev, YT8824_RSSR_USXGMII_SPACE);
1241 if (old_page < 0)
1242 goto err_restore_page;
1243
1244 /* read efuse */
1245 val_1 = ytphy_read_top_ext(phydev, 0xa13e);
1246 if (val_1 < 0)
1247 goto err_restore_page;
1248
1249 val_2 = ytphy_read_top_ext(phydev, 0xa13f);
1250 if (val_2 < 0)
1251 goto err_restore_page;
1252
1253 val_3 = ytphy_read_top_ext(phydev, 0xa140);
1254 if (val_3 < 0)
1255 goto err_restore_page;
1256
1257 if (port == 0) {
1258 /* Serdes optimization */
1259 ret = ytphy_write_ext(phydev, 0x04be, 0x000d);
1260 if (ret < 0)
1261 goto err_restore_page;
1262
1263 ret = ytphy_write_ext(phydev, 0x049f, 0x7ded);
1264 if (ret < 0)
1265 goto err_restore_page;
1266
1267 ret = ytphy_write_ext(phydev, 0x04a9, 0x009f);
1268 if (ret < 0)
1269 goto err_restore_page;
1270
1271 /* analog CDR */
1272 ret = ytphy_write_ext(phydev, 0x0406, 0x0800);
1273 if (ret < 0)
1274 goto err_restore_page;
1275
1276 /* optimized VCO */
1277 ret = ytphy_write_ext(phydev, 0x0438, 0x9024);
1278 if (ret < 0)
1279 goto err_restore_page;
1280
1281 ret = ytphy_write_ext(phydev, 0x0439, 0x00c0);
1282 if (ret < 0)
1283 goto err_restore_page;
1284
1285 /* optimized PLL lock */
1286 ret = ytphy_read_ext(phydev, 0x0429);
1287 if (ret < 0)
1288 goto err_restore_page;
1289
1290 ret &= ~(BIT(13) | BIT(12));
1291 tmp = (val_1 & (BIT(7) | BIT(6))) >> 6;
1292 ret |= (tmp << 12);
1293 ret = ytphy_write_ext(phydev, 0x0429, ret);
1294 if (ret < 0)
1295 goto err_restore_page;
1296
1297 ret = ytphy_read_ext(phydev, 0x0441);
1298 if (ret < 0)
1299 goto err_restore_page;
1300
1301 ret &= ~(BIT(1) | BIT(0));
1302 tmp = (val_1 & (BIT(5) | BIT(4))) >> 4;
1303 ret |= tmp;
1304 ret = ytphy_write_ext(phydev, 0x0441, ret);
1305 if (ret < 0)
1306 goto err_restore_page;
1307
1308 ret = ytphy_read_ext(phydev, 0x042b);
1309 if (ret < 0)
1310 goto err_restore_page;
1311
1312 ret &= ~(BIT(13) | BIT(12));
1313 tmp = (val_3 & (BIT(1) | BIT(0)));
1314 ret |= (tmp << 12);
1315 ret = ytphy_write_ext(phydev, 0x042b, ret);
1316 if (ret < 0)
1317 goto err_restore_page;
1318
1319 ret = ytphy_write_ext(phydev, 0x043a, 0x1006);
1320 if (ret < 0)
1321 goto err_restore_page;
1322
1323 ret = ytphy_write_ext(phydev, 0x042a, 0xf070);
1324 if (ret < 0)
1325 goto err_restore_page;
1326
1327 /* cable length threshold */
1328 ret = ytphy_write_ext(phydev, 0x0491, 0x007f);
1329 if (ret < 0)
1330 goto err_restore_page;
1331
1332 ret = ytphy_write_ext(phydev, 0x0492, 0x7f7f);
1333 if (ret < 0)
1334 goto err_restore_page;
1335
1336 /* Serdes training threshold */
1337 ret = ytphy_write_ext(phydev, 0x0454, 0x0f14);
1338 if (ret < 0)
1339 goto err_restore_page;
1340
1341 ret = ytphy_write_ext(phydev, 0x0497, 0x0a44);
1342 if (ret < 0)
1343 goto err_restore_page;
1344
1345 /* digital eye diagram of SerDes */
1346 ret = ytphy_write_ext(phydev, 0x04cd, 0x0000);
1347 if (ret < 0)
1348 goto err_restore_page;
1349
1350 /* Serdes LDO */
1351 ret = ytphy_read_ext(phydev, 0x04b5);
1352 if (ret < 0)
1353 goto err_restore_page;
1354
1355 ret &= ~(BIT(6) | BIT(5) | BIT(4));
1356 tmp = (val_2 & (BIT(4) | BIT(3) | BIT(2))) >> 2;
1357 ret |= (tmp << 4);
1358 ret = ytphy_write_ext(phydev, 0x04b5, ret);
1359 if (ret < 0)
1360 goto err_restore_page;
1361
1362 ret = ytphy_read_ext(phydev, 0x04b4);
1363 if (ret < 0)
1364 goto err_restore_page;
1365
1366 ret &= ~(BIT(10) | BIT(9) | BIT(8));
1367 tmp = (val_2 & (BIT(7) | BIT(6) | BIT(5))) >> 5;
1368 ret |= (tmp << 8);
1369 ret = ytphy_write_ext(phydev, 0x04b4, ret);
1370 if (ret < 0)
1371 goto err_restore_page;
1372
1373 /* optimized Serdes RX */
1374 ret = ytphy_write_ext(phydev, 0x04af, 0x45e3);
1375 if (ret < 0)
1376 goto err_restore_page;
1377
1378 ret = ytphy_write_ext(phydev, 0x048a, 0x0fff);
1379 if (ret < 0)
1380 goto err_restore_page;
1381
1382 ret = ytphy_write_ext(phydev, 0x0408, 0x7c00);
1383 if (ret < 0)
1384 goto err_restore_page;
1385
1386 ret = ytphy_write_ext(phydev, 0x04d6, 0x007f);
1387 if (ret < 0)
1388 goto err_restore_page;
1389
1390 ret = ytphy_write_ext(phydev, 0x044f, 0xff08);
1391 if (ret < 0)
1392 goto err_restore_page;
1393
1394 /* optimized Serdes TX */
1395 ret = ytphy_write_ext(phydev, 0x048e, 0x7d00);
1396 if (ret < 0)
1397 goto err_restore_page;
1398
1399 ret = ytphy_write_ext(phydev, 0x000d, 0x0606);
1400 if (ret < 0)
1401 goto err_restore_page;
1402
1403 /* Serdes manual config */
1404 ret = ytphy_write_ext(phydev, 0x04b0, 0x0804);
1405 if (ret < 0)
1406 goto err_restore_page;
1407
1408 ret = ytphy_write_ext(phydev, 0x04b1, 0x7074);
1409 if (ret < 0)
1410 goto err_restore_page;
1411
1412 ret = ytphy_write_ext(phydev, 0x04af, 0x45e7);
1413 if (ret < 0)
1414 goto err_restore_page;
1415
1416 /* restart calibration */
1417 ret = ytphy_write_ext(phydev, 0x0003, 0x5603);
1418 if (ret < 0)
1419 goto err_restore_page;
1420
1421 ret = ytphy_write_ext(phydev, 0x0492, 0x7fff);
1422 if (ret < 0)
1423 goto err_restore_page;
1424
1425 ret = ytphy_write_ext(phydev, 0x0492, 0x7f7f);
1426 if (ret < 0)
1427 goto err_restore_page;
1428
1429 ret = ytphy_write_ext(phydev, 0x2000, 0x0040);
1430 if (ret < 0)
1431 goto err_restore_page;
1432
1433 ret = ytphy_write_ext(phydev, 0x2000, 0x0000);
1434 if (ret < 0)
1435 goto err_restore_page;
1436 }
1437
1438 /* TX preamble padded to 8; RX IPG always > 8 */
1439 ret = __phy_read(phydev, MII_RESV1);
1440 if (ret < 0)
1441 goto err_restore_page;
1442 ret &= ~YT8824_SDS_CFG_MIN_PRE_MASK;
1443 ret |= YT8824_SDS_TX_PRE_PADDING;
1444 ret |= YT8824_SDS_EN_FILL_PRE;
1445 ret = __phy_write(phydev, MII_RESV1, ret);
1446 if (ret < 0)
1447 goto err_restore_page;
1448
1449 data = __phy_read(phydev, MII_BMCR);
> 1450 if (data < 0)
1451 goto err_restore_page;
1452 data |= BMCR_RESET;
1453 data |= BMCR_ANENABLE;
1454 ret = __phy_write(phydev, MII_BMCR, data);
1455 if (ret < 0)
1456 goto err_restore_page;
1457
1458 err_restore_page:
1459 return phy_restore_page(phydev, old_page, ret);
1460 }
1461
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
prev parent reply other threads:[~2026-08-13 20:44 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-01 3:52 [PATCH net-next v8] net: phy: Add driver for Motorcomm Quad 2.5GbE phy Kyle Switch
2026-08-03 20:20 ` Jakub Kicinski
2026-08-03 20:49 ` Andrew Lunn
2026-08-04 11:43 ` Kyle Switch
2026-08-13 20:44 ` kernel test robot [this message]
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=202608140410.QYqocPyD-lkp@intel.com \
--to=lkp@intel.com \
--cc=Frank.Sae@motor-comm.com \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=hkallweit1@gmail.com \
--cc=jianmin.wang@motor-comm.com \
--cc=jie.han@motor-comm.com \
--cc=kuba@kernel.org \
--cc=kyle.switch@motor-comm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=ming.xu@motor-comm.com \
--cc=netdev@vger.kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=pabeni@redhat.com \
--cc=xiaolin.xu@motor-comm.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox