From ceb7893c0ec10be228a2fe93e4f0c36fa9ca85fb Mon Sep 17 00:00:00 2001 From: nannaiah Date: Sun, 15 Aug 2021 01:58:48 -0700 Subject: [PATCH] nvethernet: Don't enable clocks for virtualization. Incase of ethernet virtualization, ethernet server enables clock so don't enable clocks from VM. Bug 2694285 Change-Id: I6c191908599ef86f632a2801d1e7d3e06cb03c4f Signed-off-by: Nagaraj Annaiah Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2587837 Tested-by: mobile promotions Reviewed-by: Srinivas Ramachandran Reviewed-by: svc_kernel_abi Reviewed-by: mobile promotions --- .../ethernet/nvidia/nvethernet/ether_linux.c | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/drivers/net/ethernet/nvidia/nvethernet/ether_linux.c b/drivers/net/ethernet/nvidia/nvethernet/ether_linux.c index 897f6943..6205156d 100644 --- a/drivers/net/ethernet/nvidia/nvethernet/ether_linux.c +++ b/drivers/net/ethernet/nvidia/nvethernet/ether_linux.c @@ -428,10 +428,12 @@ static void ether_disable_eqos_clks(struct ether_priv_data *pdata) */ static void ether_disable_clks(struct ether_priv_data *pdata) { - if (pdata->osi_core->mac == OSI_MAC_HW_MGBE) { - ether_disable_mgbe_clks(pdata); - } else { - ether_disable_eqos_clks(pdata); + if (pdata->osi_core->use_virtualization == OSI_DISABLE) { + if (pdata->osi_core->mac == OSI_MAC_HW_MGBE) { + ether_disable_mgbe_clks(pdata); + } else { + ether_disable_eqos_clks(pdata); + } } } @@ -706,11 +708,15 @@ err_axi_cbb: */ static int ether_enable_clks(struct ether_priv_data *pdata) { - if (pdata->osi_core->mac == OSI_MAC_HW_MGBE) { - return ether_enable_mgbe_clks(pdata); + if (pdata->osi_core->use_virtualization == OSI_DISABLE) { + if (pdata->osi_core->mac == OSI_MAC_HW_MGBE) { + return ether_enable_mgbe_clks(pdata); + } + + return ether_enable_eqos_clks(pdata); } - return ether_enable_eqos_clks(pdata); + return 0; } /** @@ -5119,6 +5125,8 @@ static int ether_init_plat_resources(struct platform_device *pdev, if (ret != -EPROBE_DEFER) dev_err(&pdev->dev, "failed to get clks/reset"); } + } else { + pdata->clks_enable = true; } return ret;