[PATCH for v4.9 LTS 63/86] net: thunderx: acpi: fix LMAC initialization

2017-06-17 Thread Levin, Alexander (Sasha Levin)
From: Vadim Lomovtsev 

[ Upstream commit 7aa4865506a26c607e00bd9794a85785b55ebca7 ]

While probing BGX we requesting appropriate QLM for it's configuration
and get LMAC count by that request. Then, while reading configured
MAC values from SSDT table we need to save them in proper mapping:
  BGX[i]->lmac[j].mac = 
to later provide for initialization stuff. In order to fill
such mapping properly we need to add lmac index to be used while
acpi initialization since at this moment bgx->lmac_count already contains
actual value.

Signed-off-by: Vadim Lomovtsev 
Signed-off-by: David S. Miller 
Signed-off-by: Sasha Levin 
---
 drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 11 ++-
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c 
b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
index 679679a4ccb2..e858b1af788d 100644
--- a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
+++ b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
@@ -48,8 +48,9 @@ struct lmac {
 struct bgx {
u8  bgx_id;
struct  lmaclmac[MAX_LMAC_PER_BGX];
-   int lmac_count;
+   u8  lmac_count;
u8  max_lmac;
+   u8  acpi_lmac_idx;
void __iomem*reg_base;
struct pci_dev  *pdev;
boolis_dlm;
@@ -1159,13 +1160,13 @@ static acpi_status bgx_acpi_register_phy(acpi_handle 
handle,
if (acpi_bus_get_device(handle, ))
goto out;
 
-   acpi_get_mac_address(dev, adev, bgx->lmac[bgx->lmac_count].mac);
+   acpi_get_mac_address(dev, adev, bgx->lmac[bgx->acpi_lmac_idx].mac);
 
-   SET_NETDEV_DEV(>lmac[bgx->lmac_count].netdev, dev);
+   SET_NETDEV_DEV(>lmac[bgx->acpi_lmac_idx].netdev, dev);
 
-   bgx->lmac[bgx->lmac_count].lmacid = bgx->lmac_count;
+   bgx->lmac[bgx->acpi_lmac_idx].lmacid = bgx->acpi_lmac_idx;
+   bgx->acpi_lmac_idx++; /* move to next LMAC */
 out:
-   bgx->lmac_count++;
return AE_OK;
 }
 
-- 
2.11.0


[PATCH for v4.9 LTS 63/86] net: thunderx: acpi: fix LMAC initialization

2017-06-17 Thread Levin, Alexander (Sasha Levin)
From: Vadim Lomovtsev 

[ Upstream commit 7aa4865506a26c607e00bd9794a85785b55ebca7 ]

While probing BGX we requesting appropriate QLM for it's configuration
and get LMAC count by that request. Then, while reading configured
MAC values from SSDT table we need to save them in proper mapping:
  BGX[i]->lmac[j].mac = 
to later provide for initialization stuff. In order to fill
such mapping properly we need to add lmac index to be used while
acpi initialization since at this moment bgx->lmac_count already contains
actual value.

Signed-off-by: Vadim Lomovtsev 
Signed-off-by: David S. Miller 
Signed-off-by: Sasha Levin 
---
 drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 11 ++-
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c 
b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
index 679679a4ccb2..e858b1af788d 100644
--- a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
+++ b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
@@ -48,8 +48,9 @@ struct lmac {
 struct bgx {
u8  bgx_id;
struct  lmaclmac[MAX_LMAC_PER_BGX];
-   int lmac_count;
+   u8  lmac_count;
u8  max_lmac;
+   u8  acpi_lmac_idx;
void __iomem*reg_base;
struct pci_dev  *pdev;
boolis_dlm;
@@ -1159,13 +1160,13 @@ static acpi_status bgx_acpi_register_phy(acpi_handle 
handle,
if (acpi_bus_get_device(handle, ))
goto out;
 
-   acpi_get_mac_address(dev, adev, bgx->lmac[bgx->lmac_count].mac);
+   acpi_get_mac_address(dev, adev, bgx->lmac[bgx->acpi_lmac_idx].mac);
 
-   SET_NETDEV_DEV(>lmac[bgx->lmac_count].netdev, dev);
+   SET_NETDEV_DEV(>lmac[bgx->acpi_lmac_idx].netdev, dev);
 
-   bgx->lmac[bgx->lmac_count].lmacid = bgx->lmac_count;
+   bgx->lmac[bgx->acpi_lmac_idx].lmacid = bgx->acpi_lmac_idx;
+   bgx->acpi_lmac_idx++; /* move to next LMAC */
 out:
-   bgx->lmac_count++;
return AE_OK;
 }
 
-- 
2.11.0