net: sfp: rework upstream interface
The current upstream interface is an all-or-nothing, which is sub-optimal for future changes, as it doesn't allow the upstream driver to prepare for the SFP module becoming available, as it is at boot. Switch to a find-sfp-bus, add-upstream, del-upstream, put-sfp-bus interface structure instead, which allows the upstream driver to prepare for a module being available as soon as add-upstream is called. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
14684b9301
commit
727b3668b7
@@ -508,10 +508,11 @@ int sfp_get_module_eeprom(struct sfp_bus *bus, struct ethtool_eeprom *ee,
|
||||
u8 *data);
|
||||
void sfp_upstream_start(struct sfp_bus *bus);
|
||||
void sfp_upstream_stop(struct sfp_bus *bus);
|
||||
struct sfp_bus *sfp_register_upstream_node(struct fwnode_handle *fwnode,
|
||||
void *upstream,
|
||||
const struct sfp_upstream_ops *ops);
|
||||
void sfp_unregister_upstream(struct sfp_bus *bus);
|
||||
void sfp_bus_put(struct sfp_bus *bus);
|
||||
struct sfp_bus *sfp_bus_find_fwnode(struct fwnode_handle *fwnode);
|
||||
int sfp_bus_add_upstream(struct sfp_bus *bus, void *upstream,
|
||||
const struct sfp_upstream_ops *ops);
|
||||
void sfp_bus_del_upstream(struct sfp_bus *bus);
|
||||
#else
|
||||
static inline int sfp_parse_port(struct sfp_bus *bus,
|
||||
const struct sfp_eeprom_id *id,
|
||||
@@ -553,14 +554,22 @@ static inline void sfp_upstream_stop(struct sfp_bus *bus)
|
||||
{
|
||||
}
|
||||
|
||||
static inline struct sfp_bus *sfp_register_upstream_node(
|
||||
struct fwnode_handle *fwnode, void *upstream,
|
||||
const struct sfp_upstream_ops *ops)
|
||||
static inline void sfp_bus_put(struct sfp_bus *bus)
|
||||
{
|
||||
}
|
||||
|
||||
static inline struct sfp_bus *sfp_bus_find_fwnode(struct fwnode_handle *fwnode)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline void sfp_unregister_upstream(struct sfp_bus *bus)
|
||||
static int sfp_bus_add_upstream(struct sfp_bus *bus, void *upstream,
|
||||
const struct sfp_upstream_ops *ops)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void sfp_bus_del_upstream(struct sfp_bus *bus)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user