net: sfp: provide sfp_get_module_caps()

Provide a function to retrieve the current sfp_module_caps structure
so that upstreams can get the entire module support in one go.

Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Link: https://patch.msgid.link/E1uydVj-000000061WQ-3q47@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Russell King (Oracle) 2025-09-16 22:46:51 +01:00 committed by Jakub Kicinski
parent a7dc35a9e4
commit 64fb4a3ae8
2 changed files with 13 additions and 0 deletions

View File

@ -33,6 +33,12 @@ struct sfp_bus {
struct sfp_module_caps caps;
};
const struct sfp_module_caps *sfp_get_module_caps(struct sfp_bus *bus)
{
return &bus->caps;
}
EXPORT_SYMBOL_GPL(sfp_get_module_caps);
/**
* sfp_parse_port() - Parse the EEPROM base ID, setting the port type
* @bus: a pointer to the &struct sfp_bus structure for the sfp module

View File

@ -576,6 +576,7 @@ struct sfp_upstream_ops {
};
#if IS_ENABLED(CONFIG_SFP)
const struct sfp_module_caps *sfp_get_module_caps(struct sfp_bus *bus);
int sfp_parse_port(struct sfp_bus *bus, const struct sfp_eeprom_id *id,
unsigned long *support);
bool sfp_may_have_phy(struct sfp_bus *bus, const struct sfp_eeprom_id *id);
@ -600,6 +601,12 @@ int sfp_bus_add_upstream(struct sfp_bus *bus, void *upstream,
void sfp_bus_del_upstream(struct sfp_bus *bus);
const char *sfp_get_name(struct sfp_bus *bus);
#else
static inline const struct sfp_module_caps *
sfp_get_module_caps(struct sfp_bus *bus)
{
return NULL;
}
static inline int sfp_parse_port(struct sfp_bus *bus,
const struct sfp_eeprom_id *id,
unsigned long *support)