]> git.karo-electronics.de Git - linux-beck.git/commitdiff
drivers: net: xgene: Implement the backward compatibility with the old and new firmwa...
authorSuman Tripathi <stripathi@apm.com>
Tue, 23 Jun 2015 09:17:15 +0000 (14:47 +0530)
committerDavid S. Miller <davem@davemloft.net>
Tue, 23 Jun 2015 14:19:19 +0000 (07:19 -0700)
This patch implements the backward compatibility with the old firmware where
the Tx completion IRQ interrupt was absent whereas incase of new firmware
the Tx completion IRQ interrupt is present.

Signed-off-by: Iyappan Subramanian <isubramanian@apm.com>
Signed-off-by: Suman Tripathi <stripathi@apm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/apm/xgene/xgene_enet_main.c

index 17f0df508f7298a02e31dcab72bc8ad5a660220b..0d6ac7aad26873bdc0bfbcb630dcc141d93d6946 100644 (file)
@@ -1024,11 +1024,13 @@ static int xgene_enet_get_resources(struct xgene_enet_pdata *pdata)
        if (pdata->phy_mode != PHY_INTERFACE_MODE_RGMII) {
                ret = platform_get_irq(pdev, 1);
                if (ret <= 0) {
-                       dev_err(dev, "Unable to get ENET Tx completion IRQ\n");
-                       ret = ret ? : -ENXIO;
-                       return ret;
+                       pdata->cq_cnt = 0;
+                       dev_info(dev, "Unable to get Tx completion IRQ,"
+                                "using Rx IRQ instead\n");
+               } else {
+                       pdata->cq_cnt = XGENE_MAX_TXC_RINGS;
+                       pdata->txc_irq = ret;
                }
-               pdata->txc_irq = ret;
        }
 
        pdata->clk = devm_clk_get(&pdev->dev, NULL);
@@ -1105,13 +1107,11 @@ static void xgene_enet_setup_ops(struct xgene_enet_pdata *pdata)
                pdata->mac_ops = &xgene_sgmac_ops;
                pdata->port_ops = &xgene_sgport_ops;
                pdata->rm = RM1;
-               pdata->cq_cnt = XGENE_MAX_TXC_RINGS;
                break;
        default:
                pdata->mac_ops = &xgene_xgmac_ops;
                pdata->port_ops = &xgene_xgport_ops;
                pdata->rm = RM0;
-               pdata->cq_cnt = XGENE_MAX_TXC_RINGS;
                break;
        }