OSDN Git Service

mlxsw: item: Add support for local_port field in a split form
authorAmit Cohen <amcohen@nvidia.com>
Wed, 1 Dec 2021 08:12:33 +0000 (10:12 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 1 Dec 2021 14:52:33 +0000 (14:52 +0000)
commitfda39347d90f42dafaec5e8ed7490e8054e8dcad
treeedd02d88ce5e7f0289d6aa6e224bad66b538ce0c
parentb25dea489b55a54d6ede2d9836c84ef2f50210fc
mlxsw: item: Add support for local_port field in a split form

Currently, local_port field uses 8 bits, which means that maximum 256
ports can be used.

As preparation for the next ASIC, which will support more than 256
ports, local_port field should be extended to 10 bits.

It is not possible to use 10 consecutive bits in all registers, and
therefore, the field is split into 2 fields:
1. local_port - the existing 8 bits, represent LSB of the extended
   field.
2. lp_msb - extra 2 bits, represent MSB of the extended field.

To avoid complex programming when reading/writing local_port, add a
dedicated macro which creates get and set functions which handle both parts
of local_port.

Signed-off-by: Amit Cohen <amcohen@nvidia.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Reviewed-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/item.h