bnxt_en: update RSS config using difference algorithm
authorEdwin Peer <edwin.peer@broadcom.com>
Mon, 7 Nov 2022 00:16:31 +0000 (19:16 -0500)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 8 Nov 2022 11:39:02 +0000 (12:39 +0100)
commit98a4322b70e817f0663adb61b8272f7b995ed41a
treed511cfddffa103d3cb60f1f885ada9a1316d49ba
parent41d2dd42bfa17035c3b0429b6b0e46305607fcc7
bnxt_en: update RSS config using difference algorithm

Hardware is unable to realize all legal firmware interface state values
for hash_type.  For example, if 4-tuple TCP_IPV4 hash is enabled,
4-tuple UDP_IPV4 hash must also be enabled.  By providing the bits the
user intended to change instead of the possible illegal intermediate
states, the firmware is able to make better compromises when deciding
which bits to ignore.

With this new mechansim, we can now report the actual configured hash
back to the user.  Add bnxt_hwrm_update_rss_hash_cfg() to report the
actual hash after user configuration.

Signed-off-by: Edwin Peer <edwin.peer@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/broadcom/bnxt/bnxt.c
drivers/net/ethernet/broadcom/bnxt/bnxt.h
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h