From a91720a4d77dbd08b7e8dc6af6a0709f95d8158d Mon Sep 17 00:00:00 2001 From: Bhadram Varka Date: Tue, 14 Sep 2021 08:37:21 +0530 Subject: [PATCH] nvethernet: remove MGBE MDIO/MDC pad programming Remove PAD programming for MGBE MDIO and MDC PADs and apply pinctrl state if pinctrl present inside DT. Bug 200759606 Change-Id: Ib7f41532687dea2935c619e2335a2afd2c3ff8d6 Signed-off-by: Bhadram Varka Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2593806 Reviewed-by: svcacv Reviewed-by: Narayan Reddy Reviewed-by: Rakesh Goyal Reviewed-by: Bitan Biswas Reviewed-by: mobile promotions Tested-by: mobile promotions GVS: Gerrit_Virtual_Submit --- .../ethernet/nvidia/nvethernet/ether_linux.c | 65 +++---------------- .../ethernet/nvidia/nvethernet/ether_linux.h | 1 + 2 files changed, 11 insertions(+), 55 deletions(-) diff --git a/drivers/net/ethernet/nvidia/nvethernet/ether_linux.c b/drivers/net/ethernet/nvidia/nvethernet/ether_linux.c index e7452871..71f1e39f 100644 --- a/drivers/net/ethernet/nvidia/nvethernet/ether_linux.c +++ b/drivers/net/ethernet/nvidia/nvethernet/ether_linux.c @@ -6021,66 +6021,21 @@ static int ether_probe(struct platform_device *pdev) struct osi_dma_priv_data *osi_dma; struct osi_ioctl ioctl_data = {}; struct net_device *ndev; - int ret = 0, i, val; - void __iomem *reg; + int ret = 0, i; const char *if_name; - /* WAR to program PAD control registers until MB1 changes done */ - if (tegra_get_chip_id() == TEGRA234) { - reg = ioremap(0x2445038, 4); - val = 0x2440; - writel(val, reg); - iounmap(reg); - - reg = ioremap(0x2445048, 4); - val = 0x2400; - writel(val, reg); - iounmap(reg); - - reg = ioremap(0x2440000, 4); - val = 0x440; - writel(val, reg); - iounmap(reg); - - reg = ioremap(0x2440008, 4); - val = 0x400; - writel(val, reg); - iounmap(reg); - - reg = ioremap(0x2440018, 4); - val = 0x440; - writel(val, reg); - iounmap(reg); - - reg = ioremap(0x2440028, 4); - val = 0x400; - writel(val, reg); - iounmap(reg); - - reg = ioremap(0x2440048, 4); - val = 0x440; - writel(val, reg); - iounmap(reg); - - reg = ioremap(0x2440010, 4); - val = 0x400; - writel(val, reg); - iounmap(reg); - - reg = ioremap(0x2440038, 4); - val = 0x440; - writel(val, reg); - iounmap(reg); - - reg = ioremap(0x2440040, 4); - val = 0x400; - writel(val, reg); - iounmap(reg); - } - ether_get_num_dma_chan_mtl_q(pdev, &num_dma_chans, &mac, &num_mtl_queues); + if (mac == OSI_MAC_HW_MGBE) { + ret = pinctrl_pm_select_default_state(&pdev->dev); + if (ret < 0) { + dev_err(&pdev->dev, + "Failed to apply pinctl states: %d\n", ret); + return ret; + } + } + osi_core = osi_get_core(); if (osi_core == NULL) { return -ENOMEM; diff --git a/drivers/net/ethernet/nvidia/nvethernet/ether_linux.h b/drivers/net/ethernet/nvidia/nvethernet/ether_linux.h index a45d20c5..6846ddb1 100644 --- a/drivers/net/ethernet/nvidia/nvethernet/ether_linux.h +++ b/drivers/net/ethernet/nvidia/nvethernet/ether_linux.h @@ -19,6 +19,7 @@ #include #include +#include #include #include #include