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@david-bauer.net>
This commit is contained in:
David Bauer 2021-02-17 02:04:46 +01:00
parent 5bd6d9377d
commit 3832403771
2 changed files with 28 additions and 1 deletions

View File

@ -178,7 +178,11 @@ struct ag71xx {
struct phy_device *phy_dev; struct phy_device *phy_dev;
void *phy_priv; void *phy_priv;
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0)
phy_interface_t phy_if_mode;
#else
int phy_if_mode; int phy_if_mode;
#endif
unsigned int link; unsigned int link;
unsigned int speed; unsigned int speed;

View File

@ -936,7 +936,11 @@ __ag71xx_link_adjust(struct ag71xx *ag, bool update)
* The wr, rr functions cannot be used since this hidden register * The wr, rr functions cannot be used since this hidden register
* is outside of the normal ag71xx register block. * 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); void __iomem *dam = ioremap_nocache(0xb90001bc, 0x4);
#endif
if (dam) { if (dam) {
__raw_writel(__raw_readl(dam) & ~BIT(27), dam); __raw_writel(__raw_readl(dam) & ~BIT(27), dam);
(void)__raw_readl(dam); (void)__raw_readl(dam);
@ -1193,7 +1197,11 @@ static void ag71xx_oom_timer_handler(struct timer_list *t)
napi_schedule(&ag->napi); 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) static void ag71xx_tx_timeout(struct net_device *dev)
#endif
{ {
struct ag71xx *ag = netdev_priv(dev); struct ag71xx *ag = netdev_priv(dev);
@ -1579,15 +1587,25 @@ static int ag71xx_probe(struct platform_device *pdev)
ag->pllregmap = NULL; 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, ag->mac_base = devm_ioremap_nocache(&pdev->dev, res->start,
res->end - res->start + 1); res->end - res->start + 1);
#endif
if (!ag->mac_base) if (!ag->mac_base)
return -ENOMEM; return -ENOMEM;
res = platform_get_resource(pdev, IORESOURCE_MEM, 1); res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
if (res) { 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); 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) if (!ag->mii_base)
return -ENOMEM; return -ENOMEM;
} }
@ -1667,7 +1685,12 @@ static int ag71xx_probe(struct platform_device *pdev)
memcpy(dev->dev_addr, mac_addr, ETH_ALEN); 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); ag->phy_if_mode = of_get_phy_mode(np);
#endif
if (ag->phy_if_mode < 0) { if (ag->phy_if_mode < 0) {
dev_err(&pdev->dev, "missing phy-mode property in DT\n"); dev_err(&pdev->dev, "missing phy-mode property in DT\n");
return ag->phy_if_mode; return ag->phy_if_mode;