]> git.baikalelectronics.ru Git - kernel.git/commit
mlxsw: spectrum: Store local port to module mapping during init
authorIdo Schimmel <idosch@mellanox.com>
Fri, 26 Feb 2016 16:32:29 +0000 (17:32 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 1 Mar 2016 21:07:30 +0000 (16:07 -0500)
commitc9b54f80f2f3db63dfaa3e9a53819f8db7b24aa7
treea210157340ae2ecc432460b79353ca7a8bfb392e
parentce2f8b43684e1e621ada98685a293aeffebdf9e8
mlxsw: spectrum: Store local port to module mapping during init

The port netdevs are each associated with a different local port number
in the device. These local ports are grouped into groups of 4 (e.g.
(1-4), (5-8)) called clusters. The cluster constitutes the one of two
possible modules they can be mapped to. This mapping is board-specific
and done by the device's firmware during init.

When splitting a port by 4, the device requires us to first unmap all
the ports in the cluster and then map each to a single lane in the module
associated with the port netdev used as the handle for the operation.
This means that two port netdevs will disappear, as only 100Gb/s (4
lanes) ports can be split and we are guaranteed to have two of these
((1, 3), (5, 7) etc.) in a cluster.

When unsplit occurs we need to reinstantiate the two original 100Gb/s
ports and map each to its origianl module. Therefore, during driver init
store the initial local port to module mapping, so it can be used later
during unsplitting.

Note that a by 2 split doesn't require us to store the mapping, as we
only need to reinstantiate one port whose module is known.

Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/spectrum.c
drivers/net/ethernet/mellanox/mlxsw/spectrum.h