Merge branch 'mlxsw-Query-number-of-modules-from-firmware'
authorDavid S. Miller <davem@davemloft.net>
Sun, 6 Oct 2019 16:31:40 +0000 (18:31 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sun, 6 Oct 2019 16:31:40 +0000 (18:31 +0200)
commit54e02957f4d5ee204de5d8dde5fdc05a23cc30fe
treee130e8911218f211732a35b3d73d5446b43e74c4
parent0eb8516b8e9ad1ff11655750e993e0bb3b254a4a
parent6935af8073a02ffd11a7e495dc318c0a51e18012
Merge branch 'mlxsw-Query-number-of-modules-from-firmware'

Ido Schimmel says:

====================
mlxsw: Query number of modules from firmware

Vadim says:

The patchset adds support for a new field "num_of_modules" of Management
General Peripheral Information Register (MGPIR), providing the maximum
number of QSFP modules, which can be supported by the system.

It allows to obtain the number of QSFP modules directly from this field,
as a static data, instead of old method of getting this info through
"network port to QSFP module" mapping. With the old method, in case of
port dynamic re-configuration some modules can logically "disappear" as
a result of port split operations, which can cause some modules to
appear missing.

Such scenario can happen on a system equipped with a BMC card, while PCI
chip driver at host CPU side can perform some ports "split" or "unsplit"
operations, while BMC side I2C chip driver reads the "port-to-module"
mapping.

Add common API for FW "minor" and "subminor" versions validation and
share it between PCI and I2C based drivers.

Add FW version validation for "minimal" driver, because use of new field
"num_of_modules" in MGPIR register is not backward compatible.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>