nfp: pass switch ID through devlink_port_attrs_set()
[linux-2.6-microblaze.git] / drivers / net / ethernet / netronome / nfp / nfp_devlink.c
index e9eca99..8e75912 100644 (file)
@@ -354,6 +354,8 @@ int nfp_devlink_port_register(struct nfp_app *app, struct nfp_port *port)
 {
        struct nfp_eth_table_port eth_port;
        struct devlink *devlink;
+       const u8 *serial;
+       int serial_len;
        int ret;
 
        rtnl_lock();
@@ -362,10 +364,10 @@ int nfp_devlink_port_register(struct nfp_app *app, struct nfp_port *port)
        if (ret)
                return ret;
 
-       devlink_port_type_eth_set(&port->dl_port, port->netdev);
+       serial_len = nfp_cpp_serial(port->app->cpp, &serial);
        devlink_port_attrs_set(&port->dl_port, DEVLINK_PORT_FLAVOUR_PHYSICAL,
                               eth_port.label_port, eth_port.is_split,
-                              eth_port.label_subport);
+                              eth_port.label_subport, serial, serial_len);
 
        devlink = priv_to_devlink(app->pf);
 
@@ -377,13 +379,23 @@ void nfp_devlink_port_unregister(struct nfp_port *port)
        devlink_port_unregister(&port->dl_port);
 }
 
-struct devlink *nfp_devlink_get_devlink(struct net_device *netdev)
+void nfp_devlink_port_type_eth_set(struct nfp_port *port)
+{
+       devlink_port_type_eth_set(&port->dl_port, port->netdev);
+}
+
+void nfp_devlink_port_type_clear(struct nfp_port *port)
 {
-       struct nfp_app *app;
+       devlink_port_type_clear(&port->dl_port);
+}
+
+struct devlink_port *nfp_devlink_get_devlink_port(struct net_device *netdev)
+{
+       struct nfp_port *port;
 
-       app = nfp_app_from_netdev(netdev);
-       if (!app)
+       port = nfp_port_from_netdev(netdev);
+       if (!port)
                return NULL;
 
-       return priv_to_devlink(app->pf);
+       return &port->dl_port;
 }