4 #include <linux/ethtool.h>
9 struct sfp_socket_ops
{
10 void (*attach
)(struct sfp
*sfp
);
11 void (*detach
)(struct sfp
*sfp
);
12 void (*start
)(struct sfp
*sfp
);
13 void (*stop
)(struct sfp
*sfp
);
14 int (*module_info
)(struct sfp
*sfp
, struct ethtool_modinfo
*modinfo
);
15 int (*module_eeprom
)(struct sfp
*sfp
, struct ethtool_eeprom
*ee
,
19 int sfp_add_phy(struct sfp_bus
*bus
, struct phy_device
*phydev
);
20 void sfp_remove_phy(struct sfp_bus
*bus
);
21 void sfp_link_up(struct sfp_bus
*bus
);
22 void sfp_link_down(struct sfp_bus
*bus
);
23 int sfp_module_insert(struct sfp_bus
*bus
, const struct sfp_eeprom_id
*id
);
24 void sfp_module_remove(struct sfp_bus
*bus
);
25 int sfp_module_start(struct sfp_bus
*bus
);
26 void sfp_module_stop(struct sfp_bus
*bus
);
27 int sfp_link_configure(struct sfp_bus
*bus
, const struct sfp_eeprom_id
*id
);
28 struct sfp_bus
*sfp_register_socket(struct device
*dev
, struct sfp
*sfp
,
29 const struct sfp_socket_ops
*ops
);
30 void sfp_unregister_socket(struct sfp_bus
*bus
);