driver: net: xgene: Add support for 2nd 10GbE port
authorIyappan Subramanian <isubramanian@apm.com>
Tue, 8 Sep 2015 22:50:26 +0000 (15:50 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 15 Sep 2015 19:47:46 +0000 (12:47 -0700)
Adding support for the second 10GbE port on APM X-Gene SoC

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

index cfa37041ab715db677f7d986bf45f51bbcae0444..21749f01827da60ed1df5bcc7904e3dbe8115b43 100644 (file)
@@ -107,7 +107,8 @@ static void xgene_enet_set_ring_state(struct xgene_enet_desc_ring *ring)
 {
        xgene_enet_ring_set_type(ring);
 
-       if (xgene_enet_ring_owner(ring->id) == RING_OWNER_ETH0)
+       if (xgene_enet_ring_owner(ring->id) == RING_OWNER_ETH0 ||
+           xgene_enet_ring_owner(ring->id) == RING_OWNER_ETH1)
                xgene_enet_ring_set_recombbuf(ring);
 
        xgene_enet_ring_init(ring);
index e47298faf78dedbdf1f562fe17c636793e19717f..6b1846df7b0c68f7874f7e69863caf57f6fa46bf 100644 (file)
@@ -1305,10 +1305,17 @@ static void xgene_enet_setup_ops(struct xgene_enet_pdata *pdata)
                        pdata->ring_num = START_RING_NUM_0;
                        break;
                case 1:
-                       pdata->cpu_bufnum = START_CPU_BUFNUM_1;
-                       pdata->eth_bufnum = START_ETH_BUFNUM_1;
-                       pdata->bp_bufnum = START_BP_BUFNUM_1;
-                       pdata->ring_num = START_RING_NUM_1;
+                       if (pdata->phy_mode == PHY_INTERFACE_MODE_XGMII) {
+                               pdata->cpu_bufnum = XG_START_CPU_BUFNUM_1;
+                               pdata->eth_bufnum = XG_START_ETH_BUFNUM_1;
+                               pdata->bp_bufnum = XG_START_BP_BUFNUM_1;
+                               pdata->ring_num = XG_START_RING_NUM_1;
+                       } else {
+                               pdata->cpu_bufnum = START_CPU_BUFNUM_1;
+                               pdata->eth_bufnum = START_ETH_BUFNUM_1;
+                               pdata->bp_bufnum = START_BP_BUFNUM_1;
+                               pdata->ring_num = START_RING_NUM_1;
+                       }
                        break;
                default:
                        break;
@@ -1478,6 +1485,7 @@ static const struct acpi_device_id xgene_enet_acpi_match[] = {
        { "APMC0D05", XGENE_ENET1},
        { "APMC0D30", XGENE_ENET1},
        { "APMC0D31", XGENE_ENET1},
+       { "APMC0D3F", XGENE_ENET1},
        { "APMC0D26", XGENE_ENET2},
        { "APMC0D25", XGENE_ENET2},
        { }
index 50f92c39ed2a2de60c6f3b20975646df990e89ff..ff89a5d98d01c639ed063312261dbf39f8dc6fbd 100644 (file)
 #define START_BP_BUFNUM_1      0x2A
 #define START_RING_NUM_1       264
 
+#define XG_START_CPU_BUFNUM_1  12
+#define XG_START_ETH_BUFNUM_1  2
+#define XG_START_BP_BUFNUM_1   0x22
+#define XG_START_RING_NUM_1    264
+
 #define X2_START_CPU_BUFNUM_0  0
 #define X2_START_ETH_BUFNUM_0  0
 #define X2_START_BP_BUFNUM_0   0x20