Instead of literals and open-coding shifts and masks, use FIELD_GET() and the correct field define from pci_regs.h. Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@xxxxxxxxxxxxxxx> --- drivers/net/ethernet/chelsio/cxgb3/t3_hw.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/chelsio/cxgb3/t3_hw.c b/drivers/net/ethernet/chelsio/cxgb3/t3_hw.c index 4e917a578c77..171bf6cf1abf 100644 --- a/drivers/net/ethernet/chelsio/cxgb3/t3_hw.c +++ b/drivers/net/ethernet/chelsio/cxgb3/t3_hw.c @@ -29,6 +29,7 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ +#include <linux/bitfield.h> #include <linux/etherdevice.h> #include <linux/pci.h> @@ -3262,7 +3263,7 @@ static void config_pcie(struct adapter *adap) unsigned int fst_trn_rx, fst_trn_tx, acklat, rpllmt; pcie_capability_read_word(adap->pdev, PCI_EXP_DEVCTL, &val); - pldsize = (val & PCI_EXP_DEVCTL_PAYLOAD) >> 5; + pldsize = FIELD_GET(PCI_EXP_DEVCTL_PAYLOAD, val); pci_read_config_word(adap->pdev, PCI_DEVICE_ID, &devid); if (devid == 0x37) { @@ -3400,7 +3401,7 @@ static void get_pci_mode(struct adapter *adapter, struct pci_params *p) p->variant = PCI_VARIANT_PCIE; pcie_capability_read_word(adapter->pdev, PCI_EXP_LNKSTA, &val); - p->width = (val >> 4) & 0x3f; + p->width = FIELD_GET(PCI_EXP_LNKSTA_NLW, val); return; } -- 2.39.5