Skip to content

Commit

Permalink
sfp: convert to fwnode
Browse files Browse the repository at this point in the history
Convert sfp-bus to use fwnode rather than device_node internally, so
we can support more than just device tree firmware.

Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Russell King authored and David S. Miller committed Dec 5, 2017
1 parent b6e67d6 commit c19bb00
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 11 deletions.
3 changes: 2 additions & 1 deletion drivers/net/phy/phylink.c
Original file line number Diff line number Diff line change
Expand Up @@ -499,7 +499,8 @@ static int phylink_register_sfp(struct phylink *pl, struct device_node *np)
if (!sfp_np)
return 0;

pl->sfp_bus = sfp_register_upstream(sfp_np, pl->netdev, pl,
pl->sfp_bus = sfp_register_upstream(of_fwnode_handle(sfp_np),
pl->netdev, pl,
&sfp_phylink_ops);
if (!pl->sfp_bus)
return -ENOMEM;
Expand Down
14 changes: 7 additions & 7 deletions drivers/net/phy/sfp-bus.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ struct sfp_bus {
/* private: */
struct kref kref;
struct list_head node;
struct device_node *device_node;
struct fwnode_handle *fwnode;

const struct sfp_socket_ops *socket_ops;
struct device *sfp_dev;
Expand Down Expand Up @@ -260,7 +260,7 @@ static const struct sfp_upstream_ops *sfp_get_upstream_ops(struct sfp_bus *bus)
return bus->registered ? bus->upstream_ops : NULL;
}

static struct sfp_bus *sfp_bus_get(struct device_node *np)
static struct sfp_bus *sfp_bus_get(struct fwnode_handle *fwnode)
{
struct sfp_bus *sfp, *new, *found = NULL;

Expand All @@ -269,7 +269,7 @@ static struct sfp_bus *sfp_bus_get(struct device_node *np)
mutex_lock(&sfp_mutex);

list_for_each_entry(sfp, &sfp_buses, node) {
if (sfp->device_node == np) {
if (sfp->fwnode == fwnode) {
kref_get(&sfp->kref);
found = sfp;
break;
Expand All @@ -278,7 +278,7 @@ static struct sfp_bus *sfp_bus_get(struct device_node *np)

if (!found && new) {
kref_init(&new->kref);
new->device_node = np;
new->fwnode = fwnode;
list_add(&new->node, &sfp_buses);
found = new;
new = NULL;
Expand Down Expand Up @@ -423,11 +423,11 @@ EXPORT_SYMBOL_GPL(sfp_upstream_stop);
*
* On error, returns %NULL.
*/
struct sfp_bus *sfp_register_upstream(struct device_node *np,
struct sfp_bus *sfp_register_upstream(struct fwnode_handle *fwnode,
struct net_device *ndev, void *upstream,
const struct sfp_upstream_ops *ops)
{
struct sfp_bus *bus = sfp_bus_get(np);
struct sfp_bus *bus = sfp_bus_get(fwnode);
int ret = 0;

if (bus) {
Expand Down Expand Up @@ -537,7 +537,7 @@ EXPORT_SYMBOL_GPL(sfp_module_remove);
struct sfp_bus *sfp_register_socket(struct device *dev, struct sfp *sfp,
const struct sfp_socket_ops *ops)
{
struct sfp_bus *bus = sfp_bus_get(dev->of_node);
struct sfp_bus *bus = sfp_bus_get(dev->fwnode);
int ret = 0;

if (bus) {
Expand Down
7 changes: 4 additions & 3 deletions include/linux/sfp.h
Original file line number Diff line number Diff line change
Expand Up @@ -356,7 +356,7 @@ enum {
SFP_PAGE = 0x7f,
};

struct device_node;
struct fwnode_handle;
struct ethtool_eeprom;
struct ethtool_modinfo;
struct net_device;
Expand Down Expand Up @@ -397,7 +397,7 @@ 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(struct device_node *np,
struct sfp_bus *sfp_register_upstream(struct fwnode_handle *fwnode,
struct net_device *ndev, void *upstream,
const struct sfp_upstream_ops *ops);
void sfp_unregister_upstream(struct sfp_bus *bus);
Expand Down Expand Up @@ -441,7 +441,8 @@ static inline void sfp_upstream_stop(struct sfp_bus *bus)
{
}

static inline struct sfp_bus *sfp_register_upstream(struct device_node *np,
static inline struct sfp_bus *sfp_register_upstream(
struct fwnode_handle *fwnode,
struct net_device *ndev, void *upstream,
const struct sfp_upstream_ops *ops)
{
Expand Down

0 comments on commit c19bb00

Please sign in to comment.