[openwrt/openwrt] ath79: ag71xx: make kernel 5.10 compatible

LEDE Commits lede-commits at lists.infradead.org
Fri Feb 19 19:28:21 EST 2021


blocktrron pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/3832403771f3319f2c95a9a084e0c3d46b7ee929

commit 3832403771f3319f2c95a9a084e0c3d46b7ee929
Author: David Bauer <mail at david-bauer.net>
AuthorDate: Wed Feb 17 02:04:46 2021 +0100

    ath79: ag71xx: make kernel 5.10 compatible
    
    Add the necessary kernel version ifdef switches in order to support the
    kernel version 5.10.
    
    Signed-off-by: David Bauer <mail at david-bauer.net>
---
 .../drivers/net/ethernet/atheros/ag71xx/ag71xx.h   |  4 ++++
 .../net/ethernet/atheros/ag71xx/ag71xx_main.c      | 25 +++++++++++++++++++++-
 2 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx.h b/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx.h
index fde9db3745..5ff9439f0d 100644
--- a/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx.h
+++ b/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx.h
@@ -178,7 +178,11 @@ struct ag71xx {
 
 	struct phy_device	*phy_dev;
 	void			*phy_priv;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0)
+	phy_interface_t		phy_if_mode;
+#else
 	int			phy_if_mode;
+#endif
 
 	unsigned int		link;
 	unsigned int		speed;
diff --git a/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c b/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c
index 07d9992ca7..2767ad7642 100644
--- a/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c
+++ b/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c
@@ -936,7 +936,11 @@ __ag71xx_link_adjust(struct ag71xx *ag, bool update)
 		 * The wr, rr functions cannot be used since this hidden register
 		 * is outside of the normal ag71xx register block.
 		 */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0)
+		void __iomem *dam = ioremap(0xb90001bc, 0x4);
+#else
 		void __iomem *dam = ioremap_nocache(0xb90001bc, 0x4);
+#endif
 		if (dam) {
 			__raw_writel(__raw_readl(dam) & ~BIT(27), dam);
 			(void)__raw_readl(dam);
@@ -1193,7 +1197,11 @@ static void ag71xx_oom_timer_handler(struct timer_list *t)
 	napi_schedule(&ag->napi);
 }
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0)
+static void ag71xx_tx_timeout(struct net_device *dev, unsigned int txqueue)
+#else
 static void ag71xx_tx_timeout(struct net_device *dev)
+#endif
 {
 	struct ag71xx *ag = netdev_priv(dev);
 
@@ -1579,15 +1587,25 @@ static int ag71xx_probe(struct platform_device *pdev)
 		ag->pllregmap = NULL;
 	}
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0)
+	ag->mac_base = devm_ioremap(&pdev->dev, res->start,
+				    res->end - res->start + 1);
+#else
 	ag->mac_base = devm_ioremap_nocache(&pdev->dev, res->start,
 					    res->end - res->start + 1);
+#endif
 	if (!ag->mac_base)
 		return -ENOMEM;
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
 	if (res) {
-		ag->mii_base = devm_ioremap_nocache(&pdev->dev, res->start,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0)
+		ag->mii_base = devm_ioremap(&pdev->dev, res->start,
 					    res->end - res->start + 1);
+#else
+		ag->mii_base = devm_ioremap_nocache(&pdev->dev, res->start,
+						    res->end - res->start + 1);
+#endif
 		if (!ag->mii_base)
 			return -ENOMEM;
 	}
@@ -1667,7 +1685,12 @@ static int ag71xx_probe(struct platform_device *pdev)
 		memcpy(dev->dev_addr, mac_addr, ETH_ALEN);
 	}
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0)
+	of_get_phy_mode(np, &ag->phy_if_mode);
+#else
 	ag->phy_if_mode = of_get_phy_mode(np);
+#endif
+
 	if (ag->phy_if_mode < 0) {
 		dev_err(&pdev->dev, "missing phy-mode property in DT\n");
 		return ag->phy_if_mode;



More information about the lede-commits mailing list