drivers/net/ethernet/intel/e100.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
From: Ashwin Gundarapu <linuxuser509@zohomail.in>
Date: Sun, 10 May 2026 15:09:12 +0530
Subject: [PATCH] net: e100: replace silent 'hope for the best' with debug
message
Replace a silent return with a debug message when no MII PHY is
detected on known variants. This gives users visibility into the
failure instead of silently hoping for the best.
Found by checkpatch.pl inspection.
Signed-off-by: Ashwin Gundarapu <linuxuser509@zohomail.in>
---
drivers/net/ethernet/intel/e100.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/intel/e100.c b/drivers/net/ethernet/intel/e100.c
index 9074b558de35..bfacf877ca40 100644
--- a/drivers/net/ethernet/intel/e100.c
+++ b/drivers/net/ethernet/intel/e100.c
@@ -1450,7 +1450,9 @@ static int e100_phy_init(struct nic *nic)
* But do this AFTER MII checking only, since this does
* lookup of EEPROM values which may easily be unreliable. */
if (e100_phy_check_without_mii(nic))
- return 0; /* simply return and hope for the best */
+ netif_dbg(nic, probe, nic->netdev,
+ "No MII PHY detected, continuing anyway\n");
+ return 0;
else {
/* for unknown cases log a fatal error */
netif_err(nic, hw, nic->netdev,
--
2.43.0
Hi Ashwin,
kernel test robot noticed the following build errors:
[auto build test ERROR on net-next/main]
url: https://github.com/intel-lab-lkp/linux/commits/Ashwin-Gundarapu/net-e100-replace-silent-hope-for-the-best-with-debug-message/20260521-141158
base: net-next/main
patch link: https://lore.kernel.org/r/19e49280392.4757403170773.5767589851918809405%40zohomail.in
patch subject: [PATCH net-next] net: e100: replace silent 'hope for the best' with debug message
config: x86_64-defconfig (https://download.01.org/0day-ci/archive/20260523/202605230558.68aPIUbo-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260523/202605230558.68aPIUbo-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/202605230558.68aPIUbo-lkp@intel.com/
All errors (new ones prefixed by >>):
drivers/net/ethernet/intel/e100.c: In function 'e100_phy_init':
drivers/net/ethernet/intel/e100.c:1455:17: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
1455 | if (e100_phy_check_without_mii(nic))
| ^~
drivers/net/ethernet/intel/e100.c:1458:25: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
1458 | return 0;
| ^~~~~~
>> drivers/net/ethernet/intel/e100.c:1459:17: error: expected '}' before 'else'
1459 | else {
| ^~~~
drivers/net/ethernet/intel/e100.c:1439:39: warning: unused variable 'cong' [-Wunused-variable]
1439 | u16 bmcr, stat, id_lo, id_hi, cong;
| ^~~~
drivers/net/ethernet/intel/e100.c:1439:32: warning: unused variable 'id_hi' [-Wunused-variable]
1439 | u16 bmcr, stat, id_lo, id_hi, cong;
| ^~~~~
drivers/net/ethernet/intel/e100.c:1439:25: warning: unused variable 'id_lo' [-Wunused-variable]
1439 | u16 bmcr, stat, id_lo, id_hi, cong;
| ^~~~~
drivers/net/ethernet/intel/e100.c: At top level:
>> drivers/net/ethernet/intel/e100.c:1465:11: error: expected identifier or '(' before 'else'
1465 | } else
| ^~~~
In file included from include/linux/skbuff.h:39,
from include/net/net_namespace.h:44,
from include/linux/netdevice.h:38,
from drivers/net/ethernet/intel/e100.c:140:
>> include/net/net_debug.h:88:3: error: expected identifier or '(' before 'while'
88 | } while (0)
| ^~~~~
drivers/net/ethernet/intel/e100.c:1466:17: note: in expansion of macro 'netif_printk'
1466 | netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
| ^~~~~~~~~~~~
drivers/net/ethernet/intel/e100.c:1470:9: warning: data definition has no type or storage class
1470 | id_lo = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID1);
| ^~~~~
>> drivers/net/ethernet/intel/e100.c:1470:9: error: type defaults to 'int' in declaration of 'id_lo' [-Wimplicit-int]
>> drivers/net/ethernet/intel/e100.c:1470:27: error: 'netdev' undeclared here (not in a function); did you mean 'net_eq'?
1470 | id_lo = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID1);
| ^~~~~~
| net_eq
>> drivers/net/ethernet/intel/e100.c:1470:35: error: 'nic' undeclared here (not in a function)
1470 | id_lo = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID1);
| ^~~
drivers/net/ethernet/intel/e100.c:1471:9: warning: data definition has no type or storage class
1471 | id_hi = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID2);
| ^~~~~
>> drivers/net/ethernet/intel/e100.c:1471:9: error: type defaults to 'int' in declaration of 'id_hi' [-Wimplicit-int]
>> drivers/net/ethernet/intel/e100.c:1472:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
1472 | nic->phy = (u32)id_hi << 16 | (u32)id_lo;
| ^~
>> include/net/net_debug.h:85:1: error: expected identifier or '(' before 'do'
85 | do { \
| ^~
drivers/net/ethernet/intel/e100.c:1473:9: note: in expansion of macro 'netif_printk'
1473 | netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
| ^~~~~~~~~~~~
>> include/net/net_debug.h:88:3: error: expected identifier or '(' before 'while'
88 | } while (0)
| ^~~~~
drivers/net/ethernet/intel/e100.c:1473:9: note: in expansion of macro 'netif_printk'
1473 | netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
| ^~~~~~~~~~~~
>> drivers/net/ethernet/intel/e100.c:1477:9: error: expected identifier or '(' before 'for'
1477 | for (addr = 0; addr < 32; addr++) {
| ^~~
drivers/net/ethernet/intel/e100.c:1477:29: error: expected '=', ',', ';', 'asm' or '__attribute__' before '<' token
1477 | for (addr = 0; addr < 32; addr++) {
| ^
drivers/net/ethernet/intel/e100.c:1477:39: error: expected '=', ',', ';', 'asm' or '__attribute__' before '++' token
1477 | for (addr = 0; addr < 32; addr++) {
| ^~
>> drivers/net/ethernet/intel/e100.c:1491:9: error: expected identifier or '(' before 'if'
1491 | if (nic->phy == phy_82552_v)
| ^~
drivers/net/ethernet/intel/e100.c:1497:9: error: expected identifier or '(' before 'if'
1497 | if ((nic->phy & NCS_PHY_MODEL_MASK) == phy_nsc_tx) {
| ^~
drivers/net/ethernet/intel/e100.c:1505:9: error: expected identifier or '(' before 'if'
1505 | if (nic->phy == phy_82552_v) {
| ^~
drivers/net/ethernet/intel/e100.c:1519:11: error: expected identifier or '(' before 'else'
1519 | } else if ((nic->mac >= mac_82550_D102) || ((nic->flags & ich) &&
| ^~~~
>> drivers/net/ethernet/intel/e100.c:1527:9: error: expected identifier or '(' before 'return'
1527 | return 0;
| ^~~~~~
>> drivers/net/ethernet/intel/e100.c:1528:1: error: expected identifier or '(' before '}' token
1528 | }
| ^
drivers/net/ethernet/intel/e100.c:958:12: warning: 'mdio_ctrl_phy_82552_v' defined but not used [-Wunused-function]
958 | static u16 mdio_ctrl_phy_82552_v(struct nic *nic,
| ^~~~~~~~~~~~~~~~~~~~~
vim +1459 drivers/net/ethernet/intel/e100.c
720017623ab294b drivers/net/e100.c Andreas Mohr 2009-06-10 1430
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1431 #define NCONFIG_AUTO_SWITCH 0x0080
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1432 #define MII_NSC_CONG MII_RESV1
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1433 #define NSC_CONG_ENABLE 0x0100
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1434 #define NSC_CONG_TXREADY 0x0400
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1435 static int e100_phy_init(struct nic *nic)
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1436 {
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1437 struct net_device *netdev = nic->netdev;
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1438 u32 addr;
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1439 u16 bmcr, stat, id_lo, id_hi, cong;
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1440
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1441 /* Discover phy addr by searching addrs in order {1,0,2,..., 31} */
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1442 for (addr = 0; addr < 32; addr++) {
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1443 nic->mii.phy_id = (addr == 0) ? 1 : (addr == 1) ? 0 : addr;
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1444 bmcr = mdio_read(netdev, nic->mii.phy_id, MII_BMCR);
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1445 stat = mdio_read(netdev, nic->mii.phy_id, MII_BMSR);
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1446 stat = mdio_read(netdev, nic->mii.phy_id, MII_BMSR);
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1447 if (!((bmcr == 0xFFFF) || ((stat == 0) && (bmcr == 0))))
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1448 break;
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1449 }
720017623ab294b drivers/net/e100.c Andreas Mohr 2009-06-10 1450 if (addr == 32) {
720017623ab294b drivers/net/e100.c Andreas Mohr 2009-06-10 1451 /* uhoh, no PHY detected: check whether we seem to be some
720017623ab294b drivers/net/e100.c Andreas Mohr 2009-06-10 1452 * weird, rare variant which is *known* to not have any MII.
720017623ab294b drivers/net/e100.c Andreas Mohr 2009-06-10 1453 * But do this AFTER MII checking only, since this does
720017623ab294b drivers/net/e100.c Andreas Mohr 2009-06-10 1454 * lookup of EEPROM values which may easily be unreliable. */
720017623ab294b drivers/net/e100.c Andreas Mohr 2009-06-10 1455 if (e100_phy_check_without_mii(nic))
e95e8b2860fba4c drivers/net/ethernet/intel/e100.c Ashwin Gundarapu 2026-05-10 1456 netif_dbg(nic, probe, nic->netdev,
e95e8b2860fba4c drivers/net/ethernet/intel/e100.c Ashwin Gundarapu 2026-05-10 1457 "No MII PHY detected, continuing anyway\n");
e95e8b2860fba4c drivers/net/ethernet/intel/e100.c Ashwin Gundarapu 2026-05-10 1458 return 0;
720017623ab294b drivers/net/e100.c Andreas Mohr 2009-06-10 @1459 else {
720017623ab294b drivers/net/e100.c Andreas Mohr 2009-06-10 1460 /* for unknown cases log a fatal error */
fa05e1ad1b61b37 drivers/net/e100.c Joe Perches 2010-03-16 1461 netif_err(nic, hw, nic->netdev,
fa05e1ad1b61b37 drivers/net/e100.c Joe Perches 2010-03-16 1462 "Failed to locate any known PHY, aborting\n");
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1463 return -EAGAIN;
720017623ab294b drivers/net/e100.c Andreas Mohr 2009-06-10 1464 }
720017623ab294b drivers/net/e100.c Andreas Mohr 2009-06-10 @1465 } else
fa05e1ad1b61b37 drivers/net/e100.c Joe Perches 2010-03-16 1466 netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
fa05e1ad1b61b37 drivers/net/e100.c Joe Perches 2010-03-16 1467 "phy_addr = %d\n", nic->mii.phy_id);
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1468
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1469 /* Get phy ID */
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 @1470 id_lo = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID1);
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 @1471 id_hi = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID2);
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 @1472 nic->phy = (u32)id_hi << 16 | (u32)id_lo;
fa05e1ad1b61b37 drivers/net/e100.c Joe Perches 2010-03-16 1473 netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
fa05e1ad1b61b37 drivers/net/e100.c Joe Perches 2010-03-16 1474 "phy ID = 0x%08X\n", nic->phy);
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1475
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1476 /* Select the phy and isolate the rest */
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 @1477 for (addr = 0; addr < 32; addr++) {
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1478 if (addr != nic->mii.phy_id) {
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1479 mdio_write(netdev, addr, MII_BMCR, BMCR_ISOLATE);
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1480 } else if (nic->phy != phy_82552_v) {
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1481 bmcr = mdio_read(netdev, addr, MII_BMCR);
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1482 mdio_write(netdev, addr, MII_BMCR,
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1483 bmcr & ~BMCR_ISOLATE);
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1484 }
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1485 }
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1486 /*
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1487 * Workaround for 82552:
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1488 * Clear the ISOLATE bit on selected phy_id last (mirrored on all
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1489 * other phy_id's) using bmcr value from addr discovery loop above.
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1490 */
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 @1491 if (nic->phy == phy_82552_v)
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1492 mdio_write(netdev, nic->mii.phy_id, MII_BMCR,
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1493 bmcr & ~BMCR_ISOLATE);
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1494
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1495 /* Handle National tx phys */
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1496 #define NCS_PHY_MODEL_MASK 0xFFF0FFFF
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1497 if ((nic->phy & NCS_PHY_MODEL_MASK) == phy_nsc_tx) {
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1498 /* Disable congestion control */
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1499 cong = mdio_read(netdev, nic->mii.phy_id, MII_NSC_CONG);
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1500 cong |= NSC_CONG_TXREADY;
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1501 cong &= ~NSC_CONG_ENABLE;
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1502 mdio_write(netdev, nic->mii.phy_id, MII_NSC_CONG, cong);
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1503 }
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1504
b55de80e4989200 drivers/net/e100.c Bruce Allan 2009-03-21 1505 if (nic->phy == phy_82552_v) {
b55de80e4989200 drivers/net/e100.c Bruce Allan 2009-03-21 1506 u16 advert = mdio_read(netdev, nic->mii.phy_id, MII_ADVERTISE);
b55de80e4989200 drivers/net/e100.c Bruce Allan 2009-03-21 1507
720017623ab294b drivers/net/e100.c Andreas Mohr 2009-06-10 1508 /* assign special tweaked mdio_ctrl() function */
720017623ab294b drivers/net/e100.c Andreas Mohr 2009-06-10 1509 nic->mdio_ctrl = mdio_ctrl_phy_82552_v;
720017623ab294b drivers/net/e100.c Andreas Mohr 2009-06-10 1510
b55de80e4989200 drivers/net/e100.c Bruce Allan 2009-03-21 1511 /* Workaround Si not advertising flow-control during autoneg */
b55de80e4989200 drivers/net/e100.c Bruce Allan 2009-03-21 1512 advert |= ADVERTISE_PAUSE_CAP | ADVERTISE_PAUSE_ASYM;
b55de80e4989200 drivers/net/e100.c Bruce Allan 2009-03-21 1513 mdio_write(netdev, nic->mii.phy_id, MII_ADVERTISE, advert);
b55de80e4989200 drivers/net/e100.c Bruce Allan 2009-03-21 1514
b55de80e4989200 drivers/net/e100.c Bruce Allan 2009-03-21 1515 /* Reset for the above changes to take effect */
b55de80e4989200 drivers/net/e100.c Bruce Allan 2009-03-21 1516 bmcr = mdio_read(netdev, nic->mii.phy_id, MII_BMCR);
b55de80e4989200 drivers/net/e100.c Bruce Allan 2009-03-21 1517 bmcr |= BMCR_RESET;
b55de80e4989200 drivers/net/e100.c Bruce Allan 2009-03-21 1518 mdio_write(netdev, nic->mii.phy_id, MII_BMCR, bmcr);
b55de80e4989200 drivers/net/e100.c Bruce Allan 2009-03-21 1519 } else if ((nic->mac >= mac_82550_D102) || ((nic->flags & ich) &&
60ffa478759f39a drivers/net/e100.c Jeff Kirsher 2006-08-16 1520 (mdio_read(netdev, nic->mii.phy_id, MII_TPISTATUS) & 0x8000) &&
d4ef55288aa2e1b drivers/net/ethernet/intel/e100.c Jesse Brandeburg 2021-03-25 1521 (le16_to_cpu(nic->eeprom[eeprom_cnfg_mdix]) & eeprom_mdix_enabled))) {
60ffa478759f39a drivers/net/e100.c Jeff Kirsher 2006-08-16 1522 /* enable/disable MDI/MDI-X auto-switching. */
60ffa478759f39a drivers/net/e100.c Jeff Kirsher 2006-08-16 1523 mdio_write(netdev, nic->mii.phy_id, MII_NCONFIG,
60ffa478759f39a drivers/net/e100.c Jeff Kirsher 2006-08-16 1524 nic->mii.force_media ? 0 : NCONFIG_AUTO_SWITCH);
648951451e6d2d5 drivers/net/e100.c Malli Chilakala 2005-06-17 1525 }
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1526
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 @1527 return 0;
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 @1528 }
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1529
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf
> Of Ashwin Gundarapu via Intel-wired-lan
> Sent: Thursday, May 21, 2026 8:10 AM
> To: Kitszel, Przemyslaw <przemyslaw.kitszel@intel.com>; andrewnetdev
> <andrew+netdev@lunn.ch>; davem <davem@davemloft.net>; edumazet
> <edumazet@google.com>; kuba <kuba@kernel.org>; pabeni
> <pabeni@redhat.com>
> Cc: intel-wired-lan <intel-wired-lan@lists.osuosl.org>; netdev
> <netdev@vger.kernel.org>; linux-kernel <linux-kernel@vger.kernel.org>
> Subject: [Intel-wired-lan] [PATCH net-next] net: e100: replace silent
> 'hope for the best' with debug message
>
> From: Ashwin Gundarapu <linuxuser509@zohomail.in>
> Date: Sun, 10 May 2026 15:09:12 +0530
> Subject: [PATCH] net: e100: replace silent 'hope for the best' with
> debug message
>
> Replace a silent return with a debug message when no MII PHY is
> detected on known variants. This gives users visibility into the
> failure instead of silently hoping for the best.
>
> Found by checkpatch.pl inspection.
>
> Signed-off-by: Ashwin Gundarapu <linuxuser509@zohomail.in>
> ---
> drivers/net/ethernet/intel/e100.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/intel/e100.c
> b/drivers/net/ethernet/intel/e100.c
> index 9074b558de35..bfacf877ca40 100644
> --- a/drivers/net/ethernet/intel/e100.c
> +++ b/drivers/net/ethernet/intel/e100.c
> @@ -1450,7 +1450,9 @@ static int e100_phy_init(struct nic *nic)
> * But do this AFTER MII checking only, since this does
> * lookup of EEPROM values which may easily be
> unreliable. */
> if (e100_phy_check_without_mii(nic))
> - return 0; /* simply return and hope for the best
> */
> + netif_dbg(nic, probe, nic->netdev,
> + "No MII PHY detected, continuing
> anyway\n");
> + return 0;
> else {
Does it compile without } else { ?
> /* for unknown cases log a fatal error */
> netif_err(nic, hw, nic->netdev,
> --
> 2.43.0
Hi Ashwin,
kernel test robot noticed the following build errors:
[auto build test ERROR on net-next/main]
url: https://github.com/intel-lab-lkp/linux/commits/Ashwin-Gundarapu/net-e100-replace-silent-hope-for-the-best-with-debug-message/20260521-141158
base: net-next/main
patch link: https://lore.kernel.org/r/19e49280392.4757403170773.5767589851918809405%40zohomail.in
patch subject: [PATCH net-next] net: e100: replace silent 'hope for the best' with debug message
config: riscv-allyesconfig (https://download.01.org/0day-ci/archive/20260522/202605221404.6yAWlKOQ-lkp@intel.com/config)
compiler: clang version 16.0.6 (https://github.com/llvm/llvm-project 7cbf1a2591520c2491aa35339f227775f4d3adf6)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260522/202605221404.6yAWlKOQ-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/202605221404.6yAWlKOQ-lkp@intel.com/
All errors (new ones prefixed by >>):
>> drivers/net/ethernet/intel/e100.c:1459:3: error: expected expression
else {
^
1 error generated.
vim +1459 drivers/net/ethernet/intel/e100.c
720017623ab294 drivers/net/e100.c Andreas Mohr 2009-06-10 1430
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1431 #define NCONFIG_AUTO_SWITCH 0x0080
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1432 #define MII_NSC_CONG MII_RESV1
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1433 #define NSC_CONG_ENABLE 0x0100
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1434 #define NSC_CONG_TXREADY 0x0400
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1435 static int e100_phy_init(struct nic *nic)
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1436 {
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1437 struct net_device *netdev = nic->netdev;
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1438 u32 addr;
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1439 u16 bmcr, stat, id_lo, id_hi, cong;
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1440
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1441 /* Discover phy addr by searching addrs in order {1,0,2,..., 31} */
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1442 for (addr = 0; addr < 32; addr++) {
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1443 nic->mii.phy_id = (addr == 0) ? 1 : (addr == 1) ? 0 : addr;
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1444 bmcr = mdio_read(netdev, nic->mii.phy_id, MII_BMCR);
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1445 stat = mdio_read(netdev, nic->mii.phy_id, MII_BMSR);
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1446 stat = mdio_read(netdev, nic->mii.phy_id, MII_BMSR);
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1447 if (!((bmcr == 0xFFFF) || ((stat == 0) && (bmcr == 0))))
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1448 break;
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1449 }
720017623ab294 drivers/net/e100.c Andreas Mohr 2009-06-10 1450 if (addr == 32) {
720017623ab294 drivers/net/e100.c Andreas Mohr 2009-06-10 1451 /* uhoh, no PHY detected: check whether we seem to be some
720017623ab294 drivers/net/e100.c Andreas Mohr 2009-06-10 1452 * weird, rare variant which is *known* to not have any MII.
720017623ab294 drivers/net/e100.c Andreas Mohr 2009-06-10 1453 * But do this AFTER MII checking only, since this does
720017623ab294 drivers/net/e100.c Andreas Mohr 2009-06-10 1454 * lookup of EEPROM values which may easily be unreliable. */
720017623ab294 drivers/net/e100.c Andreas Mohr 2009-06-10 1455 if (e100_phy_check_without_mii(nic))
e95e8b2860fba4 drivers/net/ethernet/intel/e100.c Ashwin Gundarapu 2026-05-10 1456 netif_dbg(nic, probe, nic->netdev,
e95e8b2860fba4 drivers/net/ethernet/intel/e100.c Ashwin Gundarapu 2026-05-10 1457 "No MII PHY detected, continuing anyway\n");
e95e8b2860fba4 drivers/net/ethernet/intel/e100.c Ashwin Gundarapu 2026-05-10 1458 return 0;
720017623ab294 drivers/net/e100.c Andreas Mohr 2009-06-10 @1459 else {
720017623ab294 drivers/net/e100.c Andreas Mohr 2009-06-10 1460 /* for unknown cases log a fatal error */
fa05e1ad1b61b3 drivers/net/e100.c Joe Perches 2010-03-16 1461 netif_err(nic, hw, nic->netdev,
fa05e1ad1b61b3 drivers/net/e100.c Joe Perches 2010-03-16 1462 "Failed to locate any known PHY, aborting\n");
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1463 return -EAGAIN;
720017623ab294 drivers/net/e100.c Andreas Mohr 2009-06-10 1464 }
720017623ab294 drivers/net/e100.c Andreas Mohr 2009-06-10 1465 } else
fa05e1ad1b61b3 drivers/net/e100.c Joe Perches 2010-03-16 1466 netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
fa05e1ad1b61b3 drivers/net/e100.c Joe Perches 2010-03-16 1467 "phy_addr = %d\n", nic->mii.phy_id);
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1468
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1469 /* Get phy ID */
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1470 id_lo = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID1);
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1471 id_hi = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID2);
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1472 nic->phy = (u32)id_hi << 16 | (u32)id_lo;
fa05e1ad1b61b3 drivers/net/e100.c Joe Perches 2010-03-16 1473 netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
fa05e1ad1b61b3 drivers/net/e100.c Joe Perches 2010-03-16 1474 "phy ID = 0x%08X\n", nic->phy);
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1475
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1476 /* Select the phy and isolate the rest */
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1477 for (addr = 0; addr < 32; addr++) {
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1478 if (addr != nic->mii.phy_id) {
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1479 mdio_write(netdev, addr, MII_BMCR, BMCR_ISOLATE);
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1480 } else if (nic->phy != phy_82552_v) {
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1481 bmcr = mdio_read(netdev, addr, MII_BMCR);
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1482 mdio_write(netdev, addr, MII_BMCR,
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1483 bmcr & ~BMCR_ISOLATE);
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1484 }
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1485 }
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1486 /*
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1487 * Workaround for 82552:
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1488 * Clear the ISOLATE bit on selected phy_id last (mirrored on all
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1489 * other phy_id's) using bmcr value from addr discovery loop above.
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1490 */
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1491 if (nic->phy == phy_82552_v)
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1492 mdio_write(netdev, nic->mii.phy_id, MII_BMCR,
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1493 bmcr & ~BMCR_ISOLATE);
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1494
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1495 /* Handle National tx phys */
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1496 #define NCS_PHY_MODEL_MASK 0xFFF0FFFF
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1497 if ((nic->phy & NCS_PHY_MODEL_MASK) == phy_nsc_tx) {
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1498 /* Disable congestion control */
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1499 cong = mdio_read(netdev, nic->mii.phy_id, MII_NSC_CONG);
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1500 cong |= NSC_CONG_TXREADY;
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1501 cong &= ~NSC_CONG_ENABLE;
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1502 mdio_write(netdev, nic->mii.phy_id, MII_NSC_CONG, cong);
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1503 }
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1504
b55de80e498920 drivers/net/e100.c Bruce Allan 2009-03-21 1505 if (nic->phy == phy_82552_v) {
b55de80e498920 drivers/net/e100.c Bruce Allan 2009-03-21 1506 u16 advert = mdio_read(netdev, nic->mii.phy_id, MII_ADVERTISE);
b55de80e498920 drivers/net/e100.c Bruce Allan 2009-03-21 1507
720017623ab294 drivers/net/e100.c Andreas Mohr 2009-06-10 1508 /* assign special tweaked mdio_ctrl() function */
720017623ab294 drivers/net/e100.c Andreas Mohr 2009-06-10 1509 nic->mdio_ctrl = mdio_ctrl_phy_82552_v;
720017623ab294 drivers/net/e100.c Andreas Mohr 2009-06-10 1510
b55de80e498920 drivers/net/e100.c Bruce Allan 2009-03-21 1511 /* Workaround Si not advertising flow-control during autoneg */
b55de80e498920 drivers/net/e100.c Bruce Allan 2009-03-21 1512 advert |= ADVERTISE_PAUSE_CAP | ADVERTISE_PAUSE_ASYM;
b55de80e498920 drivers/net/e100.c Bruce Allan 2009-03-21 1513 mdio_write(netdev, nic->mii.phy_id, MII_ADVERTISE, advert);
b55de80e498920 drivers/net/e100.c Bruce Allan 2009-03-21 1514
b55de80e498920 drivers/net/e100.c Bruce Allan 2009-03-21 1515 /* Reset for the above changes to take effect */
b55de80e498920 drivers/net/e100.c Bruce Allan 2009-03-21 1516 bmcr = mdio_read(netdev, nic->mii.phy_id, MII_BMCR);
b55de80e498920 drivers/net/e100.c Bruce Allan 2009-03-21 1517 bmcr |= BMCR_RESET;
b55de80e498920 drivers/net/e100.c Bruce Allan 2009-03-21 1518 mdio_write(netdev, nic->mii.phy_id, MII_BMCR, bmcr);
b55de80e498920 drivers/net/e100.c Bruce Allan 2009-03-21 1519 } else if ((nic->mac >= mac_82550_D102) || ((nic->flags & ich) &&
60ffa478759f39 drivers/net/e100.c Jeff Kirsher 2006-08-16 1520 (mdio_read(netdev, nic->mii.phy_id, MII_TPISTATUS) & 0x8000) &&
d4ef55288aa2e1 drivers/net/ethernet/intel/e100.c Jesse Brandeburg 2021-03-25 1521 (le16_to_cpu(nic->eeprom[eeprom_cnfg_mdix]) & eeprom_mdix_enabled))) {
60ffa478759f39 drivers/net/e100.c Jeff Kirsher 2006-08-16 1522 /* enable/disable MDI/MDI-X auto-switching. */
60ffa478759f39 drivers/net/e100.c Jeff Kirsher 2006-08-16 1523 mdio_write(netdev, nic->mii.phy_id, MII_NCONFIG,
60ffa478759f39 drivers/net/e100.c Jeff Kirsher 2006-08-16 1524 nic->mii.force_media ? 0 : NCONFIG_AUTO_SWITCH);
648951451e6d2d drivers/net/e100.c Malli Chilakala 2005-06-17 1525 }
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1526
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1527 return 0;
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1528 }
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1529
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Hi Ashwin,
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/Ashwin-Gundarapu/net-e100-replace-silent-hope-for-the-best-with-debug-message/20260521-141158
base: net-next/main
patch link: https://lore.kernel.org/r/19e49280392.4757403170773.5767589851918809405%40zohomail.in
patch subject: [PATCH net-next] net: e100: replace silent 'hope for the best' with debug message
config: x86_64-defconfig (https://download.01.org/0day-ci/archive/20260521/202605212136.lOMqj24O-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260521/202605212136.lOMqj24O-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/202605212136.lOMqj24O-lkp@intel.com/
All warnings (new ones prefixed by >>):
drivers/net/ethernet/intel/e100.c: In function 'e100_phy_init':
>> drivers/net/ethernet/intel/e100.c:1455:17: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
1455 | if (e100_phy_check_without_mii(nic))
| ^~
drivers/net/ethernet/intel/e100.c:1458:25: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
1458 | return 0;
| ^~~~~~
drivers/net/ethernet/intel/e100.c:1459:17: error: expected '}' before 'else'
1459 | else {
| ^~~~
>> drivers/net/ethernet/intel/e100.c:1439:39: warning: unused variable 'cong' [-Wunused-variable]
1439 | u16 bmcr, stat, id_lo, id_hi, cong;
| ^~~~
>> drivers/net/ethernet/intel/e100.c:1439:32: warning: unused variable 'id_hi' [-Wunused-variable]
1439 | u16 bmcr, stat, id_lo, id_hi, cong;
| ^~~~~
>> drivers/net/ethernet/intel/e100.c:1439:25: warning: unused variable 'id_lo' [-Wunused-variable]
1439 | u16 bmcr, stat, id_lo, id_hi, cong;
| ^~~~~
drivers/net/ethernet/intel/e100.c: At top level:
drivers/net/ethernet/intel/e100.c:1465:11: error: expected identifier or '(' before 'else'
1465 | } else
| ^~~~
In file included from include/linux/skbuff.h:39,
from include/net/net_namespace.h:44,
from include/linux/netdevice.h:38,
from drivers/net/ethernet/intel/e100.c:140:
include/net/net_debug.h:88:3: error: expected identifier or '(' before 'while'
88 | } while (0)
| ^~~~~
drivers/net/ethernet/intel/e100.c:1466:17: note: in expansion of macro 'netif_printk'
1466 | netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
| ^~~~~~~~~~~~
>> drivers/net/ethernet/intel/e100.c:1470:9: warning: data definition has no type or storage class
1470 | id_lo = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID1);
| ^~~~~
drivers/net/ethernet/intel/e100.c:1470:9: error: type defaults to 'int' in declaration of 'id_lo' [-Wimplicit-int]
drivers/net/ethernet/intel/e100.c:1470:27: error: 'netdev' undeclared here (not in a function); did you mean 'net_eq'?
1470 | id_lo = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID1);
| ^~~~~~
| net_eq
drivers/net/ethernet/intel/e100.c:1470:35: error: 'nic' undeclared here (not in a function)
1470 | id_lo = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID1);
| ^~~
drivers/net/ethernet/intel/e100.c:1471:9: warning: data definition has no type or storage class
1471 | id_hi = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID2);
| ^~~~~
drivers/net/ethernet/intel/e100.c:1471:9: error: type defaults to 'int' in declaration of 'id_hi' [-Wimplicit-int]
drivers/net/ethernet/intel/e100.c:1472:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
1472 | nic->phy = (u32)id_hi << 16 | (u32)id_lo;
| ^~
include/net/net_debug.h:85:1: error: expected identifier or '(' before 'do'
85 | do { \
| ^~
drivers/net/ethernet/intel/e100.c:1473:9: note: in expansion of macro 'netif_printk'
1473 | netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
| ^~~~~~~~~~~~
include/net/net_debug.h:88:3: error: expected identifier or '(' before 'while'
88 | } while (0)
| ^~~~~
drivers/net/ethernet/intel/e100.c:1473:9: note: in expansion of macro 'netif_printk'
1473 | netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
| ^~~~~~~~~~~~
drivers/net/ethernet/intel/e100.c:1477:9: error: expected identifier or '(' before 'for'
1477 | for (addr = 0; addr < 32; addr++) {
| ^~~
drivers/net/ethernet/intel/e100.c:1477:29: error: expected '=', ',', ';', 'asm' or '__attribute__' before '<' token
1477 | for (addr = 0; addr < 32; addr++) {
| ^
drivers/net/ethernet/intel/e100.c:1477:39: error: expected '=', ',', ';', 'asm' or '__attribute__' before '++' token
1477 | for (addr = 0; addr < 32; addr++) {
| ^~
drivers/net/ethernet/intel/e100.c:1491:9: error: expected identifier or '(' before 'if'
1491 | if (nic->phy == phy_82552_v)
| ^~
drivers/net/ethernet/intel/e100.c:1497:9: error: expected identifier or '(' before 'if'
1497 | if ((nic->phy & NCS_PHY_MODEL_MASK) == phy_nsc_tx) {
| ^~
drivers/net/ethernet/intel/e100.c:1505:9: error: expected identifier or '(' before 'if'
1505 | if (nic->phy == phy_82552_v) {
| ^~
drivers/net/ethernet/intel/e100.c:1519:11: error: expected identifier or '(' before 'else'
1519 | } else if ((nic->mac >= mac_82550_D102) || ((nic->flags & ich) &&
| ^~~~
drivers/net/ethernet/intel/e100.c:1527:9: error: expected identifier or '(' before 'return'
1527 | return 0;
| ^~~~~~
drivers/net/ethernet/intel/e100.c:1528:1: error: expected identifier or '(' before '}' token
1528 | }
| ^
>> drivers/net/ethernet/intel/e100.c:958:12: warning: 'mdio_ctrl_phy_82552_v' defined but not used [-Wunused-function]
958 | static u16 mdio_ctrl_phy_82552_v(struct nic *nic,
| ^~~~~~~~~~~~~~~~~~~~~
vim +/if +1455 drivers/net/ethernet/intel/e100.c
720017623ab294b drivers/net/e100.c Andreas Mohr 2009-06-10 1430
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1431 #define NCONFIG_AUTO_SWITCH 0x0080
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1432 #define MII_NSC_CONG MII_RESV1
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1433 #define NSC_CONG_ENABLE 0x0100
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1434 #define NSC_CONG_TXREADY 0x0400
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1435 static int e100_phy_init(struct nic *nic)
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1436 {
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1437 struct net_device *netdev = nic->netdev;
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1438 u32 addr;
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 @1439 u16 bmcr, stat, id_lo, id_hi, cong;
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1440
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1441 /* Discover phy addr by searching addrs in order {1,0,2,..., 31} */
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1442 for (addr = 0; addr < 32; addr++) {
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1443 nic->mii.phy_id = (addr == 0) ? 1 : (addr == 1) ? 0 : addr;
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1444 bmcr = mdio_read(netdev, nic->mii.phy_id, MII_BMCR);
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1445 stat = mdio_read(netdev, nic->mii.phy_id, MII_BMSR);
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1446 stat = mdio_read(netdev, nic->mii.phy_id, MII_BMSR);
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1447 if (!((bmcr == 0xFFFF) || ((stat == 0) && (bmcr == 0))))
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1448 break;
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1449 }
720017623ab294b drivers/net/e100.c Andreas Mohr 2009-06-10 1450 if (addr == 32) {
720017623ab294b drivers/net/e100.c Andreas Mohr 2009-06-10 1451 /* uhoh, no PHY detected: check whether we seem to be some
720017623ab294b drivers/net/e100.c Andreas Mohr 2009-06-10 1452 * weird, rare variant which is *known* to not have any MII.
720017623ab294b drivers/net/e100.c Andreas Mohr 2009-06-10 1453 * But do this AFTER MII checking only, since this does
720017623ab294b drivers/net/e100.c Andreas Mohr 2009-06-10 1454 * lookup of EEPROM values which may easily be unreliable. */
720017623ab294b drivers/net/e100.c Andreas Mohr 2009-06-10 @1455 if (e100_phy_check_without_mii(nic))
e95e8b2860fba4c drivers/net/ethernet/intel/e100.c Ashwin Gundarapu 2026-05-10 1456 netif_dbg(nic, probe, nic->netdev,
e95e8b2860fba4c drivers/net/ethernet/intel/e100.c Ashwin Gundarapu 2026-05-10 1457 "No MII PHY detected, continuing anyway\n");
e95e8b2860fba4c drivers/net/ethernet/intel/e100.c Ashwin Gundarapu 2026-05-10 @1458 return 0;
720017623ab294b drivers/net/e100.c Andreas Mohr 2009-06-10 @1459 else {
720017623ab294b drivers/net/e100.c Andreas Mohr 2009-06-10 1460 /* for unknown cases log a fatal error */
fa05e1ad1b61b37 drivers/net/e100.c Joe Perches 2010-03-16 1461 netif_err(nic, hw, nic->netdev,
fa05e1ad1b61b37 drivers/net/e100.c Joe Perches 2010-03-16 1462 "Failed to locate any known PHY, aborting\n");
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1463 return -EAGAIN;
720017623ab294b drivers/net/e100.c Andreas Mohr 2009-06-10 1464 }
720017623ab294b drivers/net/e100.c Andreas Mohr 2009-06-10 1465 } else
fa05e1ad1b61b37 drivers/net/e100.c Joe Perches 2010-03-16 1466 netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
fa05e1ad1b61b37 drivers/net/e100.c Joe Perches 2010-03-16 1467 "phy_addr = %d\n", nic->mii.phy_id);
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1468
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1469 /* Get phy ID */
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 @1470 id_lo = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID1);
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1471 id_hi = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID2);
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1472 nic->phy = (u32)id_hi << 16 | (u32)id_lo;
fa05e1ad1b61b37 drivers/net/e100.c Joe Perches 2010-03-16 1473 netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
fa05e1ad1b61b37 drivers/net/e100.c Joe Perches 2010-03-16 1474 "phy ID = 0x%08X\n", nic->phy);
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1475
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1476 /* Select the phy and isolate the rest */
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1477 for (addr = 0; addr < 32; addr++) {
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1478 if (addr != nic->mii.phy_id) {
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1479 mdio_write(netdev, addr, MII_BMCR, BMCR_ISOLATE);
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1480 } else if (nic->phy != phy_82552_v) {
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1481 bmcr = mdio_read(netdev, addr, MII_BMCR);
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1482 mdio_write(netdev, addr, MII_BMCR,
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1483 bmcr & ~BMCR_ISOLATE);
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1484 }
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1485 }
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1486 /*
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1487 * Workaround for 82552:
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1488 * Clear the ISOLATE bit on selected phy_id last (mirrored on all
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1489 * other phy_id's) using bmcr value from addr discovery loop above.
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1490 */
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1491 if (nic->phy == phy_82552_v)
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1492 mdio_write(netdev, nic->mii.phy_id, MII_BMCR,
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1493 bmcr & ~BMCR_ISOLATE);
8fbd962e39517df drivers/net/e100.c Bruce Allan 2009-10-29 1494
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1495 /* Handle National tx phys */
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1496 #define NCS_PHY_MODEL_MASK 0xFFF0FFFF
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1497 if ((nic->phy & NCS_PHY_MODEL_MASK) == phy_nsc_tx) {
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1498 /* Disable congestion control */
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1499 cong = mdio_read(netdev, nic->mii.phy_id, MII_NSC_CONG);
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1500 cong |= NSC_CONG_TXREADY;
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1501 cong &= ~NSC_CONG_ENABLE;
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1502 mdio_write(netdev, nic->mii.phy_id, MII_NSC_CONG, cong);
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1503 }
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1504
b55de80e4989200 drivers/net/e100.c Bruce Allan 2009-03-21 1505 if (nic->phy == phy_82552_v) {
b55de80e4989200 drivers/net/e100.c Bruce Allan 2009-03-21 1506 u16 advert = mdio_read(netdev, nic->mii.phy_id, MII_ADVERTISE);
b55de80e4989200 drivers/net/e100.c Bruce Allan 2009-03-21 1507
720017623ab294b drivers/net/e100.c Andreas Mohr 2009-06-10 1508 /* assign special tweaked mdio_ctrl() function */
720017623ab294b drivers/net/e100.c Andreas Mohr 2009-06-10 1509 nic->mdio_ctrl = mdio_ctrl_phy_82552_v;
720017623ab294b drivers/net/e100.c Andreas Mohr 2009-06-10 1510
b55de80e4989200 drivers/net/e100.c Bruce Allan 2009-03-21 1511 /* Workaround Si not advertising flow-control during autoneg */
b55de80e4989200 drivers/net/e100.c Bruce Allan 2009-03-21 1512 advert |= ADVERTISE_PAUSE_CAP | ADVERTISE_PAUSE_ASYM;
b55de80e4989200 drivers/net/e100.c Bruce Allan 2009-03-21 1513 mdio_write(netdev, nic->mii.phy_id, MII_ADVERTISE, advert);
b55de80e4989200 drivers/net/e100.c Bruce Allan 2009-03-21 1514
b55de80e4989200 drivers/net/e100.c Bruce Allan 2009-03-21 1515 /* Reset for the above changes to take effect */
b55de80e4989200 drivers/net/e100.c Bruce Allan 2009-03-21 1516 bmcr = mdio_read(netdev, nic->mii.phy_id, MII_BMCR);
b55de80e4989200 drivers/net/e100.c Bruce Allan 2009-03-21 1517 bmcr |= BMCR_RESET;
b55de80e4989200 drivers/net/e100.c Bruce Allan 2009-03-21 1518 mdio_write(netdev, nic->mii.phy_id, MII_BMCR, bmcr);
b55de80e4989200 drivers/net/e100.c Bruce Allan 2009-03-21 @1519 } else if ((nic->mac >= mac_82550_D102) || ((nic->flags & ich) &&
60ffa478759f39a drivers/net/e100.c Jeff Kirsher 2006-08-16 1520 (mdio_read(netdev, nic->mii.phy_id, MII_TPISTATUS) & 0x8000) &&
d4ef55288aa2e1b drivers/net/ethernet/intel/e100.c Jesse Brandeburg 2021-03-25 1521 (le16_to_cpu(nic->eeprom[eeprom_cnfg_mdix]) & eeprom_mdix_enabled))) {
60ffa478759f39a drivers/net/e100.c Jeff Kirsher 2006-08-16 1522 /* enable/disable MDI/MDI-X auto-switching. */
60ffa478759f39a drivers/net/e100.c Jeff Kirsher 2006-08-16 1523 mdio_write(netdev, nic->mii.phy_id, MII_NCONFIG,
60ffa478759f39a drivers/net/e100.c Jeff Kirsher 2006-08-16 1524 nic->mii.force_media ? 0 : NCONFIG_AUTO_SWITCH);
648951451e6d2d5 drivers/net/e100.c Malli Chilakala 2005-06-17 1525 }
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1526
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1527 return 0;
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1528 }
^1da177e4c3f415 drivers/net/e100.c Linus Torvalds 2005-04-16 1529
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Hi,
On 5/21/26 08:10, Ashwin Gundarapu wrote:
> From: Ashwin Gundarapu <linuxuser509@zohomail.in>
> Date: Sun, 10 May 2026 15:09:12 +0530
> Subject: [PATCH] net: e100: replace silent 'hope for the best' with debug
> message
>
> Replace a silent return with a debug message when no MII PHY is
> detected on known variants. This gives users visibility into the
> failure instead of silently hoping for the best.
It's not silent actually, e100_phy_check_without_mii() already prints a
message when returning 1.
Not sure this patch achieves anything meaningful...
Maxime
>
> Found by checkpatch.pl inspection.
>
> Signed-off-by: Ashwin Gundarapu <linuxuser509@zohomail.in>
> ---
> drivers/net/ethernet/intel/e100.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/intel/e100.c b/drivers/net/ethernet/intel/e100.c
> index 9074b558de35..bfacf877ca40 100644
> --- a/drivers/net/ethernet/intel/e100.c
> +++ b/drivers/net/ethernet/intel/e100.c
> @@ -1450,7 +1450,9 @@ static int e100_phy_init(struct nic *nic)
> * But do this AFTER MII checking only, since this does
> * lookup of EEPROM values which may easily be unreliable. */
> if (e100_phy_check_without_mii(nic))
> - return 0; /* simply return and hope for the best */
> + netif_dbg(nic, probe, nic->netdev,
> + "No MII PHY detected, continuing anyway\n");
> + return 0;
> else {
> /* for unknown cases log a fatal error */
> netif_err(nic, hw, nic->netdev,
On Thu, May 21, 2026 at 11:40:19AM +0530, Ashwin Gundarapu wrote:
> From: Ashwin Gundarapu <linuxuser509@zohomail.in>
> Date: Sun, 10 May 2026 15:09:12 +0530
> Subject: [PATCH] net: e100: replace silent 'hope for the best' with debug
> message
>
> Replace a silent return with a debug message when no MII PHY is
> detected on known variants. This gives users visibility into the
> failure instead of silently hoping for the best.
>
> Found by checkpatch.pl inspection.
Please make sure you really do compile test your changes.
Also, look at the history of a driver. How old is e100? I guess this
driver has been around 20 years? If this was an issue, somebody would
of fixed it 15 years ago? 10 years ago?
Please consider checkpatch as a tool which says there _might_ be an
issue at this line of code, not there _is_ an issue at this line of
code. You need to look at it, think about it, consider all the ways
checkpatch could be wrong, and only once you have convinced yourself
checkpatch is correct, fix it.
Andrew
---
pw-bot: cr
Hi Ashwin,
kernel test robot noticed the following build errors:
[auto build test ERROR on net-next/main]
url: https://github.com/intel-lab-lkp/linux/commits/Ashwin-Gundarapu/net-e100-replace-silent-hope-for-the-best-with-debug-message/20260521-141158
base: net-next/main
patch link: https://lore.kernel.org/r/19e49280392.4757403170773.5767589851918809405%40zohomail.in
patch subject: [PATCH net-next] net: e100: replace silent 'hope for the best' with debug message
config: x86_64-kexec (https://download.01.org/0day-ci/archive/20260521/202605211409.vFzkDRoq-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260521/202605211409.vFzkDRoq-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/202605211409.vFzkDRoq-lkp@intel.com/
All errors (new ones prefixed by >>):
>> drivers/net/ethernet/intel/e100.c:1459:3: error: expected expression
1459 | else {
| ^
1 error generated.
vim +1459 drivers/net/ethernet/intel/e100.c
720017623ab294 drivers/net/e100.c Andreas Mohr 2009-06-10 1430
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1431 #define NCONFIG_AUTO_SWITCH 0x0080
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1432 #define MII_NSC_CONG MII_RESV1
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1433 #define NSC_CONG_ENABLE 0x0100
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1434 #define NSC_CONG_TXREADY 0x0400
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1435 static int e100_phy_init(struct nic *nic)
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1436 {
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1437 struct net_device *netdev = nic->netdev;
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1438 u32 addr;
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1439 u16 bmcr, stat, id_lo, id_hi, cong;
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1440
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1441 /* Discover phy addr by searching addrs in order {1,0,2,..., 31} */
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1442 for (addr = 0; addr < 32; addr++) {
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1443 nic->mii.phy_id = (addr == 0) ? 1 : (addr == 1) ? 0 : addr;
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1444 bmcr = mdio_read(netdev, nic->mii.phy_id, MII_BMCR);
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1445 stat = mdio_read(netdev, nic->mii.phy_id, MII_BMSR);
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1446 stat = mdio_read(netdev, nic->mii.phy_id, MII_BMSR);
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1447 if (!((bmcr == 0xFFFF) || ((stat == 0) && (bmcr == 0))))
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1448 break;
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1449 }
720017623ab294 drivers/net/e100.c Andreas Mohr 2009-06-10 1450 if (addr == 32) {
720017623ab294 drivers/net/e100.c Andreas Mohr 2009-06-10 1451 /* uhoh, no PHY detected: check whether we seem to be some
720017623ab294 drivers/net/e100.c Andreas Mohr 2009-06-10 1452 * weird, rare variant which is *known* to not have any MII.
720017623ab294 drivers/net/e100.c Andreas Mohr 2009-06-10 1453 * But do this AFTER MII checking only, since this does
720017623ab294 drivers/net/e100.c Andreas Mohr 2009-06-10 1454 * lookup of EEPROM values which may easily be unreliable. */
720017623ab294 drivers/net/e100.c Andreas Mohr 2009-06-10 1455 if (e100_phy_check_without_mii(nic))
e95e8b2860fba4 drivers/net/ethernet/intel/e100.c Ashwin Gundarapu 2026-05-10 1456 netif_dbg(nic, probe, nic->netdev,
e95e8b2860fba4 drivers/net/ethernet/intel/e100.c Ashwin Gundarapu 2026-05-10 1457 "No MII PHY detected, continuing anyway\n");
e95e8b2860fba4 drivers/net/ethernet/intel/e100.c Ashwin Gundarapu 2026-05-10 1458 return 0;
720017623ab294 drivers/net/e100.c Andreas Mohr 2009-06-10 @1459 else {
720017623ab294 drivers/net/e100.c Andreas Mohr 2009-06-10 1460 /* for unknown cases log a fatal error */
fa05e1ad1b61b3 drivers/net/e100.c Joe Perches 2010-03-16 1461 netif_err(nic, hw, nic->netdev,
fa05e1ad1b61b3 drivers/net/e100.c Joe Perches 2010-03-16 1462 "Failed to locate any known PHY, aborting\n");
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1463 return -EAGAIN;
720017623ab294 drivers/net/e100.c Andreas Mohr 2009-06-10 1464 }
720017623ab294 drivers/net/e100.c Andreas Mohr 2009-06-10 1465 } else
fa05e1ad1b61b3 drivers/net/e100.c Joe Perches 2010-03-16 1466 netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
fa05e1ad1b61b3 drivers/net/e100.c Joe Perches 2010-03-16 1467 "phy_addr = %d\n", nic->mii.phy_id);
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1468
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1469 /* Get phy ID */
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1470 id_lo = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID1);
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1471 id_hi = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID2);
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1472 nic->phy = (u32)id_hi << 16 | (u32)id_lo;
fa05e1ad1b61b3 drivers/net/e100.c Joe Perches 2010-03-16 1473 netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
fa05e1ad1b61b3 drivers/net/e100.c Joe Perches 2010-03-16 1474 "phy ID = 0x%08X\n", nic->phy);
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1475
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1476 /* Select the phy and isolate the rest */
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1477 for (addr = 0; addr < 32; addr++) {
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1478 if (addr != nic->mii.phy_id) {
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1479 mdio_write(netdev, addr, MII_BMCR, BMCR_ISOLATE);
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1480 } else if (nic->phy != phy_82552_v) {
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1481 bmcr = mdio_read(netdev, addr, MII_BMCR);
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1482 mdio_write(netdev, addr, MII_BMCR,
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1483 bmcr & ~BMCR_ISOLATE);
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1484 }
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1485 }
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1486 /*
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1487 * Workaround for 82552:
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1488 * Clear the ISOLATE bit on selected phy_id last (mirrored on all
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1489 * other phy_id's) using bmcr value from addr discovery loop above.
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1490 */
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1491 if (nic->phy == phy_82552_v)
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1492 mdio_write(netdev, nic->mii.phy_id, MII_BMCR,
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1493 bmcr & ~BMCR_ISOLATE);
8fbd962e39517d drivers/net/e100.c Bruce Allan 2009-10-29 1494
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1495 /* Handle National tx phys */
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1496 #define NCS_PHY_MODEL_MASK 0xFFF0FFFF
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1497 if ((nic->phy & NCS_PHY_MODEL_MASK) == phy_nsc_tx) {
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1498 /* Disable congestion control */
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1499 cong = mdio_read(netdev, nic->mii.phy_id, MII_NSC_CONG);
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1500 cong |= NSC_CONG_TXREADY;
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1501 cong &= ~NSC_CONG_ENABLE;
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1502 mdio_write(netdev, nic->mii.phy_id, MII_NSC_CONG, cong);
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1503 }
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1504
b55de80e498920 drivers/net/e100.c Bruce Allan 2009-03-21 1505 if (nic->phy == phy_82552_v) {
b55de80e498920 drivers/net/e100.c Bruce Allan 2009-03-21 1506 u16 advert = mdio_read(netdev, nic->mii.phy_id, MII_ADVERTISE);
b55de80e498920 drivers/net/e100.c Bruce Allan 2009-03-21 1507
720017623ab294 drivers/net/e100.c Andreas Mohr 2009-06-10 1508 /* assign special tweaked mdio_ctrl() function */
720017623ab294 drivers/net/e100.c Andreas Mohr 2009-06-10 1509 nic->mdio_ctrl = mdio_ctrl_phy_82552_v;
720017623ab294 drivers/net/e100.c Andreas Mohr 2009-06-10 1510
b55de80e498920 drivers/net/e100.c Bruce Allan 2009-03-21 1511 /* Workaround Si not advertising flow-control during autoneg */
b55de80e498920 drivers/net/e100.c Bruce Allan 2009-03-21 1512 advert |= ADVERTISE_PAUSE_CAP | ADVERTISE_PAUSE_ASYM;
b55de80e498920 drivers/net/e100.c Bruce Allan 2009-03-21 1513 mdio_write(netdev, nic->mii.phy_id, MII_ADVERTISE, advert);
b55de80e498920 drivers/net/e100.c Bruce Allan 2009-03-21 1514
b55de80e498920 drivers/net/e100.c Bruce Allan 2009-03-21 1515 /* Reset for the above changes to take effect */
b55de80e498920 drivers/net/e100.c Bruce Allan 2009-03-21 1516 bmcr = mdio_read(netdev, nic->mii.phy_id, MII_BMCR);
b55de80e498920 drivers/net/e100.c Bruce Allan 2009-03-21 1517 bmcr |= BMCR_RESET;
b55de80e498920 drivers/net/e100.c Bruce Allan 2009-03-21 1518 mdio_write(netdev, nic->mii.phy_id, MII_BMCR, bmcr);
b55de80e498920 drivers/net/e100.c Bruce Allan 2009-03-21 1519 } else if ((nic->mac >= mac_82550_D102) || ((nic->flags & ich) &&
60ffa478759f39 drivers/net/e100.c Jeff Kirsher 2006-08-16 1520 (mdio_read(netdev, nic->mii.phy_id, MII_TPISTATUS) & 0x8000) &&
d4ef55288aa2e1 drivers/net/ethernet/intel/e100.c Jesse Brandeburg 2021-03-25 1521 (le16_to_cpu(nic->eeprom[eeprom_cnfg_mdix]) & eeprom_mdix_enabled))) {
60ffa478759f39 drivers/net/e100.c Jeff Kirsher 2006-08-16 1522 /* enable/disable MDI/MDI-X auto-switching. */
60ffa478759f39 drivers/net/e100.c Jeff Kirsher 2006-08-16 1523 mdio_write(netdev, nic->mii.phy_id, MII_NCONFIG,
60ffa478759f39 drivers/net/e100.c Jeff Kirsher 2006-08-16 1524 nic->mii.force_media ? 0 : NCONFIG_AUTO_SWITCH);
648951451e6d2d drivers/net/e100.c Malli Chilakala 2005-06-17 1525 }
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1526
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1527 return 0;
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1528 }
^1da177e4c3f41 drivers/net/e100.c Linus Torvalds 2005-04-16 1529
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
© 2016 - 2026 Red Hat, Inc.