2019-01-21 19:05:50 +01:00
|
|
|
|
2014-01-05 03:17:06 +03:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-06-09 07:49:07 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-11 13:53:49 +03:00
|
|
|
|
2020-06-26 17:53:22 +02:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2020-06-26 17:53:22 +02:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2020-06-26 17:53:22 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-04-17 17:17:27 +02:00
|
|
|
|
2020-06-26 17:53:22 +02:00
|
|
|
|
|
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
|
|
|
|
|
2023-04-17 17:17:27 +02:00
|
|
|
|
2020-06-26 17:53:22 +02:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2023-08-01 17:28:23 +03:00
|
|
|
|
2016-10-17 10:49:55 -05:00
|
|
|
|
net: phy: Introduce ethernet link topology representation
Link topologies containing multiple network PHYs attached to the same
net_device can be found when using a PHY as a media converter for use
with an SFP connector, on which an SFP transceiver containing a PHY can
be used.
With the current model, the transceiver's PHY can't be used for
operations such as cable testing, timestamping, macsec offload, etc.
The reason being that most of the logic for these configuration, coming
from either ethtool netlink or ioctls tend to use netdev->phydev, which
in multi-phy systems will reference the PHY closest to the MAC.
Introduce a numbering scheme allowing to enumerate PHY devices that
belong to any netdev, which can in turn allow userspace to take more
precise decisions with regard to each PHY's configuration.
The numbering is maintained per-netdev, in a phy_device_list.
The numbering works similarly to a netdevice's ifindex, with
identifiers that are only recycled once INT_MAX has been reached.
This prevents races that could occur between PHY listing and SFP
transceiver removal/insertion.
The identifiers are assigned at phy_attach time, as the numbering
depends on the netdevice the phy is attached to. The PHY index can be
re-used for PHYs that are persistent.
Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Tested-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: David S. Miller <davem@davemloft.net>
2024-08-21 17:09:55 +02:00
|
|
|
|
2022-10-03 08:51:59 +02:00
|
|
|
|
2020-06-24 07:16:02 -05:00
|
|
|
|
2024-12-12 18:06:43 +01:00
|
|
|
|
2023-08-01 17:28:22 +03:00
|
|
|
|
2020-06-26 17:53:22 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2005-12-14 00:33:49 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-09-29 23:04:16 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-01-09 17:59:58 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-09-29 23:04:16 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-07-10 21:03:24 +03:00
|
|
|
|
2018-09-29 23:04:16 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-10 23:43:33 +01:00
|
|
|
|
2018-09-29 23:04:16 +02:00
|
|
|
|
2025-01-16 22:38:40 +01:00
|
|
|
|
2018-09-29 23:04:16 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-10 23:43:33 +01:00
|
|
|
|
2018-09-29 23:04:16 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-10 23:43:33 +01:00
|
|
|
|
2018-09-29 23:04:16 +02:00
|
|
|
|
2022-04-29 18:34:31 +03:00
|
|
|
|
2018-09-29 23:04:16 +02:00
|
|
|
|
2022-04-29 18:34:31 +03:00
|
|
|
|
2019-05-22 20:47:04 +02:00
|
|
|
|
2018-09-29 23:04:16 +02:00
|
|
|
|
2018-11-10 23:43:33 +01:00
|
|
|
|
2018-09-29 23:04:16 +02:00
|
|
|
|
2023-01-09 17:59:58 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-10 23:43:33 +01:00
|
|
|
|
2018-09-29 23:04:16 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-10 23:43:33 +01:00
|
|
|
|
2018-09-29 23:04:16 +02:00
|
|
|
|
2018-11-10 23:43:33 +01:00
|
|
|
|
2018-09-29 23:04:16 +02:00
|
|
|
|
|
|
|
|
|
2018-11-10 23:43:33 +01:00
|
|
|
|
2018-09-29 23:04:16 +02:00
|
|
|
|
2023-02-11 08:41:06 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-02-14 21:17:11 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-09-29 23:04:16 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-01-09 17:59:58 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-09-29 23:04:16 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-16 22:38:40 +01:00
|
|
|
|
2018-09-29 23:04:16 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-02-11 08:41:06 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-02-14 21:17:11 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-02-11 08:41:06 +01:00
|
|
|
|
2018-09-29 23:04:16 +02:00
|
|
|
|
|
|
|
|
|
2007-12-04 16:17:33 +03:00
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:16 +01:00
|
|
|
|
2007-12-04 16:17:33 +03:00
|
|
|
|
2009-04-25 12:52:46 +00:00
|
|
|
|
2007-12-04 16:17:33 +03:00
|
|
|
|
2016-01-06 20:11:27 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-12-04 16:17:33 +03:00
|
|
|
|
|
|
|
|
|
2022-11-24 23:01:30 +08:00
|
|
|
|
2013-02-28 01:01:52 +00:00
|
|
|
|
2007-12-04 16:17:33 +03:00
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:27 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-06-05 12:23:05 +01:00
|
|
|
|
2009-04-25 12:52:46 +00:00
|
|
|
|
2008-04-18 17:29:54 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
net: phy: phy_device: fix PHY WOL enabled, PM failed to suspend
If the PHY of the mido bus is enabled with Wake-on-LAN (WOL),
we cannot suspend the PHY. Although the WOL status has been
checked in phy_suspend(), returning -EBUSY(-16) would cause
the Power Management (PM) to fail to suspend. Since
phy_suspend() is an exported symbol (EXPORT_SYMBOL),
timely error reporting is needed. Therefore, an additional
check is performed here. If the PHY of the mido bus is enabled
with WOL, we skip calling phy_suspend() to avoid PM failure.
From the following logs, it has been observed that the phydev->attached_dev
is NULL, phydev is "stmmac-0:01", it not attached, but it will affect suspend
and resume.The actually attached "stmmac-0:00" will not dpm_run_callback():
mdio_bus_phy_suspend().
init log:
[ 5.932502] YT8521 Gigabit Ethernet stmmac-0:00: attached PHY driver
(mii_bus:phy_addr=stmmac-0:00, irq=POLL)
[ 5.932512] YT8521 Gigabit Ethernet stmmac-0:01: attached PHY driver
(mii_bus:phy_addr=stmmac-0:01, irq=POLL)
[ 24.566289] YT8521 Gigabit Ethernet stmmac-0:00: yt8521_read_status,
link down, media: UTP
suspend log:
[ 322.631362] OOM killer disabled.
[ 322.631364] Freezing remaining freezable tasks
[ 322.632536] Freezing remaining freezable tasks completed (elapsed 0.001 seconds)
[ 322.632540] printk: Suspending console(s) (use no_console_suspend to debug)
[ 322.633052] YT8521 Gigabit Ethernet stmmac-0:01:
PM: dpm_run_callback(): mdio_bus_phy_suspend+0x0/0x110 [libphy] returns -16
[ 322.633071] YT8521 Gigabit Ethernet stmmac-0:01:
PM: failed to suspend: error -16
[ 322.669699] PM: Some devices failed to suspend, or early wake event detected
[ 322.669949] OOM killer enabled.
[ 322.669951] Restarting tasks ... done.
[ 322.671008] random: crng reseeded on system resumption
[ 322.671014] PM: suspend exit
Add a function that phylib can inquire of the driver whether WoL
has been enabled at the PHY.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Youwan Wang <youwan@nfschina.com>
Reviewed-by: Wojciech Drewek <wojciech.drewek@intel.com>
Link: https://patch.msgid.link/20240731091537.771391-1-youwan@nfschina.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2024-07-31 17:15:37 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:21 +01:00
|
|
|
|
|
|
|
|
|
Revert "net: phy: Uniform PHY driver access"
This reverts commit 3ac8eed62596387214869319379c1fcba264d8c6, which did
more than it said on the box, and not only it replaced to_phy_driver
with phydev->drv, but it also removed the "!drv" check, without actually
explaining why that is fine.
That patch in fact breaks suspend/resume on any system which has PHY
devices with no drivers bound.
The stack trace is:
Unable to handle kernel NULL pointer dereference at virtual address 00000000000000e8
pc : mdio_bus_phy_suspend+0xd8/0xec
lr : dpm_run_callback+0x38/0x90
Call trace:
mdio_bus_phy_suspend+0xd8/0xec
dpm_run_callback+0x38/0x90
__device_suspend+0x108/0x3cc
dpm_suspend+0x140/0x210
dpm_suspend_start+0x7c/0xa0
suspend_devices_and_enter+0x13c/0x540
pm_suspend+0x2a4/0x330
Examples why that assumption is not fine:
- There is an MDIO bus with a PHY device that doesn't have a specific
PHY driver loaded, because mdiobus_register() automatically creates a
PHY device for it but there is no specific PHY driver in the system.
Normally under those circumstances, the generic PHY driver will be
bound lazily to it (at phy_attach_direct time). But some Ethernet
drivers attach to their PHY at .ndo_open time. Until then it, the
to-be-driven-by-genphy PHY device will not have a driver. The blamed
patch amounts to saying "you need to open all net devices before the
system can suspend, to avoid the NULL pointer dereference".
- There is any raw MDIO device which has 'plausible' values in the PHY
ID registers 2 and 3, which is located on an MDIO bus whose driver
does not set bus->phy_mask = ~0 (which prevents auto-scanning of PHY
devices). An example could be a MAC's internal MDIO bus with PCS
devices on it, for serial links such as SGMII. PHY devices will get
created for those PCSes too, due to that MDIO bus auto-scanning, and
although those PHY devices are not used, they do not bother anybody
either. PCS devices are usually managed in Linux as raw MDIO devices.
Nonetheless, they do not have a PHY driver, nor does anybody attempt
to connect to them (because they are not a PHY), and therefore this
patch breaks that.
The goal itself of the patch is questionable, so I am going for a
straight revert. to_phy_driver does not seem to have a need to be
replaced by phydev->drv, in fact that might even trigger code paths
which were not given too deep of a thought.
For instance:
phy_probe populates phydev->drv at the beginning, but does not clean it
up on any error (including EPROBE_DEFER). So if the phydev driver
requests probe deferral, phydev->drv will remain populated despite there
being no driver bound.
If a system suspend starts in between the initial probe deferral request
and the subsequent probe retry, we will be calling the phydev->drv->suspend
method, but _before_ any phydev->drv->probe call has succeeded.
That is to say, if the phydev->drv is allocating any driver-private data
structure in ->probe, it pretty much expects that data structure to be
available in ->suspend. But it may not. That is a pretty insane
environment to present to PHY drivers.
In the code structure before the blamed patch, mdio_bus_phy_may_suspend
would just say "no, don't suspend" to any PHY device which does not have
a driver pointer _in_the_device_structure_ (not the phydev->drv). That
would essentially ensure that ->suspend will never get called for a
device that has not yet successfully completed probe. This is the code
structure the patch is returning to, via the revert.
Fixes: 3ac8eed62596 ("net: phy: Uniform PHY driver access")
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Link: https://lore.kernel.org/r/20210914140515.2311548-1-vladimir.oltean@nxp.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2021-09-14 17:05:15 +03:00
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:21 +01:00
|
|
|
|
|
|
|
|
|
Revert "net: phy: Uniform PHY driver access"
This reverts commit 3ac8eed62596387214869319379c1fcba264d8c6, which did
more than it said on the box, and not only it replaced to_phy_driver
with phydev->drv, but it also removed the "!drv" check, without actually
explaining why that is fine.
That patch in fact breaks suspend/resume on any system which has PHY
devices with no drivers bound.
The stack trace is:
Unable to handle kernel NULL pointer dereference at virtual address 00000000000000e8
pc : mdio_bus_phy_suspend+0xd8/0xec
lr : dpm_run_callback+0x38/0x90
Call trace:
mdio_bus_phy_suspend+0xd8/0xec
dpm_run_callback+0x38/0x90
__device_suspend+0x108/0x3cc
dpm_suspend+0x140/0x210
dpm_suspend_start+0x7c/0xa0
suspend_devices_and_enter+0x13c/0x540
pm_suspend+0x2a4/0x330
Examples why that assumption is not fine:
- There is an MDIO bus with a PHY device that doesn't have a specific
PHY driver loaded, because mdiobus_register() automatically creates a
PHY device for it but there is no specific PHY driver in the system.
Normally under those circumstances, the generic PHY driver will be
bound lazily to it (at phy_attach_direct time). But some Ethernet
drivers attach to their PHY at .ndo_open time. Until then it, the
to-be-driven-by-genphy PHY device will not have a driver. The blamed
patch amounts to saying "you need to open all net devices before the
system can suspend, to avoid the NULL pointer dereference".
- There is any raw MDIO device which has 'plausible' values in the PHY
ID registers 2 and 3, which is located on an MDIO bus whose driver
does not set bus->phy_mask = ~0 (which prevents auto-scanning of PHY
devices). An example could be a MAC's internal MDIO bus with PCS
devices on it, for serial links such as SGMII. PHY devices will get
created for those PCSes too, due to that MDIO bus auto-scanning, and
although those PHY devices are not used, they do not bother anybody
either. PCS devices are usually managed in Linux as raw MDIO devices.
Nonetheless, they do not have a PHY driver, nor does anybody attempt
to connect to them (because they are not a PHY), and therefore this
patch breaks that.
The goal itself of the patch is questionable, so I am going for a
straight revert. to_phy_driver does not seem to have a need to be
replaced by phydev->drv, in fact that might even trigger code paths
which were not given too deep of a thought.
For instance:
phy_probe populates phydev->drv at the beginning, but does not clean it
up on any error (including EPROBE_DEFER). So if the phydev driver
requests probe deferral, phydev->drv will remain populated despite there
being no driver bound.
If a system suspend starts in between the initial probe deferral request
and the subsequent probe retry, we will be calling the phydev->drv->suspend
method, but _before_ any phydev->drv->probe call has succeeded.
That is to say, if the phydev->drv is allocating any driver-private data
structure in ->probe, it pretty much expects that data structure to be
available in ->suspend. But it may not. That is a pretty insane
environment to present to PHY drivers.
In the code structure before the blamed patch, mdio_bus_phy_may_suspend
would just say "no, don't suspend" to any PHY device which does not have
a driver pointer _in_the_device_structure_ (not the phydev->drv). That
would essentially ensure that ->suspend will never get called for a
device that has not yet successfully completed probe. This is the code
structure the patch is returning to, via the revert.
Fixes: 3ac8eed62596 ("net: phy: Uniform PHY driver access")
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Link: https://lore.kernel.org/r/20210914140515.2311548-1-vladimir.oltean@nxp.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2021-09-14 17:05:15 +03:00
|
|
|
|
2016-01-06 20:11:21 +01:00
|
|
|
|
|
|
|
|
|
net: phy: phy_device: fix PHY WOL enabled, PM failed to suspend
If the PHY of the mido bus is enabled with Wake-on-LAN (WOL),
we cannot suspend the PHY. Although the WOL status has been
checked in phy_suspend(), returning -EBUSY(-16) would cause
the Power Management (PM) to fail to suspend. Since
phy_suspend() is an exported symbol (EXPORT_SYMBOL),
timely error reporting is needed. Therefore, an additional
check is performed here. If the PHY of the mido bus is enabled
with WOL, we skip calling phy_suspend() to avoid PM failure.
From the following logs, it has been observed that the phydev->attached_dev
is NULL, phydev is "stmmac-0:01", it not attached, but it will affect suspend
and resume.The actually attached "stmmac-0:00" will not dpm_run_callback():
mdio_bus_phy_suspend().
init log:
[ 5.932502] YT8521 Gigabit Ethernet stmmac-0:00: attached PHY driver
(mii_bus:phy_addr=stmmac-0:00, irq=POLL)
[ 5.932512] YT8521 Gigabit Ethernet stmmac-0:01: attached PHY driver
(mii_bus:phy_addr=stmmac-0:01, irq=POLL)
[ 24.566289] YT8521 Gigabit Ethernet stmmac-0:00: yt8521_read_status,
link down, media: UTP
suspend log:
[ 322.631362] OOM killer disabled.
[ 322.631364] Freezing remaining freezable tasks
[ 322.632536] Freezing remaining freezable tasks completed (elapsed 0.001 seconds)
[ 322.632540] printk: Suspending console(s) (use no_console_suspend to debug)
[ 322.633052] YT8521 Gigabit Ethernet stmmac-0:01:
PM: dpm_run_callback(): mdio_bus_phy_suspend+0x0/0x110 [libphy] returns -16
[ 322.633071] YT8521 Gigabit Ethernet stmmac-0:01:
PM: failed to suspend: error -16
[ 322.669699] PM: Some devices failed to suspend, or early wake event detected
[ 322.669949] OOM killer enabled.
[ 322.669951] Restarting tasks ... done.
[ 322.671008] random: crng reseeded on system resumption
[ 322.671014] PM: suspend exit
Add a function that phylib can inquire of the driver whether WoL
has been enabled at the PHY.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Youwan Wang <youwan@nfschina.com>
Reviewed-by: Wojciech Drewek <wojciech.drewek@intel.com>
Link: https://patch.msgid.link/20240731091537.771391-1-youwan@nfschina.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2024-07-31 17:15:37 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-02-20 15:34:53 -08:00
|
|
|
|
2016-01-06 20:11:21 +01:00
|
|
|
|
2024-06-27 16:33:46 +01:00
|
|
|
|
2018-09-24 22:01:32 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-02-20 15:34:53 -08:00
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:21 +01:00
|
|
|
|
|
|
|
|
|
2021-02-25 15:57:27 +01:00
|
|
|
|
2016-01-06 20:11:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-04-07 17:51:56 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-06-28 12:15:08 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-03-12 22:25:20 +01:00
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-02-25 15:57:27 +01:00
|
|
|
|
2016-01-06 20:11:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-04-07 17:51:56 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-03-12 22:25:20 +01:00
|
|
|
|
2016-01-06 20:11:21 +01:00
|
|
|
|
|
|
|
|
|
2020-03-12 22:25:20 +01:00
|
|
|
|
|
|
|
|
|
2022-09-23 06:09:52 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-08-01 16:34:03 -07:00
|
|
|
|
2022-09-23 06:09:52 +02:00
|
|
|
|
|
|
|
|
|
2022-08-01 16:34:03 -07:00
|
|
|
|
2021-02-11 22:32:52 +01:00
|
|
|
|
2016-01-06 20:11:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-02-11 22:32:52 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:21 +01:00
|
|
|
|
2022-06-28 12:15:08 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-02-11 22:32:52 +01:00
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:21 +01:00
|
|
|
|
2014-01-05 03:17:06 +03:00
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:16 +01:00
|
|
|
|
2008-04-18 17:29:54 -05:00
|
|
|
|
2014-01-05 03:17:06 +03:00
|
|
|
|
2008-04-18 17:29:54 -05:00
|
|
|
|
2014-01-05 03:17:06 +03:00
|
|
|
|
2008-04-18 17:29:54 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-01-05 03:17:06 +03:00
|
|
|
|
2008-04-18 17:29:54 -05:00
|
|
|
|
2014-01-05 03:23:19 +03:00
|
|
|
|
2008-04-18 17:29:54 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-08-30 22:14:52 +02:00
|
|
|
|
2008-04-18 17:29:54 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-01-05 03:17:06 +03:00
|
|
|
|
2008-04-18 17:29:54 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-01-05 03:17:06 +03:00
|
|
|
|
2008-04-18 17:29:54 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-12-07 20:26:07 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-05-19 14:03:59 +01:00
|
|
|
|
2016-12-07 20:26:07 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-01-05 03:17:06 +03:00
|
|
|
|
2008-04-18 17:29:54 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:10 +01:00
|
|
|
|
2008-04-18 17:29:54 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-05-19 14:03:59 +01:00
|
|
|
|
|
|
|
|
|
2008-04-18 17:29:54 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-01-05 03:28:27 +03:00
|
|
|
|
2008-04-18 17:29:54 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-01-05 03:23:19 +03:00
|
|
|
|
2008-04-18 17:29:54 -05:00
|
|
|
|
2009-07-13 11:23:39 +00:00
|
|
|
|
|
|
|
|
|
2008-04-18 17:29:54 -05:00
|
|
|
|
2009-07-13 11:23:39 +00:00
|
|
|
|
2014-02-11 17:27:41 -08:00
|
|
|
|
2008-04-18 17:29:54 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-07-01 14:07:37 +02:00
|
|
|
|
2016-01-06 20:11:23 +01:00
|
|
|
|
|
|
|
|
|
2024-07-01 14:07:37 +02:00
|
|
|
|
2016-01-06 20:11:23 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:26 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:23 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
net: phy: avoid matching all-ones clause 45 PHY IDs
We currently match clause 45 PHYs using any ID read from a MMD marked
as present in the "Devices in package" registers 5 and 6. However,
this is incorrect. 45.2 says:
"The definition of the term package is vendor specific and could be
a chip, module, or other similar entity."
so a package could be more or less than the whole PHY - a PHY could be
made up of several modules instantiated onto a single chip such as the
Marvell 88x3310, or some of the MMDs could be disabled according to
chip configuration, such as the Broadcom 84881.
In the case of Broadcom 84881, the "Devices in package" registers
contain 0xc000009b, meaning that there is a PHYXS present in the
package, but all registers in MMD 4 return 0xffff. This leads to our
matching code incorrectly binding this PHY to one of our generic PHY
drivers.
This patch changes the way we determine whether to attempt to match a
MMD identifier, or use it to request a module - if the identifier is
all-ones, then we skip over it. When reading the identifiers, we
initialise phydev->c45_ids.device_ids to all-ones, only reading the
device ID if the "Devices in package" registers indicates we should.
This avoids the generic drivers incorrectly matching on a PHY ID of
0xffffffff.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-11-15 20:08:37 +00:00
|
|
|
|
2016-01-06 20:11:23 +01:00
|
|
|
|
|
|
|
|
|
2023-05-19 14:03:59 +01:00
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:23 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-05-19 14:03:59 +01:00
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:23 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-06-02 22:36:06 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-09-28 19:34:20 +08:00
|
|
|
|
2018-06-02 22:36:06 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-09-28 19:34:20 +08:00
|
|
|
|
2018-06-02 22:36:06 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-09-28 19:34:20 +08:00
|
|
|
|
2018-06-02 22:36:06 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-03-10 14:12:43 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-09-28 19:34:20 +08:00
|
|
|
|
2021-03-10 14:12:43 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-06-02 22:36:06 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-03-10 14:12:43 -08:00
|
|
|
|
2018-06-02 22:36:06 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-02-11 22:32:52 +01:00
|
|
|
|
2018-06-02 22:36:06 +02:00
|
|
|
|
|
|
|
|
|
2019-12-19 23:24:52 +00:00
|
|
|
|
2019-01-16 08:07:38 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-01-19 10:30:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-01-16 08:07:38 +01:00
|
|
|
|
2019-01-19 10:30:21 +01:00
|
|
|
|
2019-12-19 23:24:52 +00:00
|
|
|
|
|
|
|
|
|
2019-01-16 08:07:38 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-12-19 23:24:52 +00:00
|
|
|
|
2014-01-05 03:17:06 +03:00
|
|
|
|
|
|
|
|
|
2006-08-14 23:00:29 -07:00
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:16 +01:00
|
|
|
|
2019-01-16 08:07:38 +01:00
|
|
|
|
2010-04-02 01:05:27 +00:00
|
|
|
|
2014-01-05 03:17:06 +03:00
|
|
|
|
2006-12-13 00:34:52 -08:00
|
|
|
|
2015-08-28 21:35:14 +03:00
|
|
|
|
2015-08-28 21:34:34 +03:00
|
|
|
|
2006-08-14 23:00:29 -07:00
|
|
|
|
2016-01-06 20:11:16 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-06-02 22:36:06 +02:00
|
|
|
|
2016-01-06 20:11:16 +01:00
|
|
|
|
2016-01-06 20:11:23 +01:00
|
|
|
|
2016-01-06 20:11:16 +01:00
|
|
|
|
2016-01-06 20:11:18 +01:00
|
|
|
|
2016-01-06 20:11:27 +01:00
|
|
|
|
|
|
|
|
|
2023-11-27 15:41:10 -06:00
|
|
|
|
2007-12-04 16:17:33 +03:00
|
|
|
|
2019-11-22 15:23:23 +00:00
|
|
|
|
|
|
|
|
|
2014-01-05 03:17:06 +03:00
|
|
|
|
|
|
|
|
|
2018-03-11 15:00:37 +01:00
|
|
|
|
2021-02-09 17:38:52 +01:00
|
|
|
|
2006-12-01 12:01:06 -06:00
|
|
|
|
2006-08-14 23:00:29 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-04-29 18:34:34 +03:00
|
|
|
|
2012-06-27 07:33:35 +00:00
|
|
|
|
2006-08-14 23:00:29 -07:00
|
|
|
|
2012-06-27 07:33:35 +00:00
|
|
|
|
|
|
|
|
|
2016-01-12 12:36:21 +03:00
|
|
|
|
2020-08-06 17:37:53 +02:00
|
|
|
|
2016-01-06 20:11:16 +01:00
|
|
|
|
2020-08-06 17:37:53 +02:00
|
|
|
|
2006-08-14 23:00:29 -07:00
|
|
|
|
|
|
|
|
|
2023-04-17 17:17:27 +02:00
|
|
|
|
2006-08-14 23:00:29 -07:00
|
|
|
|
2008-01-29 10:05:09 -06:00
|
|
|
|
2010-01-18 05:37:16 +00:00
|
|
|
|
2006-08-14 23:00:29 -07:00
|
|
|
|
2010-04-02 01:05:27 +00:00
|
|
|
|
2014-01-05 03:17:06 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-12-02 16:33:14 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
net: phy: avoid matching all-ones clause 45 PHY IDs
We currently match clause 45 PHYs using any ID read from a MMD marked
as present in the "Devices in package" registers 5 and 6. However,
this is incorrect. 45.2 says:
"The definition of the term package is vendor specific and could be
a chip, module, or other similar entity."
so a package could be more or less than the whole PHY - a PHY could be
made up of several modules instantiated onto a single chip such as the
Marvell 88x3310, or some of the MMDs could be disabled according to
chip configuration, such as the Broadcom 84881.
In the case of Broadcom 84881, the "Devices in package" registers
contain 0xc000009b, meaning that there is a PHYXS present in the
package, but all registers in MMD 4 return 0xffff. This leads to our
matching code incorrectly binding this PHY to one of our generic PHY
drivers.
This patch changes the way we determine whether to attempt to match a
MMD identifier, or use it to request a module - if the identifier is
all-ones, then we skip over it. When reading the identifiers, we
initialise phydev->c45_ids.device_ids to all-ones, only reading the
device ID if the "Devices in package" registers indicates we should.
This avoids the generic drivers incorrectly matching on a PHY ID of
0xffffffff.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-11-15 20:08:37 +00:00
|
|
|
|
2018-12-02 16:33:14 +01:00
|
|
|
|
|
|
|
|
|
2019-01-16 08:07:38 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-12-02 16:33:14 +01:00
|
|
|
|
|
|
|
|
|
2019-01-16 08:07:38 +01:00
|
|
|
|
2018-12-02 16:33:14 +01:00
|
|
|
|
2010-04-02 01:05:27 +00:00
|
|
|
|
2020-08-06 17:37:53 +02:00
|
|
|
|
|
|
|
|
|
2019-01-16 08:07:38 +01:00
|
|
|
|
|
|
|
|
|
2013-02-28 01:01:52 +00:00
|
|
|
|
2006-08-14 23:00:29 -07:00
|
|
|
|
|
|
|
|
|
2012-06-27 07:33:35 +00:00
|
|
|
|
|
|
|
|
|
2020-06-18 14:45:58 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-11-03 12:27:33 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-05-26 16:29:36 +01:00
|
|
|
|
2015-11-03 12:27:33 +08:00
|
|
|
|
2020-05-26 16:29:36 +01:00
|
|
|
|
2015-11-03 12:27:33 +08:00
|
|
|
|
|
|
|
|
|
2019-02-09 09:46:53 +01:00
|
|
|
|
2015-11-03 12:27:33 +08:00
|
|
|
|
2020-05-26 16:29:36 +01:00
|
|
|
|
2015-11-03 12:27:33 +08:00
|
|
|
|
|
|
|
|
|
2019-02-09 09:46:53 +01:00
|
|
|
|
2015-11-03 12:27:33 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-06-27 07:33:35 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-06-18 14:45:43 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-06-27 07:33:35 +00:00
|
|
|
|
2020-06-18 14:45:43 +01:00
|
|
|
|
2024-02-04 17:14:14 -06:00
|
|
|
|
2012-06-27 07:33:35 +00:00
|
|
|
|
2020-06-18 14:45:43 +01:00
|
|
|
|
2020-05-26 16:29:36 +01:00
|
|
|
|
|
|
|
|
|
2012-06-27 07:33:35 +00:00
|
|
|
|
2020-06-18 14:46:03 +01:00
|
|
|
|
2020-06-18 14:45:58 +01:00
|
|
|
|
2012-06-27 07:33:35 +00:00
|
|
|
|
2015-11-03 12:27:33 +08:00
|
|
|
|
|
|
|
|
|
2012-06-27 07:33:35 +00:00
|
|
|
|
2020-07-20 20:26:54 +03:00
|
|
|
|
|
|
|
|
|
2020-06-18 14:45:58 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-02-04 17:14:14 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-06-18 14:45:58 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-06-18 14:46:03 +01:00
|
|
|
|
2012-06-27 07:33:35 +00:00
|
|
|
|
|
|
|
|
|
2020-06-18 14:45:32 +01:00
|
|
|
|
2012-06-27 07:33:35 +00:00
|
|
|
|
2020-06-18 14:46:03 +01:00
|
|
|
|
2020-06-18 14:45:32 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-06-18 14:46:03 +01:00
|
|
|
|
2020-06-18 14:45:32 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-06-18 14:46:03 +01:00
|
|
|
|
2020-06-18 14:45:43 +01:00
|
|
|
|
2012-06-27 07:33:35 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-06-18 14:46:03 +01:00
|
|
|
|
2012-06-27 07:33:35 +00:00
|
|
|
|
|
|
|
|
|
2020-06-18 14:46:13 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-05-26 16:29:36 +01:00
|
|
|
|
2012-06-27 07:33:35 +00:00
|
|
|
|
|
|
|
|
|
2019-02-09 09:46:53 +01:00
|
|
|
|
2012-06-27 07:33:35 +00:00
|
|
|
|
2020-05-26 16:29:36 +01:00
|
|
|
|
2012-06-27 07:33:35 +00:00
|
|
|
|
|
|
|
|
|
2019-02-09 09:46:53 +01:00
|
|
|
|
2012-06-27 07:33:35 +00:00
|
|
|
|
2020-06-18 14:45:43 +01:00
|
|
|
|
2020-06-18 14:46:03 +01:00
|
|
|
|
2020-06-18 14:46:08 +01:00
|
|
|
|
|
|
|
|
|
2020-06-18 14:46:03 +01:00
|
|
|
|
2012-06-27 07:33:35 +00:00
|
|
|
|
|
|
|
|
|
2006-08-14 23:00:29 -07:00
|
|
|
|
2008-04-15 12:49:21 -04:00
|
|
|
|
2020-06-18 14:45:37 +01:00
|
|
|
|
2008-04-15 12:49:21 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-06-18 14:45:48 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-04-15 12:49:21 -04:00
|
|
|
|
2020-06-18 14:45:37 +01:00
|
|
|
|
2008-04-15 12:49:21 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-01-05 03:17:06 +03:00
|
|
|
|
2011-09-30 11:51:22 +00:00
|
|
|
|
2018-04-24 18:09:04 +02:00
|
|
|
|
2019-01-16 19:52:51 +01:00
|
|
|
|
|
|
|
|
|
2018-04-24 18:09:04 +02:00
|
|
|
|
2008-04-15 12:49:21 -04:00
|
|
|
|
2019-02-09 09:46:53 +01:00
|
|
|
|
2008-04-15 12:49:21 -04:00
|
|
|
|
|
|
|
|
|
2011-09-30 11:51:22 +00:00
|
|
|
|
2020-06-19 11:47:47 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-04-15 12:49:21 -04:00
|
|
|
|
2019-02-09 09:46:53 +01:00
|
|
|
|
2008-04-15 12:49:21 -04:00
|
|
|
|
2020-06-18 14:45:48 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-04-15 12:49:21 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-11 13:53:51 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
2014-01-05 03:17:06 +03:00
|
|
|
|
|
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
|
|
|
|
|
2012-06-27 07:33:35 +00:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2020-06-18 14:45:53 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2012-06-27 07:33:35 +00:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
net: phy: avoid matching all-ones clause 45 PHY IDs
We currently match clause 45 PHYs using any ID read from a MMD marked
as present in the "Devices in package" registers 5 and 6. However,
this is incorrect. 45.2 says:
"The definition of the term package is vendor specific and could be
a chip, module, or other similar entity."
so a package could be more or less than the whole PHY - a PHY could be
made up of several modules instantiated onto a single chip such as the
Marvell 88x3310, or some of the MMDs could be disabled according to
chip configuration, such as the Broadcom 84881.
In the case of Broadcom 84881, the "Devices in package" registers
contain 0xc000009b, meaning that there is a PHYXS present in the
package, but all registers in MMD 4 return 0xffff. This leads to our
matching code incorrectly binding this PHY to one of our generic PHY
drivers.
This patch changes the way we determine whether to attempt to match a
MMD identifier, or use it to request a module - if the identifier is
all-ones, then we skip over it. When reading the identifiers, we
initialise phydev->c45_ids.device_ids to all-ones, only reading the
device ID if the "Devices in package" registers indicates we should.
This avoids the generic drivers incorrectly matching on a PHY ID of
0xffffffff.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-11-15 20:08:37 +00:00
|
|
|
|
2012-06-27 21:28:14 -07:00
|
|
|
|
2008-04-15 12:49:21 -04:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
net: phy: avoid matching all-ones clause 45 PHY IDs
We currently match clause 45 PHYs using any ID read from a MMD marked
as present in the "Devices in package" registers 5 and 6. However,
this is incorrect. 45.2 says:
"The definition of the term package is vendor specific and could be
a chip, module, or other similar entity."
so a package could be more or less than the whole PHY - a PHY could be
made up of several modules instantiated onto a single chip such as the
Marvell 88x3310, or some of the MMDs could be disabled according to
chip configuration, such as the Broadcom 84881.
In the case of Broadcom 84881, the "Devices in package" registers
contain 0xc000009b, meaning that there is a PHYXS present in the
package, but all registers in MMD 4 return 0xffff. This leads to our
matching code incorrectly binding this PHY to one of our generic PHY
drivers.
This patch changes the way we determine whether to attempt to match a
MMD identifier, or use it to request a module - if the identifier is
all-ones, then we skip over it. When reading the identifiers, we
initialise phydev->c45_ids.device_ids to all-ones, only reading the
device ID if the "Devices in package" registers indicates we should.
This avoids the generic drivers incorrectly matching on a PHY ID of
0xffffffff.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-11-15 20:08:37 +00:00
|
|
|
|
2020-06-18 14:46:08 +01:00
|
|
|
|
net: phy: avoid matching all-ones clause 45 PHY IDs
We currently match clause 45 PHYs using any ID read from a MMD marked
as present in the "Devices in package" registers 5 and 6. However,
this is incorrect. 45.2 says:
"The definition of the term package is vendor specific and could be
a chip, module, or other similar entity."
so a package could be more or less than the whole PHY - a PHY could be
made up of several modules instantiated onto a single chip such as the
Marvell 88x3310, or some of the MMDs could be disabled according to
chip configuration, such as the Broadcom 84881.
In the case of Broadcom 84881, the "Devices in package" registers
contain 0xc000009b, meaning that there is a PHYXS present in the
package, but all registers in MMD 4 return 0xffff. This leads to our
matching code incorrectly binding this PHY to one of our generic PHY
drivers.
This patch changes the way we determine whether to attempt to match a
MMD identifier, or use it to request a module - if the identifier is
all-ones, then we skip over it. When reading the identifiers, we
initialise phydev->c45_ids.device_ids to all-ones, only reading the
device ID if the "Devices in package" registers indicates we should.
This avoids the generic drivers incorrectly matching on a PHY ID of
0xffffffff.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-11-15 20:08:37 +00:00
|
|
|
|
|
|
|
|
|
2020-06-18 14:45:37 +01:00
|
|
|
|
2020-06-18 14:45:43 +01:00
|
|
|
|
2020-06-18 14:45:37 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-04-15 12:49:21 -04:00
|
|
|
|
|
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2021-06-07 10:36:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-01-18 11:01:39 +01:00
|
|
|
|
2021-06-07 10:36:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-01-05 03:21:52 +03:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2009-04-25 12:52:46 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-06-16 16:56:33 +00:00
|
|
|
|
2009-04-25 12:52:46 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:18 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-04-25 12:52:46 +00:00
|
|
|
|
2017-12-04 13:35:05 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-04-25 12:52:46 +00:00
|
|
|
|
2014-07-28 16:28:07 -07:00
|
|
|
|
2013-12-06 13:01:34 -08:00
|
|
|
|
2019-01-15 21:50:25 +01:00
|
|
|
|
2013-12-06 13:01:34 -08:00
|
|
|
|
|
|
|
|
|
2009-04-25 12:52:46 +00:00
|
|
|
|
2016-01-06 20:11:16 +01:00
|
|
|
|
2009-04-25 12:52:46 +00:00
|
|
|
|
2019-01-15 21:50:25 +01:00
|
|
|
|
2009-04-25 12:52:46 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-12-04 13:35:05 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:18 +01:00
|
|
|
|
2009-04-25 12:52:46 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2015-09-24 20:36:28 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-11 13:53:53 +03:00
|
|
|
|
2022-10-03 08:51:59 +02:00
|
|
|
|
2019-12-25 18:16:18 -08:00
|
|
|
|
2016-01-06 20:11:16 +01:00
|
|
|
|
2017-12-04 13:35:05 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:18 +01:00
|
|
|
|
2015-09-24 20:36:28 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-07-19 13:32:11 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-02-04 10:23:02 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:18 +01:00
|
|
|
|
2010-02-04 10:23:02 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:18 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-02-04 10:23:02 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-05-18 15:23:59 -07:00
|
|
|
|
2017-07-25 15:02:58 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-05-18 15:23:59 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-07-25 15:02:58 +01:00
|
|
|
|
2019-12-25 18:16:15 -08:00
|
|
|
|
|
|
|
|
|
2017-07-25 15:02:58 +01:00
|
|
|
|
|
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
|
|
|
|
|
2010-10-21 08:37:41 +00:00
|
|
|
|
2014-01-05 03:17:06 +03:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-04-25 12:52:51 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-14 00:52:52 +00:00
|
|
|
|
2009-04-25 12:52:51 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-28 20:38:09 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-14 00:52:52 +00:00
|
|
|
|
2009-04-25 12:52:51 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-01-23 07:31:58 +01:00
|
|
|
|
|
|
|
|
|
2009-04-25 12:52:51 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-04-28 10:58:22 -07:00
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
|
|
|
|
|
2005-08-24 18:46:21 -05:00
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
2005-08-24 18:46:21 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-12-17 21:38:12 -08:00
|
|
|
|
2014-01-05 03:17:06 +03:00
|
|
|
|
|
|
|
|
|
2005-08-24 18:46:21 -05:00
|
|
|
|
|
|
|
|
|
2009-04-25 12:52:51 +00:00
|
|
|
|
|
|
|
|
|
2005-08-24 18:46:21 -05:00
|
|
|
|
2009-04-25 12:52:51 +00:00
|
|
|
|
2014-01-05 03:17:06 +03:00
|
|
|
|
|
|
|
|
|
2009-04-25 12:52:51 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-08-24 18:46:21 -05:00
|
|
|
|
2013-01-14 00:52:52 +00:00
|
|
|
|
2016-11-03 18:40:19 +01:00
|
|
|
|
2009-04-25 12:52:51 +00:00
|
|
|
|
|
|
|
|
|
2005-08-24 18:46:21 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
2014-01-05 03:17:06 +03:00
|
|
|
|
|
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
|
|
|
|
|
2005-08-24 18:46:21 -05:00
|
|
|
|
|
|
|
|
|
2019-01-17 20:07:54 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-01-17 20:09:21 +01:00
|
|
|
|
2019-05-30 15:09:15 +02:00
|
|
|
|
2005-08-24 18:46:21 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-12-06 13:01:34 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-03-23 23:05:58 +08:00
|
|
|
|
2013-12-06 13:01:34 -08:00
|
|
|
|
2020-03-23 23:05:58 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-01-05 03:17:06 +03:00
|
|
|
|
2013-12-06 13:01:34 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-12-30 08:23:30 +00:00
|
|
|
|
|
|
|
|
|
2014-02-17 13:34:03 -08:00
|
|
|
|
2009-12-30 08:23:30 +00:00
|
|
|
|
2017-12-04 13:35:05 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-01-19 10:43:07 +01:00
|
|
|
|
2009-12-30 08:23:30 +00:00
|
|
|
|
|
|
|
|
|
2020-04-23 21:38:42 +02:00
|
|
|
|
2014-02-17 13:34:03 -08:00
|
|
|
|
2023-11-21 14:53:32 +01:00
|
|
|
|
|
|
|
|
|
2014-02-17 13:34:03 -08:00
|
|
|
|
2023-11-21 14:53:32 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-12-06 13:01:34 -08:00
|
|
|
|
2009-12-30 08:23:30 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-11-24 12:27:52 +00:00
|
|
|
|
|
|
|
|
|
2021-02-11 22:32:52 +01:00
|
|
|
|
2019-01-19 10:43:07 +01:00
|
|
|
|
2021-02-11 22:32:52 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-01-19 10:43:07 +01:00
|
|
|
|
2021-02-11 22:32:52 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-12-30 08:23:30 +00:00
|
|
|
|
2013-12-06 13:01:34 -08:00
|
|
|
|
2009-12-30 08:23:30 +00:00
|
|
|
|
2016-01-06 20:11:13 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-11-15 16:03:10 +01:00
|
|
|
|
2020-01-12 09:35:38 -08:00
|
|
|
|
2016-01-06 20:11:13 +01:00
|
|
|
|
2017-09-04 10:41:36 +02:00
|
|
|
|
2017-09-21 13:27:02 +02:00
|
|
|
|
2017-09-04 10:41:36 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-02-14 15:16:23 +01:00
|
|
|
|
|
|
|
|
|
2017-09-04 10:41:36 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-01-12 09:35:38 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-11-15 16:03:10 +01:00
|
|
|
|
2020-01-12 09:35:38 -08:00
|
|
|
|
2017-08-22 14:26:47 -07:00
|
|
|
|
2016-01-06 20:11:13 +01:00
|
|
|
|
2020-11-15 16:03:10 +01:00
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:13 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-11-15 16:03:10 +01:00
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:13 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-01-12 09:35:38 -08:00
|
|
|
|
2016-01-06 20:11:13 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-28 20:38:07 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-28 20:38:08 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-28 20:38:07 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-28 20:38:10 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-09-28 19:34:20 +08:00
|
|
|
|
2019-05-28 20:38:10 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-21 17:09:57 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-11-15 19:56:51 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-05-17 14:53:40 +03:00
|
|
|
|
2019-11-15 19:56:51 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-05-17 14:53:40 +03:00
|
|
|
|
2019-11-15 19:56:51 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-02-02 17:41:45 +00:00
|
|
|
|
2024-01-29 14:55:04 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
2009-04-25 12:52:51 +00:00
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
2009-04-25 12:52:51 +00:00
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-01-10 14:27:54 +08:00
|
|
|
|
|
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
|
|
|
|
|
2015-09-24 20:36:08 +01:00
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
2014-01-10 14:27:54 +08:00
|
|
|
|
|
|
|
|
|
2005-08-24 18:46:21 -05:00
|
|
|
|
2016-01-06 20:11:16 +01:00
|
|
|
|
|
|
|
|
|
2019-05-28 20:38:08 +03:00
|
|
|
|
2017-02-08 19:05:26 -08:00
|
|
|
|
2011-03-28 14:54:08 +00:00
|
|
|
|
2005-08-24 18:46:21 -05:00
|
|
|
|
2016-12-06 20:54:43 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-28 20:38:08 +03:00
|
|
|
|
|
|
|
|
|
2016-12-06 20:54:43 -08:00
|
|
|
|
2019-05-28 20:38:08 +03:00
|
|
|
|
2015-09-24 20:36:02 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-09-24 20:36:08 +01:00
|
|
|
|
|
|
|
|
|
2005-08-24 18:46:21 -05:00
|
|
|
|
2014-01-05 03:17:06 +03:00
|
|
|
|
|
|
|
|
|
2015-08-28 21:35:14 +03:00
|
|
|
|
2014-01-10 14:27:54 +08:00
|
|
|
|
2019-04-07 13:55:01 +02:00
|
|
|
|
2014-01-10 14:27:54 +08:00
|
|
|
|
2017-06-05 12:23:05 +01:00
|
|
|
|
2005-08-24 18:46:21 -05:00
|
|
|
|
2017-02-08 19:05:26 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-28 20:38:08 +03:00
|
|
|
|
2017-02-08 19:05:26 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-08-24 18:46:21 -05:00
|
|
|
|
2006-10-01 07:27:46 -04:00
|
|
|
|
|
|
|
|
|
2005-08-24 18:46:21 -05:00
|
|
|
|
2006-10-01 07:27:46 -04:00
|
|
|
|
2017-02-08 19:05:26 -08:00
|
|
|
|
2005-08-24 18:46:21 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-04-25 12:52:51 +00:00
|
|
|
|
2015-09-24 20:36:02 +01:00
|
|
|
|
|
|
|
|
|
2014-07-23 16:47:32 -03:00
|
|
|
|
|
|
|
|
|
2017-07-25 15:02:58 +01:00
|
|
|
|
2019-05-28 20:38:08 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-11-15 19:56:51 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
net: phy: Introduce ethernet link topology representation
Link topologies containing multiple network PHYs attached to the same
net_device can be found when using a PHY as a media converter for use
with an SFP connector, on which an SFP transceiver containing a PHY can
be used.
With the current model, the transceiver's PHY can't be used for
operations such as cable testing, timestamping, macsec offload, etc.
The reason being that most of the logic for these configuration, coming
from either ethtool netlink or ioctls tend to use netdev->phydev, which
in multi-phy systems will reference the PHY closest to the MAC.
Introduce a numbering scheme allowing to enumerate PHY devices that
belong to any netdev, which can in turn allow userspace to take more
precise decisions with regard to each PHY's configuration.
The numbering is maintained per-netdev, in a phy_device_list.
The numbering works similarly to a netdevice's ifindex, with
identifiers that are only recycled once INT_MAX has been reached.
This prevents races that could occur between PHY listing and SFP
transceiver removal/insertion.
The identifiers are assigned at phy_attach time, as the numbering
depends on the netdevice the phy is attached to. The PHY index can be
re-used for PHYs that are persistent.
Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Tested-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: David S. Miller <davem@davemloft.net>
2024-08-21 17:09:55 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-28 20:38:08 +03:00
|
|
|
|
2017-05-27 10:42:25 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-28 20:38:07 +03:00
|
|
|
|
2005-08-24 18:46:21 -05:00
|
|
|
|
2019-05-28 20:38:10 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-10-22 11:31:06 -07:00
|
|
|
|
2005-08-24 18:46:21 -05:00
|
|
|
|
2006-12-01 12:01:06 -06:00
|
|
|
|
|
|
|
|
|
phylib: Fix race between returning phydev and calling adjust_link
It is possible that phylib will call adjust_link before returning
from {,of_}phy_connect(), which may cause the following [very rare,
though] oops upon reopening the device:
Unable to handle kernel paging request for data at address 0x0000024c
Oops: Kernel access of bad area, sig: 11 [#1]
PREEMPT SMP NR_CPUS=2 LTT NESTING LEVEL : 0
P1021 RDB
Modules linked in:
NIP: c0345dac LR: c0345dac CTR: c0345d84
TASK = dffab6b0[30] 'events/0' THREAD: c0d24000 CPU: 0
[...]
NIP [c0345dac] adjust_link+0x28/0x19c
LR [c0345dac] adjust_link+0x28/0x19c
Call Trace:
[c0d25f00] [000045e1] 0x45e1 (unreliable)
[c0d25f30] [c036c158] phy_state_machine+0x3ac/0x554
[...]
Here is why. Drivers store phydev in their private structures, e.g.
gianfar driver:
static int init_phy(struct net_device *dev)
{
...
priv->phydev = of_phy_connect(...);
...
}
So that adjust_link could retrieve it back:
static void adjust_link(struct net_device *dev)
{
...
struct phy_device *phydev = priv->phydev;
...
}
If the device has been opened before, then phydev->state is set to
PHY_HALTED (or undefined if the driver didn't call phy_stop()).
Now, phy_connect starts the PHY state machine before returning phydev to
the driver:
phy_start_machine(phydev, NULL);
if (phydev->irq > 0)
phy_start_interrupts(phydev);
return phydev;
The time between 'phy_start_machine()' and 'return phydev' is undefined.
The start machine routine delays execution for 1 second, which is enough
for most cases. But under heavy load, or if you're unlucky, it is quite
possible that PHY state machine will execute before phy_connect()
returns, and so adjust_link callback will try to dereference phydev,
which is not yet ready.
To fix the issue, simply initialize the PHY's state to PHY_READY during
phy_attach(). This will ensure that phylib won't call adjust_link before
phy_start().
Signed-off-by: Anton Vorontsov <avorontsov@mvista.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2010-08-24 14:46:12 -07:00
|
|
|
|
|
|
|
|
|
2022-04-27 08:30:51 +02:00
|
|
|
|
|
|
|
|
|
2023-01-09 13:30:12 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-01-29 14:55:04 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-02-09 17:38:52 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-14 21:57:18 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-28 20:38:08 +03:00
|
|
|
|
|
|
|
|
|
2016-01-14 21:57:18 +01:00
|
|
|
|
2006-12-01 12:01:06 -06:00
|
|
|
|
|
|
|
|
|
2014-01-05 03:17:06 +03:00
|
|
|
|
|
|
|
|
|
2011-03-28 14:54:08 +00:00
|
|
|
|
|
|
|
|
|
2016-11-23 23:10:33 +00:00
|
|
|
|
2013-12-13 10:20:28 +01:00
|
|
|
|
2016-11-23 23:10:33 +00:00
|
|
|
|
2023-12-12 00:05:35 +00:00
|
|
|
|
|
|
|
|
|
2016-10-17 10:49:55 -05:00
|
|
|
|
2022-11-30 10:12:16 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-01-27 09:14:27 -08:00
|
|
|
|
2022-11-30 10:12:16 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-03-28 14:54:08 +00:00
|
|
|
|
2015-09-24 20:36:02 +01:00
|
|
|
|
|
|
|
|
|
2017-02-08 19:05:26 -08:00
|
|
|
|
2016-11-23 23:10:33 +00:00
|
|
|
|
2017-02-08 19:05:26 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-01-31 18:46:43 -08:00
|
|
|
|
net: phy: fix null-ptr-deref while probe() failed
I got a null-ptr-deref report as following when doing fault injection test:
BUG: kernel NULL pointer dereference, address: 0000000000000058
Oops: 0000 [#1] PREEMPT SMP KASAN PTI
CPU: 1 PID: 253 Comm: 507-spi-dm9051 Tainted: G B N 6.1.0-rc3+
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1.1 04/01/2014
RIP: 0010:klist_put+0x2d/0xd0
Call Trace:
<TASK>
klist_remove+0xf1/0x1c0
device_release_driver_internal+0x23e/0x2d0
bus_remove_device+0x1bd/0x240
device_del+0x357/0x770
phy_device_remove+0x11/0x30
mdiobus_unregister+0xa5/0x140
release_nodes+0x6a/0xa0
devres_release_all+0xf8/0x150
device_unbind_cleanup+0x19/0xd0
//probe path:
phy_device_register()
device_add()
phy_connect
phy_attach_direct() //set device driver
probe() //it's failed, driver is not bound
device_bind_driver() // probe failed, it's not called
//remove path:
phy_device_remove()
device_del()
device_release_driver_internal()
__device_release_driver() //dev->drv is not NULL
klist_remove() <- knode_driver is not added yet, cause null-ptr-deref
In phy_attach_direct(), after setting the 'dev->driver', probe() fails,
device_bind_driver() is not called, so the knode_driver->n_klist is not
set, then it causes null-ptr-deref in __device_release_driver() while
deleting device. Fix this by setting dev->driver to NULL in the error
path in phy_attach_direct().
Fixes: e13934563db0 ("[PATCH] PHY Layer fixup")
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2022-11-23 21:28:08 +08:00
|
|
|
|
2017-02-08 19:05:26 -08:00
|
|
|
|
|
|
|
|
|
2016-12-06 20:54:43 -08:00
|
|
|
|
|
|
|
|
|
2015-09-24 20:36:02 +01:00
|
|
|
|
2009-04-25 12:52:51 +00:00
|
|
|
|
2014-01-10 14:27:54 +08:00
|
|
|
|
2009-04-25 12:52:51 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-01-05 03:17:06 +03:00
|
|
|
|
|
|
|
|
|
2009-04-25 12:52:51 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-28 20:38:09 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-04-25 12:52:51 +00:00
|
|
|
|
2014-01-05 03:17:06 +03:00
|
|
|
|
|
|
|
|
|
2024-02-13 11:48:00 -03:00
|
|
|
|
2009-04-25 12:52:51 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-14 00:52:52 +00:00
|
|
|
|
2016-11-03 18:40:19 +01:00
|
|
|
|
2009-04-25 12:52:51 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-08-24 18:46:21 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-01-15 15:09:35 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-04-07 13:55:01 +02:00
|
|
|
|
2019-01-15 15:09:35 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-05-06 16:53:13 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-12-15 14:15:32 +01:00
|
|
|
|
|
|
|
|
|
2020-05-06 16:53:13 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-12-15 14:15:32 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-05-06 16:53:13 +02:00
|
|
|
|
2023-12-15 14:15:32 +01:00
|
|
|
|
|
|
|
|
|
2020-05-06 16:53:13 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-12-15 14:15:32 +01:00
|
|
|
|
2020-05-06 16:53:13 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-12-15 14:15:32 +01:00
|
|
|
|
2020-05-06 16:53:13 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-12-15 14:15:32 +01:00
|
|
|
|
2020-05-06 16:53:13 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-12-15 14:15:32 +01:00
|
|
|
|
2024-02-06 18:31:06 +01:00
|
|
|
|
2020-05-06 16:53:13 +02:00
|
|
|
|
2023-12-15 14:15:32 +01:00
|
|
|
|
2020-05-06 16:53:13 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-02-06 18:31:06 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-05-06 16:53:13 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-02-06 18:31:06 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-05-06 16:53:13 +02:00
|
|
|
|
2023-12-15 14:15:32 +01:00
|
|
|
|
2020-05-06 16:53:13 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-12-15 14:15:32 +01:00
|
|
|
|
|
|
|
|
|
2020-05-06 16:53:13 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-12-15 14:15:32 +01:00
|
|
|
|
2020-05-06 16:53:13 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-12-15 14:15:32 +01:00
|
|
|
|
2020-05-06 16:53:13 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-02-06 18:31:06 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-09-24 20:36:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
2005-08-24 18:46:21 -05:00
|
|
|
|
|
|
|
|
|
2016-12-06 20:54:43 -08:00
|
|
|
|
2019-05-28 20:38:08 +03:00
|
|
|
|
2015-09-24 20:36:02 +01:00
|
|
|
|
2014-07-23 16:47:32 -03:00
|
|
|
|
2022-11-30 10:12:16 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-05-27 10:42:25 -07:00
|
|
|
|
2019-05-28 20:38:08 +03:00
|
|
|
|
|
|
|
|
|
2017-05-27 10:42:25 -07:00
|
|
|
|
|
|
|
|
|
2019-05-28 20:38:10 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-09-24 22:01:32 +02:00
|
|
|
|
2019-05-28 20:38:08 +03:00
|
|
|
|
2024-12-12 18:06:43 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-28 20:38:08 +03:00
|
|
|
|
|
|
|
|
|
net: phy: Introduce ethernet link topology representation
Link topologies containing multiple network PHYs attached to the same
net_device can be found when using a PHY as a media converter for use
with an SFP connector, on which an SFP transceiver containing a PHY can
be used.
With the current model, the transceiver's PHY can't be used for
operations such as cable testing, timestamping, macsec offload, etc.
The reason being that most of the logic for these configuration, coming
from either ethtool netlink or ioctls tend to use netdev->phydev, which
in multi-phy systems will reference the PHY closest to the MAC.
Introduce a numbering scheme allowing to enumerate PHY devices that
belong to any netdev, which can in turn allow userspace to take more
precise decisions with regard to each PHY's configuration.
The numbering is maintained per-netdev, in a phy_device_list.
The numbering works similarly to a netdevice's ifindex, with
identifiers that are only recycled once INT_MAX has been reached.
This prevents races that could occur between PHY listing and SFP
transceiver removal/insertion.
The identifiers are assigned at phy_attach time, as the numbering
depends on the netdevice the phy is attached to. The PHY index can be
re-used for PHYs that are persistent.
Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Tested-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: David S. Miller <davem@davemloft.net>
2024-08-21 17:09:55 +02:00
|
|
|
|
2019-05-28 20:38:08 +03:00
|
|
|
|
phylink: add phylink infrastructure
The link between the ethernet MAC and its PHY has become more complex
as the interface evolves. This is especially true with serdes links,
where the part of the PHY is effectively integrated into the MAC.
Serdes links can be connected to a variety of devices, including SFF
modules soldered down onto the board with the MAC, a SFP cage with
a hotpluggable SFP module which may contain a PHY or directly modulate
the serdes signals onto optical media with or without a PHY, or even
a classical PHY connection.
Moreover, the negotiation information on serdes links comes in two
varieties - SGMII mode, where the PHY provides its speed/duplex/flow
control information to the MAC, and 1000base-X mode where both ends
exchange their abilities and each resolve the link capabilities.
This means we need a more flexible means to support these arrangements,
particularly with the hotpluggable nature of SFP, where the PHY can
be attached or detached after the network device has been brought up.
Ethtool information can come from multiple sources:
- we may have a PHY operating in either SGMII or 1000base-X mode, in
which case we take ethtool/mii data directly from the PHY.
- we may have a optical SFP module without a PHY, with the MAC
operating in 1000base-X mode - the ethtool/mii data needs to come
from the MAC.
- we may have a copper SFP module with a PHY whic can't be accessed,
which means we need to take ethtool/mii data from the MAC.
Phylink aims to solve this by providing an intermediary between the
MAC and PHY, providing a safe way for PHYs to be hotplugged, and
allowing a SFP driver to reconfigure the serdes connection.
Phylink also takes over support of fixed link connections, where the
speed/duplex/flow control are fixed, but link status may be controlled
by a GPIO signal. By avoiding the fixed-phy implementation, phylink
can provide a faster response to link events: fixed-phy has to wait for
phylib to operate its state machine, which can take several seconds.
In comparison, phylink takes milliseconds.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
- remove sync status
- rework supported and advertisment handling
- add 1000base-x speed for fixed links
- use functionality exported from phy-core, reworking
__phylink_ethtool_ksettings_set for it
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-07-25 15:03:13 +01:00
|
|
|
|
2005-08-24 18:46:21 -05:00
|
|
|
|
2023-12-12 00:05:35 +00:00
|
|
|
|
|
|
|
|
|
2016-11-28 15:18:31 +01:00
|
|
|
|
2020-09-16 20:43:09 -07:00
|
|
|
|
|
|
|
|
|
2017-02-08 19:05:26 -08:00
|
|
|
|
2005-08-24 18:46:21 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-01-05 03:17:06 +03:00
|
|
|
|
|
|
|
|
|
2019-01-15 15:09:35 -08:00
|
|
|
|
|
|
|
|
|
2017-06-05 12:23:05 +01:00
|
|
|
|
2015-09-24 20:36:02 +01:00
|
|
|
|
2022-01-19 17:27:48 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-09-24 20:36:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:16 +01:00
|
|
|
|
2015-09-24 20:36:02 +01:00
|
|
|
|
2016-01-06 20:11:16 +01:00
|
|
|
|
2019-05-28 20:38:08 +03:00
|
|
|
|
|
|
|
|
|
2016-12-06 20:54:43 -08:00
|
|
|
|
|
|
|
|
|
2005-08-24 18:46:21 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-12-13 10:20:27 +01:00
|
|
|
|
|
|
|
|
|
2020-03-26 18:58:24 +01:00
|
|
|
|
2024-02-02 17:41:45 +00:00
|
|
|
|
2020-03-26 18:58:24 +01:00
|
|
|
|
2013-12-13 10:20:27 +01:00
|
|
|
|
2024-06-28 11:32:11 +01:00
|
|
|
|
2020-04-23 21:34:33 +02:00
|
|
|
|
|
|
|
|
|
net: phy: phy_device: fix PHY WOL enabled, PM failed to suspend
If the PHY of the mido bus is enabled with Wake-on-LAN (WOL),
we cannot suspend the PHY. Although the WOL status has been
checked in phy_suspend(), returning -EBUSY(-16) would cause
the Power Management (PM) to fail to suspend. Since
phy_suspend() is an exported symbol (EXPORT_SYMBOL),
timely error reporting is needed. Therefore, an additional
check is performed here. If the PHY of the mido bus is enabled
with WOL, we skip calling phy_suspend() to avoid PM failure.
From the following logs, it has been observed that the phydev->attached_dev
is NULL, phydev is "stmmac-0:01", it not attached, but it will affect suspend
and resume.The actually attached "stmmac-0:00" will not dpm_run_callback():
mdio_bus_phy_suspend().
init log:
[ 5.932502] YT8521 Gigabit Ethernet stmmac-0:00: attached PHY driver
(mii_bus:phy_addr=stmmac-0:00, irq=POLL)
[ 5.932512] YT8521 Gigabit Ethernet stmmac-0:01: attached PHY driver
(mii_bus:phy_addr=stmmac-0:01, irq=POLL)
[ 24.566289] YT8521 Gigabit Ethernet stmmac-0:00: yt8521_read_status,
link down, media: UTP
suspend log:
[ 322.631362] OOM killer disabled.
[ 322.631364] Freezing remaining freezable tasks
[ 322.632536] Freezing remaining freezable tasks completed (elapsed 0.001 seconds)
[ 322.632540] printk: Suspending console(s) (use no_console_suspend to debug)
[ 322.633052] YT8521 Gigabit Ethernet stmmac-0:01:
PM: dpm_run_callback(): mdio_bus_phy_suspend+0x0/0x110 [libphy] returns -16
[ 322.633071] YT8521 Gigabit Ethernet stmmac-0:01:
PM: failed to suspend: error -16
[ 322.669699] PM: Some devices failed to suspend, or early wake event detected
[ 322.669949] OOM killer enabled.
[ 322.669951] Restarting tasks ... done.
[ 322.671008] random: crng reseeded on system resumption
[ 322.671014] PM: suspend exit
Add a function that phylib can inquire of the driver whether WoL
has been enabled at the PHY.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Youwan Wang <youwan@nfschina.com>
Reviewed-by: Wojciech Drewek <wojciech.drewek@intel.com>
Link: https://patch.msgid.link/20240731091537.771391-1-youwan@nfschina.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2024-07-31 17:15:37 +08:00
|
|
|
|
2024-06-27 16:33:46 +01:00
|
|
|
|
2023-05-11 10:21:08 -07:00
|
|
|
|
|
|
|
|
|
2013-12-13 10:20:27 +01:00
|
|
|
|
|
|
|
|
|
2024-06-28 11:32:11 +01:00
|
|
|
|
2020-03-26 18:58:24 +01:00
|
|
|
|
2015-01-26 22:05:39 -08:00
|
|
|
|
2020-03-26 18:58:24 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-01-26 22:05:39 -08:00
|
|
|
|
|
|
|
|
|
2013-12-13 10:20:27 +01:00
|
|
|
|
2014-07-08 10:38:36 -07:00
|
|
|
|
2013-12-13 10:20:27 +01:00
|
|
|
|
2018-02-27 01:56:06 +01:00
|
|
|
|
2013-12-13 10:20:27 +01:00
|
|
|
|
2024-02-02 17:41:45 +00:00
|
|
|
|
2020-03-26 18:58:24 +01:00
|
|
|
|
2013-12-13 10:20:27 +01:00
|
|
|
|
2021-01-06 14:03:40 +01:00
|
|
|
|
2017-12-12 10:45:36 +00:00
|
|
|
|
2020-03-26 18:58:24 +01:00
|
|
|
|
|
|
|
|
|
2015-01-26 22:05:39 -08:00
|
|
|
|
2020-03-26 18:58:24 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-01-26 22:05:39 -08:00
|
|
|
|
|
|
|
|
|
2013-12-13 10:20:27 +01:00
|
|
|
|
2018-02-27 01:56:06 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-07-08 10:38:36 -07:00
|
|
|
|
2005-08-24 18:46:21 -05:00
|
|
|
|
2017-06-30 17:44:15 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-08-19 15:11:52 +02:00
|
|
|
|
|
|
|
|
|
2021-04-19 15:01:01 +02:00
|
|
|
|
2017-06-30 17:44:15 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-08-19 15:11:52 +02:00
|
|
|
|
|
|
|
|
|
2017-06-30 17:44:15 +08:00
|
|
|
|
2021-04-19 15:01:01 +02:00
|
|
|
|
2017-06-30 17:44:15 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-12-11 13:16:58 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
|
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
2011-03-30 22:57:33 -03:00
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
2024-08-08 12:41:22 +01:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2008-09-24 10:55:46 +00:00
|
|
|
|
|
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2024-08-08 12:41:22 +01:00
|
|
|
|
|
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2019-08-09 20:43:04 +02:00
|
|
|
|
|
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2024-08-08 12:41:22 +01:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
|
|
|
|
|
2019-02-10 19:59:57 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-09 20:43:04 +02:00
|
|
|
|
2019-02-10 19:59:57 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-09-24 10:55:46 +00:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
net: phy: ensure Gigabit features are masked off if requested
When a Gigabit PHY device is connected to a 10/100Mbits capable Ethernet
MAC, the driver will restrict the phydev->supported modes to mask off
Gigabit. If the Gigabit PHY comes out of reset with the Gigabit features
set by default in MII_CTRL1000, it will keep advertising these feature,
so by the time we call genphy_config_advert(), the condition on
phydev->supported having the Gigabit features on is false, and we do not
update MII_CTRL1000 with updated values, and we keep advertising Gigabit
features, eventually configuring the PHY for Gigabit whilst the Ethernet
MAC does not support that.
This patches fixes the problem by ensuring that the Gigabit feature bits
are always cleared in MII_CTRL1000, if the PHY happens to be a Gigabit
PHY, and then, if Gigabit features are supported, setting those and
updating MII_CTRL1000 accordingly.
Reported-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Tested-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-02-03 12:35:46 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-08 12:41:22 +01:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2019-02-10 19:59:57 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
net: phy: ensure Gigabit features are masked off if requested
When a Gigabit PHY device is connected to a 10/100Mbits capable Ethernet
MAC, the driver will restrict the phydev->supported modes to mask off
Gigabit. If the Gigabit PHY comes out of reset with the Gigabit features
set by default in MII_CTRL1000, it will keep advertising these feature,
so by the time we call genphy_config_advert(), the condition on
phydev->supported having the Gigabit features on is false, and we do not
update MII_CTRL1000 with updated values, and we keep advertising Gigabit
features, eventually configuring the PHY for Gigabit whilst the Ethernet
MAC does not support that.
This patches fixes the problem by ensuring that the Gigabit feature bits
are always cleared in MII_CTRL1000, if the PHY happens to be a Gigabit
PHY, and then, if Gigabit features are supported, setting those and
updating MII_CTRL1000 accordingly.
Reported-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Tested-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-02-03 12:35:46 -08:00
|
|
|
|
|
|
|
|
|
2019-02-10 19:59:57 +01:00
|
|
|
|
|
|
|
|
|
net: phy: ensure Gigabit features are masked off if requested
When a Gigabit PHY device is connected to a 10/100Mbits capable Ethernet
MAC, the driver will restrict the phydev->supported modes to mask off
Gigabit. If the Gigabit PHY comes out of reset with the Gigabit features
set by default in MII_CTRL1000, it will keep advertising these feature,
so by the time we call genphy_config_advert(), the condition on
phydev->supported having the Gigabit features on is false, and we do not
update MII_CTRL1000 with updated values, and we keep advertising Gigabit
features, eventually configuring the PHY for Gigabit whilst the Ethernet
MAC does not support that.
This patches fixes the problem by ensuring that the Gigabit feature bits
are always cleared in MII_CTRL1000, if the PHY happens to be a Gigabit
PHY, and then, if Gigabit features are supported, setting those and
updating MII_CTRL1000 accordingly.
Reported-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Tested-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-02-03 12:35:46 -08:00
|
|
|
|
2008-09-24 10:55:46 +00:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
|
|
|
|
|
2019-10-22 11:31:07 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
|
|
|
|
|
2013-11-20 16:38:19 -06:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2022-06-18 11:28:37 +01:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2014-01-05 03:17:06 +03:00
|
|
|
|
|
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2022-06-18 11:28:37 +01:00
|
|
|
|
2013-12-17 21:38:12 -08:00
|
|
|
|
2018-01-02 10:58:58 +00:00
|
|
|
|
2018-02-12 12:02:52 +01:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2013-11-20 16:38:19 -06:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2020-05-05 08:35:05 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-08-23 17:36:59 -05:00
|
|
|
|
2020-05-05 08:35:05 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-03-07 21:45:14 +05:30
|
|
|
|
2020-05-05 08:35:05 +02:00
|
|
|
|
|
|
|
|
|
2020-05-07 15:34:30 +01:00
|
|
|
|
2020-05-05 08:35:05 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-03-07 21:45:14 +05:30
|
|
|
|
2020-05-05 08:35:05 +02:00
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-05 16:07:10 +00:00
|
|
|
|
2018-01-02 10:58:58 +00:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2008-10-13 18:48:09 -07:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2019-12-17 13:39:11 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-02-26 12:40:45 +05:30
|
|
|
|
2019-12-17 13:39:11 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-02-26 12:40:45 +05:30
|
|
|
|
2019-12-17 13:39:11 +00:00
|
|
|
|
2020-02-26 12:40:45 +05:30
|
|
|
|
2019-12-17 13:39:11 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
2019-08-09 20:43:50 +02:00
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
2019-08-09 20:43:50 +02:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2019-08-09 20:43:50 +02:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2024-08-08 12:41:22 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-09 20:43:50 +02:00
|
|
|
|
2016-11-28 10:46:46 +01:00
|
|
|
|
2023-02-22 06:50:41 +01:00
|
|
|
|
2023-02-11 08:41:10 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-09 20:43:50 +02:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2020-05-05 08:35:05 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-08 12:41:22 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-19 15:52:41 -08:00
|
|
|
|
2024-08-08 12:41:22 +01:00
|
|
|
|
|
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2024-08-08 12:41:22 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-11-28 10:46:46 +01:00
|
|
|
|
|
|
|
|
|
2019-08-09 20:43:50 +02:00
|
|
|
|
|
|
|
|
|
2016-11-28 10:46:46 +01:00
|
|
|
|
2019-12-17 13:39:11 +00:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2019-08-09 20:43:50 +02:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2019-10-22 11:31:07 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-02-11 17:27:36 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-12 21:20:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2019-02-06 19:39:52 +01:00
|
|
|
|
|
|
|
|
|
phy: avoid unnecessary link-up delay in polling mode
commit 93c0970493c71f ("net: phy: consider latched link-down status in
polling mode") removed double-read of latched link-state register for
polling mode from genphy_update_link(). This added extra ~1s delay into
sequence link down->up.
Following scenario:
- After boot link goes up
- phy_start() is called triggering an aneg restart, hence link goes
down and link-down info is latched.
- After aneg has finished link goes up. In phy_state_machine is checked
link state but it is latched "link is down". The state machine is
scheduled after one second and there is detected "link is up". This
extra delay can be avoided when we keep link-state register double read
in case when link was down previously.
With this solution we don't miss a link-down event in polling mode and
link-up is faster.
Details about this quirky behavior on Realtek phy:
Without patch:
T0: aneg is started, link goes down, link-down status is latched
T0+3s: state machine runs, up-to-date link-down is read
T0+4s: state machine runs, aneg is finished (BMSR_ANEGCOMPLETE==1),
here i read link-down (BMSR_LSTATUS==0),
T0+5s: state machine runs, aneg is finished (BMSR_ANEGCOMPLETE==1),
up-to-date link-up is read (BMSR_LSTATUS==1),
phydev->link goes up, state change PHY_NOLINK to PHY_RUNNING
With patch:
T0: aneg is started, link goes down, link-down status is latched
T0+3s: state machine runs, up-to-date link-down is read
T0+4s: state machine runs, aneg is finished (BMSR_ANEGCOMPLETE==1),
first BMSR read: BMSR_ANEGCOMPLETE==1 and BMSR_LSTATUS==0,
second BMSR read: BMSR_ANEGCOMPLETE==1 and BMSR_LSTATUS==1,
phydev->link goes up, state change PHY_NOLINK to PHY_RUNNING
Signed-off-by: Petr Oros <poros@redhat.com>
Reviewed-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2020-02-18 10:35:55 +01:00
|
|
|
|
|
|
|
|
|
2019-02-06 19:39:52 +01:00
|
|
|
|
phy: avoid unnecessary link-up delay in polling mode
commit 93c0970493c71f ("net: phy: consider latched link-down status in
polling mode") removed double-read of latched link-state register for
polling mode from genphy_update_link(). This added extra ~1s delay into
sequence link down->up.
Following scenario:
- After boot link goes up
- phy_start() is called triggering an aneg restart, hence link goes
down and link-down info is latched.
- After aneg has finished link goes up. In phy_state_machine is checked
link state but it is latched "link is down". The state machine is
scheduled after one second and there is detected "link is up". This
extra delay can be avoided when we keep link-state register double read
in case when link was down previously.
With this solution we don't miss a link-down event in polling mode and
link-up is faster.
Details about this quirky behavior on Realtek phy:
Without patch:
T0: aneg is started, link goes down, link-down status is latched
T0+3s: state machine runs, up-to-date link-down is read
T0+4s: state machine runs, aneg is finished (BMSR_ANEGCOMPLETE==1),
here i read link-down (BMSR_LSTATUS==0),
T0+5s: state machine runs, aneg is finished (BMSR_ANEGCOMPLETE==1),
up-to-date link-up is read (BMSR_LSTATUS==1),
phydev->link goes up, state change PHY_NOLINK to PHY_RUNNING
With patch:
T0: aneg is started, link goes down, link-down status is latched
T0+3s: state machine runs, up-to-date link-down is read
T0+4s: state machine runs, aneg is finished (BMSR_ANEGCOMPLETE==1),
first BMSR read: BMSR_ANEGCOMPLETE==1 and BMSR_LSTATUS==0,
second BMSR read: BMSR_ANEGCOMPLETE==1 and BMSR_LSTATUS==1,
phydev->link goes up, state change PHY_NOLINK to PHY_RUNNING
Signed-off-by: Petr Oros <poros@redhat.com>
Reviewed-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2020-02-18 10:35:55 +01:00
|
|
|
|
2019-02-06 19:39:52 +01:00
|
|
|
|
2019-04-08 19:28:28 +02:00
|
|
|
|
2019-02-06 19:39:52 +01:00
|
|
|
|
2019-04-08 19:28:28 +02:00
|
|
|
|
|
|
|
|
|
2019-02-06 19:39:52 +01:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-04-08 19:28:28 +02:00
|
|
|
|
2019-04-02 20:43:30 +02:00
|
|
|
|
|
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2019-07-31 23:05:10 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
|
|
|
|
|
2006-10-16 16:19:17 -05:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2019-10-04 17:06:04 +01:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2019-10-04 17:06:04 +01:00
|
|
|
|
2019-03-30 10:22:45 +01:00
|
|
|
|
2019-10-16 10:30:39 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-04-05 21:23:13 +02:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-07-21 15:48:47 +02:00
|
|
|
|
2019-08-15 13:15:19 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-07-21 15:48:47 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-12-05 21:49:41 +01:00
|
|
|
|
|
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-12-05 21:49:43 +01:00
|
|
|
|
2019-10-16 10:30:39 +08:00
|
|
|
|
|
|
|
|
|
2019-10-04 17:06:04 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-12-17 13:39:16 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-10-04 17:06:04 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-03-07 21:45:14 +05:30
|
|
|
|
|
|
|
|
|
2019-10-04 17:06:04 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-03-07 21:45:14 +05:30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-05-05 08:35:05 +02:00
|
|
|
|
2019-10-04 17:06:04 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-02-14 22:16:27 +01:00
|
|
|
|
2019-03-30 10:22:45 +01:00
|
|
|
|
2019-12-17 13:39:16 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-10-22 11:31:07 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-02-06 18:31:09 +01:00
|
|
|
|
2019-10-22 11:31:07 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-02-06 18:31:09 +01:00
|
|
|
|
|
|
|
|
|
2019-10-22 11:31:07 -07:00
|
|
|
|
2024-02-06 18:31:09 +01:00
|
|
|
|
2019-10-22 11:31:07 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-02-06 18:31:09 +01:00
|
|
|
|
|
|
|
|
|
2019-10-22 11:31:07 -07:00
|
|
|
|
2024-02-06 18:31:09 +01:00
|
|
|
|
2019-10-22 11:31:07 -07:00
|
|
|
|
2024-02-06 18:31:09 +01:00
|
|
|
|
|
|
|
|
|
2019-10-22 11:31:07 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-02-17 13:34:02 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-04-24 21:41:06 +02:00
|
|
|
|
2014-02-17 13:34:02 -08:00
|
|
|
|
|
|
|
|
|
2019-04-24 21:41:06 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-02-17 13:34:02 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-04-23 21:38:42 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-04-24 21:41:06 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-02-17 13:34:02 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-11-01 14:51:12 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-03-27 21:58:44 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-11 16:06:09 -06:00
|
|
|
|
|
|
|
|
|
2019-03-27 21:58:44 +01:00
|
|
|
|
|
|
|
|
|
2023-02-11 08:41:10 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-03-27 21:58:44 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-03-20 09:44:52 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-11-28 16:24:56 -08:00
|
|
|
|
|
|
|
|
|
2018-01-12 21:20:36 +01:00
|
|
|
|
2008-11-28 16:24:56 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-12 21:20:36 +01:00
|
|
|
|
2008-11-28 16:24:56 -08:00
|
|
|
|
|
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2017-06-30 17:44:15 +08:00
|
|
|
|
|
|
|
|
|
2021-04-19 15:01:02 +02:00
|
|
|
|
2024-03-15 20:50:52 +03:00
|
|
|
|
|
|
|
|
|
2021-04-19 15:01:02 +02:00
|
|
|
|
2022-06-18 11:28:37 +01:00
|
|
|
|
2021-04-19 15:01:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-06-30 17:44:15 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-09-12 01:53:14 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-10 23:43:33 +01:00
|
|
|
|
2019-05-01 21:34:43 +02:00
|
|
|
|
2018-09-12 01:53:14 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-01 21:34:43 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-02-03 20:53:15 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-03-02 20:53:04 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-12-16 22:31:18 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-12-20 23:02:06 +01:00
|
|
|
|
|
|
|
|
|
2024-12-16 22:31:18 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-09-12 01:53:16 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-10 23:43:33 +01:00
|
|
|
|
2019-05-01 21:34:43 +02:00
|
|
|
|
2018-09-12 01:53:16 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-09-12 01:53:15 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-01 21:34:43 +02:00
|
|
|
|
2018-09-12 01:53:15 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-09-12 01:53:18 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-10 23:43:33 +01:00
|
|
|
|
2018-09-12 01:53:18 +02:00
|
|
|
|
|
|
|
|
|
2018-11-10 23:43:33 +01:00
|
|
|
|
|
|
|
|
|
2018-09-12 01:53:18 +02:00
|
|
|
|
2018-11-10 23:43:33 +01:00
|
|
|
|
2018-09-12 01:53:18 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-09-12 01:53:17 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-10 23:43:33 +01:00
|
|
|
|
2018-09-12 01:53:17 +02:00
|
|
|
|
2018-11-10 23:43:33 +01:00
|
|
|
|
2020-02-15 15:49:32 +00:00
|
|
|
|
2018-11-10 23:43:33 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-09-12 01:53:17 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-09-12 01:53:19 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-11-10 23:43:33 +01:00
|
|
|
|
2019-05-01 21:54:28 +02:00
|
|
|
|
2018-09-12 01:53:19 +02:00
|
|
|
|
2019-05-01 21:54:28 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-09-12 01:53:19 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-02-15 15:49:27 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-06-24 07:16:02 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-11-16 11:17:57 +01:00
|
|
|
|
2020-06-24 07:16:02 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-03-07 12:19:06 +01:00
|
|
|
|
2020-06-24 07:16:02 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-04-17 17:17:27 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-04-17 17:17:28 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-04-17 17:17:27 +02:00
|
|
|
|
|
|
|
|
|
2023-04-17 17:17:30 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-08-08 23:04:34 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-06-17 17:55:00 +02:00
|
|
|
|
|
|
|
|
|
2024-10-04 20:27:58 +02:00
|
|
|
|
2023-06-17 17:55:00 +02:00
|
|
|
|
2024-10-04 20:27:58 +02:00
|
|
|
|
2023-06-17 17:55:00 +02:00
|
|
|
|
2024-10-04 20:27:58 +02:00
|
|
|
|
2023-06-17 17:55:00 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-04-17 17:17:27 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-01-25 21:36:59 +01:00
|
|
|
|
2023-04-17 17:17:27 +02:00
|
|
|
|
2023-04-24 16:16:48 +02:00
|
|
|
|
2023-04-17 17:17:27 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-04-17 17:17:28 +02:00
|
|
|
|
2023-04-17 17:17:27 +02:00
|
|
|
|
2023-04-24 16:16:48 +02:00
|
|
|
|
2023-04-17 17:17:27 +02:00
|
|
|
|
|
|
|
|
|
2023-04-24 16:16:48 +02:00
|
|
|
|
|
|
|
|
|
2023-04-17 17:17:27 +02:00
|
|
|
|
2024-10-10 13:54:19 +01:00
|
|
|
|
|
|
|
|
|
2024-01-25 21:36:59 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-10-10 13:54:19 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-01-25 21:36:59 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-04-24 16:16:48 +02:00
|
|
|
|
2023-04-17 17:17:28 +02:00
|
|
|
|
|
|
|
|
|
2023-04-17 17:17:30 +02:00
|
|
|
|
|
|
|
|
|
2023-08-08 23:04:34 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-04-17 17:17:27 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-06-17 17:55:00 +02:00
|
|
|
|
2023-04-17 17:17:27 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 11:13:20 +08:00
|
|
|
|
2023-04-17 17:17:27 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-10-08 21:47:16 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-30 11:13:20 +08:00
|
|
|
|
2023-04-17 17:17:27 +02:00
|
|
|
|
|
|
|
|
|
2024-08-30 10:20:25 +08:00
|
|
|
|
2023-06-17 17:55:00 +02:00
|
|
|
|
2023-04-17 17:17:27 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-10-08 21:47:16 +02:00
|
|
|
|
2024-08-30 10:20:25 +08:00
|
|
|
|
2023-04-17 17:17:27 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-11 13:53:48 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-11 13:53:49 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-03-24 09:23:53 +00:00
|
|
|
|
2021-06-11 13:53:49 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2023-03-14 13:48:56 +01:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-01-05 03:23:19 +03:00
|
|
|
|
2016-01-06 20:11:16 +01:00
|
|
|
|
2014-01-05 03:23:19 +03:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-05-19 22:53:42 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-05-21 17:40:14 +08:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
|
|
|
|
|
2013-05-23 01:11:12 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-06-26 17:53:24 +02:00
|
|
|
|
|
|
|
|
|
2019-02-09 14:46:30 +01:00
|
|
|
|
2020-06-26 17:53:24 +02:00
|
|
|
|
2019-02-09 14:46:30 +01:00
|
|
|
|
2020-06-26 17:53:24 +02:00
|
|
|
|
2019-02-09 14:46:30 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-08-11 11:26:30 +01:00
|
|
|
|
|
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
|
|
|
|
|
2014-01-05 03:17:06 +03:00
|
|
|
|
|
|
|
|
|
2023-02-17 04:15:20 +01:00
|
|
|
|
2019-02-09 15:24:47 +01:00
|
|
|
|
2023-02-17 04:15:20 +01:00
|
|
|
|
|
|
|
|
|
2021-06-16 18:01:23 +08:00
|
|
|
|
2019-02-09 15:24:47 +01:00
|
|
|
|
2021-06-16 18:01:23 +08:00
|
|
|
|
2019-04-03 23:14:33 +02:00
|
|
|
|
2021-06-16 18:01:23 +08:00
|
|
|
|
2019-04-03 23:14:33 +02:00
|
|
|
|
2019-02-09 15:24:47 +01:00
|
|
|
|
2019-04-03 23:14:33 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-04-16 23:54:00 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-04-05 21:23:13 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-05-21 15:29:45 +02:00
|
|
|
|
2019-05-01 21:34:43 +02:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2023-02-22 06:50:42 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-02-27 13:03:22 +03:00
|
|
|
|
2023-02-22 06:50:42 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-14 10:33:27 +00:00
|
|
|
|
2023-02-22 06:50:42 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-14 10:33:27 +00:00
|
|
|
|
2023-02-22 06:50:42 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-11-28 10:46:46 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-10-04 11:01:00 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
net: phy: phy drivers should not set SUPPORTED_[Asym_]Pause
Instead of having individual PHY drivers set the SUPPORTED_Pause and
SUPPORTED_Asym_Pause flags, phylib itself should set those flags,
unless there is a hardware erratum or other special case. During
autonegotiation, the PHYs will determine whether to enable pause
frame support.
Pause frames are a feature that is supported by the MAC. It is the MAC
that generates the frames and that processes them. The PHY can only be
configured to allow them to pass through.
This commit also effectively reverts the recently applied c7a61319
("net: phy: dp83848: Support ethernet pause frames").
So the new process is:
1) Unless the PHY driver overrides it, phylib sets the SUPPORTED_Pause
and SUPPORTED_AsymPause bits in phydev->supported. This indicates that
the PHY supports pause frames.
2) The MAC driver checks phydev->supported before it calls phy_start().
If (SUPPORTED_Pause | SUPPORTED_AsymPause) is set, then the MAC driver
sets those bits in phydev->advertising, if it wants to enable pause
frame support.
3) When the link state changes, the MAC driver checks phydev->pause and
phydev->asym_pause, If the bits are set, then it enables the corresponding
features in the MAC. The algorithm is:
if (phydev->pause)
The MAC should be programmed to receive and honor
pause frames it receives, i.e. enable receive flow control.
if (phydev->pause != phydev->asym_pause)
The MAC should be programmed to transmit pause
frames when needed, i.e. enable transmit flow control.
Signed-off-by: Timur Tabi <timur@codeaurora.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-12-07 13:20:51 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-02-09 15:24:47 +01:00
|
|
|
|
|
|
|
|
|
2018-11-10 23:43:33 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
net: phy: phy drivers should not set SUPPORTED_[Asym_]Pause
Instead of having individual PHY drivers set the SUPPORTED_Pause and
SUPPORTED_Asym_Pause flags, phylib itself should set those flags,
unless there is a hardware erratum or other special case. During
autonegotiation, the PHYs will determine whether to enable pause
frame support.
Pause frames are a feature that is supported by the MAC. It is the MAC
that generates the frames and that processes them. The PHY can only be
configured to allow them to pass through.
This commit also effectively reverts the recently applied c7a61319
("net: phy: dp83848: Support ethernet pause frames").
So the new process is:
1) Unless the PHY driver overrides it, phylib sets the SUPPORTED_Pause
and SUPPORTED_AsymPause bits in phydev->supported. This indicates that
the PHY supports pause frames.
2) The MAC driver checks phydev->supported before it calls phy_start().
If (SUPPORTED_Pause | SUPPORTED_AsymPause) is set, then the MAC driver
sets those bits in phydev->advertising, if it wants to enable pause
frame support.
3) When the link state changes, the MAC driver checks phydev->pause and
phydev->asym_pause, If the bits are set, then it enables the corresponding
features in the MAC. The algorithm is:
if (phydev->pause)
The MAC should be programmed to receive and honor
pause frames it receives, i.e. enable receive flow control.
if (phydev->pause != phydev->asym_pause)
The MAC should be programmed to transmit pause
frames when needed, i.e. enable transmit flow control.
Signed-off-by: Timur Tabi <timur@codeaurora.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-12-07 13:20:51 -06:00
|
|
|
|
|
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-04-17 17:17:27 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-04-20 10:45:51 +02:00
|
|
|
|
|
|
|
|
|
2023-04-17 17:17:27 +02:00
|
|
|
|
2019-02-09 14:46:30 +01:00
|
|
|
|
2023-03-03 16:37:54 +00:00
|
|
|
|
2020-06-26 17:53:24 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-01-05 03:23:19 +03:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2017-02-17 16:07:33 -08:00
|
|
|
|
|
|
|
|
|
2023-06-17 17:55:00 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
|
|
|
|
|
2019-11-15 19:56:51 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-06-26 17:53:24 +02:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2017-12-04 13:35:05 +01:00
|
|
|
|
2020-06-26 17:53:24 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:22 +01:00
|
|
|
|
2007-03-06 02:41:48 -08:00
|
|
|
|
2016-01-06 20:11:22 +01:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-02-09 15:24:47 +01:00
|
|
|
|
2019-04-03 23:14:33 +02:00
|
|
|
|
2019-02-09 15:24:47 +01:00
|
|
|
|
2019-04-03 23:14:33 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-01-17 14:22:36 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-10-07 14:23:32 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:26 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-03-27 01:00:22 +01:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2016-01-06 20:11:26 +01:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2012-06-09 07:49:07 +00:00
|
|
|
|
|
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-11-04 16:09:23 -06:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:22 +01:00
|
|
|
|
|
|
|
|
|
2012-07-04 05:44:34 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:22 +01:00
|
|
|
|
2012-07-04 05:44:34 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
|
|
|
|
|
2016-01-06 20:11:26 +01:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-04 05:44:34 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-01-05 03:17:06 +03:00
|
|
|
|
|
|
|
|
|
2012-07-04 05:44:34 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-06-05 12:23:05 +01:00
|
|
|
|
2005-08-24 18:46:21 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-03-27 21:59:33 +01:00
|
|
|
|
2008-11-28 16:24:56 -08:00
|
|
|
|
|
|
|
|
|
2017-06-30 17:44:15 +08:00
|
|
|
|
2017-06-05 12:23:05 +01:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2020-07-05 21:27:57 -07:00
|
|
|
|
2020-07-08 09:46:24 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-01-09 18:00:10 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-07-05 21:27:57 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-08-01 17:28:23 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-10 07:05:12 +01:00
|
|
|
|
|
|
|
|
|
2023-08-01 17:28:23 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-08-11 02:07:25 -04:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2005-08-11 02:07:25 -04:00
|
|
|
|
|
|
|
|
|
2023-08-01 17:28:22 +03:00
|
|
|
|
2023-07-20 03:02:31 +03:00
|
|
|
|
2023-08-01 17:28:23 +03:00
|
|
|
|
2023-08-01 17:28:22 +03:00
|
|
|
|
2023-07-20 03:02:31 +03:00
|
|
|
|
2005-08-11 02:07:25 -04:00
|
|
|
|
|
|
|
|
|
2023-07-20 03:02:31 +03:00
|
|
|
|
2005-08-11 02:07:25 -04:00
|
|
|
|
2018-09-29 23:04:16 +02:00
|
|
|
|
|
|
|
|
|
2019-04-07 13:55:01 +02:00
|
|
|
|
2005-08-24 18:46:21 -05:00
|
|
|
|
2023-07-20 03:02:31 +03:00
|
|
|
|
2017-06-05 12:23:05 +01:00
|
|
|
|
|
|
|
|
|
2023-07-20 03:02:31 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-04-07 13:55:01 +02:00
|
|
|
|
2023-07-20 03:02:31 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-08-01 17:28:22 +03:00
|
|
|
|
2023-08-01 17:28:23 +03:00
|
|
|
|
2023-07-20 03:02:31 +03:00
|
|
|
|
2023-08-01 17:28:22 +03:00
|
|
|
|
2005-08-11 02:07:25 -04:00
|
|
|
|
|
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
|
|
|
|
|
2005-08-11 02:07:25 -04:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
2019-04-07 13:55:01 +02:00
|
|
|
|
2017-06-05 12:23:05 +01:00
|
|
|
|
2005-08-24 18:46:21 -05:00
|
|
|
|
2023-08-01 17:28:22 +03:00
|
|
|
|
2023-08-01 17:28:23 +03:00
|
|
|
|
2020-07-05 21:27:57 -07:00
|
|
|
|
2023-08-01 17:28:22 +03:00
|
|
|
|
2005-07-30 19:31:23 -04:00
|
|
|
|
|
|
|
|
|
2005-08-24 18:46:21 -05:00
|
|
|
|
2005-08-11 02:07:25 -04:00
|
|
|
|