diff options
author | Russell King (Oracle) <rmk+kernel@armlinux.org.uk> | 2023-05-17 13:38:12 +0300 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2023-05-19 05:52:31 +0300 |
commit | dc18582211b34bce8250ddf3cac2a2230e192120 (patch) | |
tree | d54b7d06c83fada4f9275feaa09cf6462ed1d724 /drivers/net/phy/sfp-bus.c | |
parent | 1974fd3bf0f04589dea1a4a76273bbc8fd5760f6 (diff) | |
download | linux-dc18582211b34bce8250ddf3cac2a2230e192120.tar.xz |
net: sfp: add support for setting signalling rate
Add support to the SFP layer to allow phylink to set the signalling
rate for a SFP module. The rate given will be in units of kilo-baud
(1000 baud).
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/phy/sfp-bus.c')
-rw-r--r-- | drivers/net/phy/sfp-bus.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/net/phy/sfp-bus.c b/drivers/net/phy/sfp-bus.c index 9372e5a4cadc..e8dd47bffe43 100644 --- a/drivers/net/phy/sfp-bus.c +++ b/drivers/net/phy/sfp-bus.c @@ -576,6 +576,26 @@ static void sfp_upstream_clear(struct sfp_bus *bus) } /** + * sfp_upstream_set_signal_rate() - set data signalling rate + * @bus: a pointer to the &struct sfp_bus structure for the sfp module + * @rate_kbd: signalling rate in units of 1000 baud + * + * Configure the rate select settings on the SFP module for the signalling + * rate (not the same as the data rate). + * + * Locks that may be held: + * Phylink's state_mutex + * rtnl lock + * SFP's sm_mutex + */ +void sfp_upstream_set_signal_rate(struct sfp_bus *bus, unsigned int rate_kbd) +{ + if (bus->registered) + bus->socket_ops->set_signal_rate(bus->sfp, rate_kbd); +} +EXPORT_SYMBOL_GPL(sfp_upstream_set_signal_rate); + +/** * sfp_bus_find_fwnode() - parse and locate the SFP bus from fwnode * @fwnode: firmware node for the parent device (MAC or PHY) * |