Age | Commit message (Collapse) | Author |
|
This commit is to tell the 0-day builder to avoid building this branch.
|
|
Check whether the MAC driver has implemented the get_ts_info()
method first, and call it if present. If this method returns
-EOPNOTSUPP, defer to the phylib or default implementation.
XXX: review any drivers that use phylib and provide get_ts_info().
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
Use in-band-status for the SGMII PHY on Macchiatobin platforms.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
The I2C1 bus on early mcbin hardware is mis-wired, swapping SCL and SDA.
Work around this by using the i2c-gpio driver instead. XXX Caught early
and this commit should be removed for mainline. XXX
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
Add the pinctrl settings and interrupts for the 10G PHYs.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
Add several pinctrls for functions brought out to connectors but not yet
usable with the core DT description.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
Comment about the use of currently unconfigured MPP pins.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
Add pwm-fan support for controlling the fan speed, which allows the fan
speed to be controlled via sysfs. Alternatively, users can also add
their cooling maps to DT which will be specific to the environment that
they house the Macchiatobin, as well as their fan setup. For example,
one may connect PWM controlled case fans to this connector, and use
the PWM signal to control the case fans.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
Honour deferred probing for devm_clk_get() so that we can get the clock
for PWM.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
The resume operation of mvebu xHCI host have some issues,
so The XHCI_RESET_ON_RESUME quirk is added for it.
Signed-off-by: Ofer Heifetz <oferh@marvell.com>
Tested-by: Nadav Haklai <nadavh@marvell.com>
Signed-off-by: Grzegorz Jaszczyk <jaz@semihalf.com>
Reviewed-by: Lior Amsalem <alior@marvell.com>
Tested-by: Lior Amsalem <alior@marvell.com>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
Split out the code handling the GMAC from the rest of the driver. This
block appears to be shared amongst several revisions of the IP.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
Further augmentation of the comphy setup.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
The modalias string provided in the uevent sysfs file does not conform
to the format used in PHY driver modules. One of the reasons is that
udev loading of PHY driver modules has not been an expected use case.
This patch changes the MODALIAS entry for only PHY devices from:
MODALIAS=of:Nethernet-phyT(null)
to:
MODALIAS=mdio:00000000001000100001010100010011
Other MDIO devices (such as DSA) remain as before.
However, having udev automatically load the module has the advantage
of making use of existing functionality to have the module loaded
before the device is bound to the driver, thus taking advantage of
multithreaded boot systems, potentially decreasing the boot time.
However, this patch will not solve any issues with the driver module
not being loaded prior to the network device needing to use the PHY.
This is something that is completely out of control of any patch to
change the uevent mechanism.
Reported-by: Yinbo Zhu <zhuyinbo@loongson.cn>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
Use the phylink_mode_*() helpers in all drivers so we can change the
definition of the "mode" argument.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
Add helpers to decode the mode argument passed to the various MAC and
PCS functions.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
Select the initial SFP PHY interface mode from the PHY supported
interface bitmaps.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
Add a supported_interfaces member to phylib so we know which
interfaces a PHY supports. Currently, set any unconverted driver
to indicate all interfaces are supported.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
Display SFP module information verbosely, splitting the generic parts
into a separate file.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
|
Add a compatible for SFP+ cages. SFP+ cages are backwards compatible,
but the ethernet device behind them may not support the slower speeds
of SFP modules.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
Cooled SFP+ transceivers need a longer initialisation (startup) time.
Select the initialisation time depending on the cooled option bit.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
phy_error() is called from phy_interrupt() or phy_state_machine(), and
uses WARN_ON() to print a backtrace. The backtrace is not useful when
reporting a PHY error.
However, a system may contain multiple ethernet PHYs, and phy_error()
gives no clue which one caused the problem.
Replace WARN_ON() with a call to phydev_err() so that we can see which
PHY had an error, and also inform the user that we are halting the PHY.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
Allow the PHY to probe when there is no firmware, but do not allow the
link to come up by forcing the PHY state to PHY_HALTED in a similar way
to phy_error().
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
Provide phy driver start/stop hooks so that the PHY driver knows when
the network driver is starting or stopping. This will be used for the
Marvell 10G driver so that we can sanely refuse to start if the PHYs
firmware is not present, and also so that we can sanely support SFPs
behind the PHY.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
Support reporting the hardware resolved pause enablement states via
phylib, overriding our software implementation.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
Allow phylib drivers to pass the hardware-resolved pause state to MAC
drivers, rather than using the software-based pause resolution code.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
If MDIO_USXGMII_LINK is not set, it means that the PHYs media side
link is down. Indicate back to phylink that the link as a whole is
down.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
Configure the Macchiatobin 10G PHY LED modes to correct their polarity.
We keep the existing LED behaviours, but switch their polarity to
reflect how they are connected. Tweak the LED modes as well to be:
left: off = no link
solid green = RJ45 link up (not SFP+ cage)
flash green = traffic
right: off = no link
solid green = 10G
solid yellow = 1G
flash green = 100M
flash yellow = 10M
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
Add support for configuring the LEDs. Macchiatobin has an oddity in
that the left LED goes out when the cable is connected, and flashes
when there's link activity. This is because the reset default for
the LED outputs assume that the LED is connected to supply, not to
ground. Add support for configuring the LED modes and polarities.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
Add a DT bindings document for the Marvell 10G driver, which will
augment the generic ethernet PHY binding by having LED mode
configuration.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
The switch() statement doesn't sit very well with the preceeding if()
statements, so let's just convert everything to if()s. This allows
better formatting of the code.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
Move the handling of manual flow control configuration to a common
location during resolve. We currently evaluate this for all but
fixed links.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
Remove phylink_phy_no_inband() now that we are handling the lack of
inband negotiation by querying the capabilities of the PHY and PCS,
and the BCM84881 PHY driver provides us the information necessary to
make the decision.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
Add a pcs_query_inband() interface which reflects phy_query_inband()
for PHYs. This can be used to determine for the specified interface
mode whether in-band signalling is supported by the PCS, and whether
the PCS requires in-band signalling.
This is used to determine whether we should use inband autonegotiation
in inband mode, which may be required or may be unsupported in various
interface modes.
This revised version uses enable/disable/bypass flags to indicate the
capabilities.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
Report the PCS inband properties to phylink for Marvell PP2 interfaces.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
Report the PCS inband properties to phylink for Marvell NETA
interfaces.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
Add a pcs_query_inband() method to query the PCS for its inband link
capabilities, and use this to determine whether link modes used with
optical SFPs can be supported.
When a PCS does not provide a method, we allow inband negotiation to
be either on or off, making this a no-op until the pcs_query_inband()
method is implemented by a PCS driver.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
Provide an implementation for phy_query_inband() for Marvell PHYs used
on SFP modules.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
BCM84881 has no support for inband signalling, so this is a trivial
implementation that returns no support for inband.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
Add a method to query the PHY's in-band capabilities for a PHY
interface mode. This can be used to determine for the specified
interface mode whether in-band signalling is supported, and whether
the PHY requires in-band signalling.
When not implemented, or the PHY driver doesn't report any modes
for the interface, LINK_INBAND_VALID will not be set. When set, the
remainder of the flags can be interpreted.
LINK_INBAND_POSSIBLE means that the device can be configured to use
or not use in-band signalling. Later patches may add support to
configure this at the PHY.
LINK_INBAND_REQUIRED means that the device uses in-band signalling
which can not be disabled.
When only LINK_INBAND_VALID has been set, this means that the device
does not support any in-band signalling, and can't be configured to
do so.
"Bypass" mode (where the device may be configured for in-band, but
may still bring the link up if there is no in-band received from the
link partner) is not considered in this patch.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
Move the call to phylink_pcs_neg_mode() in phylink_major_config() after
we have selected the appropriate PCS to later allow the capabilities of
the PCS to be used when deciding which pcs_neg_mode should be used.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
Now that we have a more complexity in phylink_major_config(), augment
the debugging so we can see what's going on there.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
phylink_pcs_neg_mode() currently only outband mode when we are using
MLO_AN_PHY or MLO_AN_FIXED. However, we want to extend the use of this
to MLO_AN_INBAND when the PCS and/or PHY are unable to use inband mode.
For example, when a PHY is not capable of supporting inband mode, we
need to operate in outband mode. However, using outband mode for the
PCS while using MLO_AN_INBAND causes drivers to misbehave as it is not
a situation they are expecting. Therefore, we need to switch to
MLO_AN_PHY when using outband mode.
Add the logic to select MLO_AN_PHY mode when phylink_pcs_neg_mode()
indicates that it will be using outband mode with a PHY and the
requested mode is MLO_AN_INBAND.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|