diff --git a/drivers/net/ethernet/nvidia/Makefile b/drivers/net/ethernet/nvidia/Makefile index cb39a5a4..ba69e325 100644 --- a/drivers/net/ethernet/nvidia/Makefile +++ b/drivers/net/ethernet/nvidia/Makefile @@ -1,13 +1,7 @@ #SPDX-License-Identifier: GPL-2.0-only #Copyright (c) 2019-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved. -LINUX_VERSION := $(shell expr $(VERSION) \* 256 + $(PATCHLEVEL)) -LINUX_VERSION_6_3 := $(shell expr 6 \* 256 + 3) - ifdef CONFIG_PCI obj-m += pcie/ endif -# nvethernet is currently broken for Linux v6.3 and so skip for Linux v6.3+ -ifeq ($(shell test $(LINUX_VERSION) -lt $(LINUX_VERSION_6_3); echo $$?),0) obj-m += nvethernet/ -endif diff --git a/drivers/net/ethernet/nvidia/nvethernet/ether_linux.c b/drivers/net/ethernet/nvidia/nvethernet/ether_linux.c index 24bb8a15..d24a7e54 100644 --- a/drivers/net/ethernet/nvidia/nvethernet/ether_linux.c +++ b/drivers/net/ethernet/nvidia/nvethernet/ether_linux.c @@ -3666,7 +3666,7 @@ static int ether_handle_priv_rmdio_ioctl(struct ether_priv_data *pdata, if (mdio_phy_id_is_c45(mii_data->phy_id)) { prtad = mdio_phy_id_prtad(mii_data->phy_id); devad = mdio_phy_id_devad(mii_data->phy_id); - devad = mdiobus_c45_addr(devad, mii_data->reg_num); + devad = MII_ADDR_C45 | devad << MII_DEVADDR_C45_SHIFT | mii_data->reg_num; } else { prtad = mii_data->phy_id; devad = mii_data->reg_num; @@ -3707,7 +3707,7 @@ static int ether_handle_priv_wmdio_ioctl(struct ether_priv_data *pdata, if (mdio_phy_id_is_c45(mii_data->phy_id)) { prtad = mdio_phy_id_prtad(mii_data->phy_id); devad = mdio_phy_id_devad(mii_data->phy_id); - devad = mdiobus_c45_addr(devad, mii_data->reg_num); + devad = MII_ADDR_C45 | devad << MII_DEVADDR_C45_SHIFT | mii_data->reg_num; } else { prtad = mii_data->phy_id; devad = mii_data->reg_num; diff --git a/drivers/net/ethernet/nvidia/nvethernet/ether_linux.h b/drivers/net/ethernet/nvidia/nvethernet/ether_linux.h index 5e06513d..9d9c123e 100644 --- a/drivers/net/ethernet/nvidia/nvethernet/ether_linux.h +++ b/drivers/net/ethernet/nvidia/nvethernet/ether_linux.h @@ -1,5 +1,5 @@ /* SPDX-License-Identifier: GPL-2.0-only */ -/* Copyright (c) 2019-2022, NVIDIA CORPORATION & AFFILIATES. All rights reserved */ +/* Copyright (c) 2019-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved */ #ifndef ETHER_LINUX_H #define ETHER_LINUX_H @@ -287,6 +287,10 @@ static inline int ether_avail_txdesc_cnt(struct osi_dma_priv_data *osi_dma, #define ETHER_VM_IRQ_TX_CHAN_MASK(x) BIT((x) * 2U) #define ETHER_VM_IRQ_RX_CHAN_MASK(x) BIT(((x) * 2U) + 1U) +/* MDIO clause 45 bit */ +#define MII_ADDR_C45 OSI_BIT(30) +#define MII_DEVADDR_C45_SHIFT 16 + /** * @brief DMA Transmit Channel NAPI */