All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next 0/9] net: hns: fix the typo of hns
@ 2016-06-27  9:54 ` Yisen Zhuang
  0 siblings, 0 replies; 37+ messages in thread
From: Yisen Zhuang @ 2016-06-27  9:54 UTC (permalink / raw)
  To: davem, yisen.zhuang, salil.mehta, yankejian
  Cc: liguozhu, huangdaode, arnd, andriy.shevchenko, andrew,
	geliangtang, ivecera, fengguang.wu, charles.chenxin, netdev,
	linux-kernel, linux-arm-kernel, linuxarm

This series includes typo fixes which review by Andy, adding
the hns maintainer to MAINTAINERS,

 > adds the maintainer for hns driver from Daode;

 > from Daode: fix the typo of hns reviewed by Andy Shevchenko;

 > from Kejian: one remove redundant function and two fix to get 
configuration from DT.

Daode Huang (6):
  MAINTAINERS: add maintainers for hns driver
  net: hns: fix code style about hns driver
  net: hns: change code style from a = a + x to a += x
  net: hns: delete redundant parens
  net: hns: add a space before "*/"
  net: hns: normalize two different loop

Kejian Yan (3):
  net: hns: remove redundant hns_mac_dev_to_enet_if()
  net: hns: add media-type property for hns
  net: hns: get reset registers from DT

 MAINTAINERS                                        |  9 +++
 drivers/net/ethernet/hisilicon/hns/hnae.h          |  9 +++
 drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c  |  1 +
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c  | 41 +++++++----
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h  |  1 +
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c | 52 +++++++-------
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_misc.c | 16 ++---
 drivers/net/ethernet/hisilicon/hns/hns_enet.c      |  4 +-
 drivers/net/ethernet/hisilicon/hns/hns_ethtool.c   | 14 +++-
 drivers/net/ethernet/hisilicon/hns_mdio.c          | 80 ++++++++++++++++++----
 10 files changed, 158 insertions(+), 69 deletions(-)

-- 
1.9.1

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PATCH net-next 0/9] net: hns: fix the typo of hns
@ 2016-06-27  9:54 ` Yisen Zhuang
  0 siblings, 0 replies; 37+ messages in thread
From: Yisen Zhuang @ 2016-06-27  9:54 UTC (permalink / raw)
  To: davem, yisen.zhuang, salil.mehta, yankejian
  Cc: ivecera, andrew, fengguang.wu, liguozhu, arnd, charles.chenxin,
	linux-kernel, linuxarm, geliangtang, huangdaode, netdev,
	andriy.shevchenko, linux-arm-kernel

This series includes typo fixes which review by Andy, adding
the hns maintainer to MAINTAINERS,

 > adds the maintainer for hns driver from Daode;

 > from Daode: fix the typo of hns reviewed by Andy Shevchenko;

 > from Kejian: one remove redundant function and two fix to get 
configuration from DT.

Daode Huang (6):
  MAINTAINERS: add maintainers for hns driver
  net: hns: fix code style about hns driver
  net: hns: change code style from a = a + x to a += x
  net: hns: delete redundant parens
  net: hns: add a space before "*/"
  net: hns: normalize two different loop

Kejian Yan (3):
  net: hns: remove redundant hns_mac_dev_to_enet_if()
  net: hns: add media-type property for hns
  net: hns: get reset registers from DT

 MAINTAINERS                                        |  9 +++
 drivers/net/ethernet/hisilicon/hns/hnae.h          |  9 +++
 drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c  |  1 +
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c  | 41 +++++++----
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h  |  1 +
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c | 52 +++++++-------
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_misc.c | 16 ++---
 drivers/net/ethernet/hisilicon/hns/hns_enet.c      |  4 +-
 drivers/net/ethernet/hisilicon/hns/hns_ethtool.c   | 14 +++-
 drivers/net/ethernet/hisilicon/hns_mdio.c          | 80 ++++++++++++++++++----
 10 files changed, 158 insertions(+), 69 deletions(-)

-- 
1.9.1

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PATCH net-next 0/9] net: hns: fix the typo of hns
@ 2016-06-27  9:54 ` Yisen Zhuang
  0 siblings, 0 replies; 37+ messages in thread
From: Yisen Zhuang @ 2016-06-27  9:54 UTC (permalink / raw)
  To: linux-arm-kernel

This series includes typo fixes which review by Andy, adding
the hns maintainer to MAINTAINERS,

 > adds the maintainer for hns driver from Daode;

 > from Daode: fix the typo of hns reviewed by Andy Shevchenko;

 > from Kejian: one remove redundant function and two fix to get 
configuration from DT.

Daode Huang (6):
  MAINTAINERS: add maintainers for hns driver
  net: hns: fix code style about hns driver
  net: hns: change code style from a = a + x to a += x
  net: hns: delete redundant parens
  net: hns: add a space before "*/"
  net: hns: normalize two different loop

Kejian Yan (3):
  net: hns: remove redundant hns_mac_dev_to_enet_if()
  net: hns: add media-type property for hns
  net: hns: get reset registers from DT

 MAINTAINERS                                        |  9 +++
 drivers/net/ethernet/hisilicon/hns/hnae.h          |  9 +++
 drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c  |  1 +
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c  | 41 +++++++----
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h  |  1 +
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c | 52 +++++++-------
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_misc.c | 16 ++---
 drivers/net/ethernet/hisilicon/hns/hns_enet.c      |  4 +-
 drivers/net/ethernet/hisilicon/hns/hns_ethtool.c   | 14 +++-
 drivers/net/ethernet/hisilicon/hns_mdio.c          | 80 ++++++++++++++++++----
 10 files changed, 158 insertions(+), 69 deletions(-)

-- 
1.9.1

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PATCH net-next 1/9] MAINTAINERS: add maintainers for hns driver
  2016-06-27  9:54 ` Yisen Zhuang
  (?)
@ 2016-06-27  9:54   ` Yisen Zhuang
  -1 siblings, 0 replies; 37+ messages in thread
From: Yisen Zhuang @ 2016-06-27  9:54 UTC (permalink / raw)
  To: davem, yisen.zhuang, salil.mehta, yankejian
  Cc: liguozhu, huangdaode, arnd, andriy.shevchenko, andrew,
	geliangtang, ivecera, fengguang.wu, charles.chenxin, netdev,
	linux-kernel, linux-arm-kernel, linuxarm

From: Daode Huang <huangdaode@hisilicon.com>

This patch adds maintainers for hisilicon network subsystem driver

Signed-off-by: Daode Huang <huangdaode@hisilicon.com>
---
 MAINTAINERS | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index 3a171a9..c819659 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -5421,6 +5421,15 @@ F:	include/uapi/linux/if_hippi.h
 F:	net/802/hippi.c
 F:	drivers/net/hippi/
 
+HISILICON NETWORK SUBSYSTEM DRIVER
+M:	Yisen Zhuang <yisen.zhuang@huawei.com>
+M:	Salil Mehta <salil.mehta@huawei.com>
+L:	netdev@vger.kernel.org
+W:	http://www.hisilicon.com
+S:	Maintained
+F:	drivers/net/ethernet/hisilicon/*
+F:	Documentation/devicetree/bindings/net/hisilicon*.txt
+
 HISILICON SAS Controller
 M:	John Garry <john.garry@huawei.com>
 W:	http://www.hisilicon.com
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH net-next 1/9] MAINTAINERS: add maintainers for hns driver
@ 2016-06-27  9:54   ` Yisen Zhuang
  0 siblings, 0 replies; 37+ messages in thread
From: Yisen Zhuang @ 2016-06-27  9:54 UTC (permalink / raw)
  To: davem, yisen.zhuang, salil.mehta, yankejian
  Cc: ivecera, andrew, fengguang.wu, liguozhu, arnd, charles.chenxin,
	linux-kernel, linuxarm, geliangtang, huangdaode, netdev,
	andriy.shevchenko, linux-arm-kernel

From: Daode Huang <huangdaode@hisilicon.com>

This patch adds maintainers for hisilicon network subsystem driver

Signed-off-by: Daode Huang <huangdaode@hisilicon.com>
---
 MAINTAINERS | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index 3a171a9..c819659 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -5421,6 +5421,15 @@ F:	include/uapi/linux/if_hippi.h
 F:	net/802/hippi.c
 F:	drivers/net/hippi/
 
+HISILICON NETWORK SUBSYSTEM DRIVER
+M:	Yisen Zhuang <yisen.zhuang@huawei.com>
+M:	Salil Mehta <salil.mehta@huawei.com>
+L:	netdev@vger.kernel.org
+W:	http://www.hisilicon.com
+S:	Maintained
+F:	drivers/net/ethernet/hisilicon/*
+F:	Documentation/devicetree/bindings/net/hisilicon*.txt
+
 HISILICON SAS Controller
 M:	John Garry <john.garry@huawei.com>
 W:	http://www.hisilicon.com
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH net-next 1/9] MAINTAINERS: add maintainers for hns driver
@ 2016-06-27  9:54   ` Yisen Zhuang
  0 siblings, 0 replies; 37+ messages in thread
From: Yisen Zhuang @ 2016-06-27  9:54 UTC (permalink / raw)
  To: linux-arm-kernel

From: Daode Huang <huangdaode@hisilicon.com>

This patch adds maintainers for hisilicon network subsystem driver

Signed-off-by: Daode Huang <huangdaode@hisilicon.com>
---
 MAINTAINERS | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index 3a171a9..c819659 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -5421,6 +5421,15 @@ F:	include/uapi/linux/if_hippi.h
 F:	net/802/hippi.c
 F:	drivers/net/hippi/
 
+HISILICON NETWORK SUBSYSTEM DRIVER
+M:	Yisen Zhuang <yisen.zhuang@huawei.com>
+M:	Salil Mehta <salil.mehta@huawei.com>
+L:	netdev at vger.kernel.org
+W:	http://www.hisilicon.com
+S:	Maintained
+F:	drivers/net/ethernet/hisilicon/*
+F:	Documentation/devicetree/bindings/net/hisilicon*.txt
+
 HISILICON SAS Controller
 M:	John Garry <john.garry@huawei.com>
 W:	http://www.hisilicon.com
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH net-next 2/9] net: hns: fix code style about hns driver
  2016-06-27  9:54 ` Yisen Zhuang
@ 2016-06-27  9:54   ` Yisen Zhuang
  -1 siblings, 0 replies; 37+ messages in thread
From: Yisen Zhuang @ 2016-06-27  9:54 UTC (permalink / raw)
  To: davem, yisen.zhuang, salil.mehta, yankejian
  Cc: liguozhu, huangdaode, arnd, andriy.shevchenko, andrew,
	geliangtang, ivecera, fengguang.wu, charles.chenxin, netdev,
	linux-kernel, linux-arm-kernel, linuxarm

From: Daode Huang <huangdaode@hisilicon.com>

This patch fixes code sytle of hns driver to make it
simple.

Signed-off-by: Daode Huang <huangdaode@hisilicon.com>
---
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_misc.c | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_misc.c b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_misc.c
index 8473287..611b67b 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_misc.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_misc.c
@@ -253,10 +253,9 @@ static void hns_dsaf_ge_srst_by_port(struct dsaf_device *dsaf_dev, u32 port,
 		reg_val_1  = 0x1 << port;
 		port_rst_off = dsaf_dev->mac_cb[port]->port_rst_off;
 		/* there is difference between V1 and V2 in register.*/
-		if (AE_IS_VER1(dsaf_dev->dsaf_ver))
-			reg_val_2  = 0x1041041 << port_rst_off;
-		else
-			reg_val_2  = 0x2082082 << port_rst_off;
+		reg_val_2 = AE_IS_VER1(dsaf_dev->dsaf_ver) ?
+				0x1041041 : 0x2082082;
+		reg_val_2 <<= port_rst_off;
 
 		if (!dereset) {
 			dsaf_write_sub(dsaf_dev, DSAF_SUB_SC_GE_RESET_REQ1_REG,
@@ -272,12 +271,11 @@ static void hns_dsaf_ge_srst_by_port(struct dsaf_device *dsaf_dev, u32 port,
 				       reg_val_1);
 		}
 	} else {
-		reg_val_1 = 0x15540 << dsaf_dev->reset_offset;
+		reg_val_1 = 0x15540;
+		reg_val_2 = AE_IS_VER1(dsaf_dev->dsaf_ver) ? 0x100 : 0x40;
 
-		if (AE_IS_VER1(dsaf_dev->dsaf_ver))
-			reg_val_2 = 0x100 << dsaf_dev->reset_offset;
-		else
-			reg_val_2 = 0x40 << dsaf_dev->reset_offset;
+		reg_val_1 <<= dsaf_dev->reset_offset;
+		reg_val_2 <<= dsaf_dev->reset_offset;
 
 		if (!dereset) {
 			dsaf_write_sub(dsaf_dev, DSAF_SUB_SC_GE_RESET_REQ1_REG,
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH net-next 2/9] net: hns: fix code style about hns driver
@ 2016-06-27  9:54   ` Yisen Zhuang
  0 siblings, 0 replies; 37+ messages in thread
From: Yisen Zhuang @ 2016-06-27  9:54 UTC (permalink / raw)
  To: linux-arm-kernel

From: Daode Huang <huangdaode@hisilicon.com>

This patch fixes code sytle of hns driver to make it
simple.

Signed-off-by: Daode Huang <huangdaode@hisilicon.com>
---
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_misc.c | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_misc.c b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_misc.c
index 8473287..611b67b 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_misc.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_misc.c
@@ -253,10 +253,9 @@ static void hns_dsaf_ge_srst_by_port(struct dsaf_device *dsaf_dev, u32 port,
 		reg_val_1  = 0x1 << port;
 		port_rst_off = dsaf_dev->mac_cb[port]->port_rst_off;
 		/* there is difference between V1 and V2 in register.*/
-		if (AE_IS_VER1(dsaf_dev->dsaf_ver))
-			reg_val_2  = 0x1041041 << port_rst_off;
-		else
-			reg_val_2  = 0x2082082 << port_rst_off;
+		reg_val_2 = AE_IS_VER1(dsaf_dev->dsaf_ver) ?
+				0x1041041 : 0x2082082;
+		reg_val_2 <<= port_rst_off;
 
 		if (!dereset) {
 			dsaf_write_sub(dsaf_dev, DSAF_SUB_SC_GE_RESET_REQ1_REG,
@@ -272,12 +271,11 @@ static void hns_dsaf_ge_srst_by_port(struct dsaf_device *dsaf_dev, u32 port,
 				       reg_val_1);
 		}
 	} else {
-		reg_val_1 = 0x15540 << dsaf_dev->reset_offset;
+		reg_val_1 = 0x15540;
+		reg_val_2 = AE_IS_VER1(dsaf_dev->dsaf_ver) ? 0x100 : 0x40;
 
-		if (AE_IS_VER1(dsaf_dev->dsaf_ver))
-			reg_val_2 = 0x100 << dsaf_dev->reset_offset;
-		else
-			reg_val_2 = 0x40 << dsaf_dev->reset_offset;
+		reg_val_1 <<= dsaf_dev->reset_offset;
+		reg_val_2 <<= dsaf_dev->reset_offset;
 
 		if (!dereset) {
 			dsaf_write_sub(dsaf_dev, DSAF_SUB_SC_GE_RESET_REQ1_REG,
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH net-next 3/9] net: hns: change code style from a = a + x to a += x
  2016-06-27  9:54 ` Yisen Zhuang
@ 2016-06-27  9:54   ` Yisen Zhuang
  -1 siblings, 0 replies; 37+ messages in thread
From: Yisen Zhuang @ 2016-06-27  9:54 UTC (permalink / raw)
  To: davem, yisen.zhuang, salil.mehta, yankejian
  Cc: liguozhu, huangdaode, arnd, andriy.shevchenko, andrew,
	geliangtang, ivecera, fengguang.wu, charles.chenxin, netdev,
	linux-kernel, linux-arm-kernel, linuxarm

From: Daode Huang <huangdaode@hisilicon.com>

This patch fixes the code style in hns driver. Change it from
"buff = buff + xxx" to "buff += xxx". The reveiw comments is
from andy.

Reviewed-by: Andriy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Daode Huang <huangdaode@hisilicon.com>
---
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c | 32 +++++++++++-----------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
index 67e8e13..b9d01ea 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
@@ -2540,45 +2540,45 @@ static char *hns_dsaf_get_node_stats_strings(char *data, int node,
 	bool is_ver1 = AE_IS_VER1(dsaf_dev->dsaf_ver);
 
 	snprintf(buff, ETH_GSTRING_LEN, "innod%d_pad_drop_pkts", node);
-	buff = buff + ETH_GSTRING_LEN;
+	buff += ETH_GSTRING_LEN;
 	snprintf(buff, ETH_GSTRING_LEN, "innod%d_manage_pkts", node);
-	buff = buff + ETH_GSTRING_LEN;
+	buff += ETH_GSTRING_LEN;
 	snprintf(buff, ETH_GSTRING_LEN, "innod%d_rx_pkts", node);
-	buff = buff + ETH_GSTRING_LEN;
+	buff += ETH_GSTRING_LEN;
 	snprintf(buff, ETH_GSTRING_LEN, "innod%d_rx_pkt_id", node);
-	buff = buff + ETH_GSTRING_LEN;
+	buff += ETH_GSTRING_LEN;
 	snprintf(buff, ETH_GSTRING_LEN, "innod%d_rx_pause_frame", node);
-	buff = buff + ETH_GSTRING_LEN;
+	buff += ETH_GSTRING_LEN;
 	snprintf(buff, ETH_GSTRING_LEN, "innod%d_release_buf_num", node);
-	buff = buff + ETH_GSTRING_LEN;
+	buff += ETH_GSTRING_LEN;
 	snprintf(buff, ETH_GSTRING_LEN, "innod%d_sbm_drop_pkts", node);
-	buff = buff + ETH_GSTRING_LEN;
+	buff += ETH_GSTRING_LEN;
 	snprintf(buff, ETH_GSTRING_LEN, "innod%d_crc_false_pkts", node);
-	buff = buff + ETH_GSTRING_LEN;
+	buff += ETH_GSTRING_LEN;
 	snprintf(buff, ETH_GSTRING_LEN, "innod%d_bp_drop_pkts", node);
-	buff = buff + ETH_GSTRING_LEN;
+	buff += ETH_GSTRING_LEN;
 	snprintf(buff, ETH_GSTRING_LEN, "innod%d_lookup_rslt_drop_pkts", node);
-	buff = buff + ETH_GSTRING_LEN;
+	buff += ETH_GSTRING_LEN;
 	snprintf(buff, ETH_GSTRING_LEN, "innod%d_local_rslt_fail_pkts", node);
-	buff = buff + ETH_GSTRING_LEN;
+	buff += ETH_GSTRING_LEN;
 	snprintf(buff, ETH_GSTRING_LEN, "innod%d_vlan_drop_pkts", node);
-	buff = buff + ETH_GSTRING_LEN;
+	buff += ETH_GSTRING_LEN;
 	snprintf(buff, ETH_GSTRING_LEN, "innod%d_stp_drop_pkts", node);
-	buff = buff + ETH_GSTRING_LEN;
+	buff += ETH_GSTRING_LEN;
 	if ((node < DSAF_SERVICE_NW_NUM) && (!is_ver1)) {
 		for (i = 0; i < DSAF_PRIO_NR; i++) {
 			snprintf(buff, ETH_GSTRING_LEN,
 				 "inod%d_pfc_prio%d_pkts", node, i);
-			buff = buff + ETH_GSTRING_LEN;
+			buff += ETH_GSTRING_LEN;
 		}
 		for (i = 0; i < DSAF_PRIO_NR; i++) {
 			snprintf(buff, ETH_GSTRING_LEN,
 				 "onod%d_pfc_prio%d_pkts", node, i);
-			buff = buff + ETH_GSTRING_LEN;
+			buff += ETH_GSTRING_LEN;
 		}
 	}
 	snprintf(buff, ETH_GSTRING_LEN, "onnod%d_tx_pkts", node);
-	buff = buff + ETH_GSTRING_LEN;
+	buff += ETH_GSTRING_LEN;
 
 	return buff;
 }
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH net-next 3/9] net: hns: change code style from a = a + x to a += x
@ 2016-06-27  9:54   ` Yisen Zhuang
  0 siblings, 0 replies; 37+ messages in thread
From: Yisen Zhuang @ 2016-06-27  9:54 UTC (permalink / raw)
  To: linux-arm-kernel

From: Daode Huang <huangdaode@hisilicon.com>

This patch fixes the code style in hns driver. Change it from
"buff = buff + xxx" to "buff += xxx". The reveiw comments is
from andy.

Reviewed-by: Andriy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Daode Huang <huangdaode@hisilicon.com>
---
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c | 32 +++++++++++-----------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
index 67e8e13..b9d01ea 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
@@ -2540,45 +2540,45 @@ static char *hns_dsaf_get_node_stats_strings(char *data, int node,
 	bool is_ver1 = AE_IS_VER1(dsaf_dev->dsaf_ver);
 
 	snprintf(buff, ETH_GSTRING_LEN, "innod%d_pad_drop_pkts", node);
-	buff = buff + ETH_GSTRING_LEN;
+	buff += ETH_GSTRING_LEN;
 	snprintf(buff, ETH_GSTRING_LEN, "innod%d_manage_pkts", node);
-	buff = buff + ETH_GSTRING_LEN;
+	buff += ETH_GSTRING_LEN;
 	snprintf(buff, ETH_GSTRING_LEN, "innod%d_rx_pkts", node);
-	buff = buff + ETH_GSTRING_LEN;
+	buff += ETH_GSTRING_LEN;
 	snprintf(buff, ETH_GSTRING_LEN, "innod%d_rx_pkt_id", node);
-	buff = buff + ETH_GSTRING_LEN;
+	buff += ETH_GSTRING_LEN;
 	snprintf(buff, ETH_GSTRING_LEN, "innod%d_rx_pause_frame", node);
-	buff = buff + ETH_GSTRING_LEN;
+	buff += ETH_GSTRING_LEN;
 	snprintf(buff, ETH_GSTRING_LEN, "innod%d_release_buf_num", node);
-	buff = buff + ETH_GSTRING_LEN;
+	buff += ETH_GSTRING_LEN;
 	snprintf(buff, ETH_GSTRING_LEN, "innod%d_sbm_drop_pkts", node);
-	buff = buff + ETH_GSTRING_LEN;
+	buff += ETH_GSTRING_LEN;
 	snprintf(buff, ETH_GSTRING_LEN, "innod%d_crc_false_pkts", node);
-	buff = buff + ETH_GSTRING_LEN;
+	buff += ETH_GSTRING_LEN;
 	snprintf(buff, ETH_GSTRING_LEN, "innod%d_bp_drop_pkts", node);
-	buff = buff + ETH_GSTRING_LEN;
+	buff += ETH_GSTRING_LEN;
 	snprintf(buff, ETH_GSTRING_LEN, "innod%d_lookup_rslt_drop_pkts", node);
-	buff = buff + ETH_GSTRING_LEN;
+	buff += ETH_GSTRING_LEN;
 	snprintf(buff, ETH_GSTRING_LEN, "innod%d_local_rslt_fail_pkts", node);
-	buff = buff + ETH_GSTRING_LEN;
+	buff += ETH_GSTRING_LEN;
 	snprintf(buff, ETH_GSTRING_LEN, "innod%d_vlan_drop_pkts", node);
-	buff = buff + ETH_GSTRING_LEN;
+	buff += ETH_GSTRING_LEN;
 	snprintf(buff, ETH_GSTRING_LEN, "innod%d_stp_drop_pkts", node);
-	buff = buff + ETH_GSTRING_LEN;
+	buff += ETH_GSTRING_LEN;
 	if ((node < DSAF_SERVICE_NW_NUM) && (!is_ver1)) {
 		for (i = 0; i < DSAF_PRIO_NR; i++) {
 			snprintf(buff, ETH_GSTRING_LEN,
 				 "inod%d_pfc_prio%d_pkts", node, i);
-			buff = buff + ETH_GSTRING_LEN;
+			buff += ETH_GSTRING_LEN;
 		}
 		for (i = 0; i < DSAF_PRIO_NR; i++) {
 			snprintf(buff, ETH_GSTRING_LEN,
 				 "onod%d_pfc_prio%d_pkts", node, i);
-			buff = buff + ETH_GSTRING_LEN;
+			buff += ETH_GSTRING_LEN;
 		}
 	}
 	snprintf(buff, ETH_GSTRING_LEN, "onnod%d_tx_pkts", node);
-	buff = buff + ETH_GSTRING_LEN;
+	buff += ETH_GSTRING_LEN;
 
 	return buff;
 }
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH net-next 4/9] net: hns: delete redundant parens
  2016-06-27  9:54 ` Yisen Zhuang
  (?)
@ 2016-06-27  9:54   ` Yisen Zhuang
  -1 siblings, 0 replies; 37+ messages in thread
From: Yisen Zhuang @ 2016-06-27  9:54 UTC (permalink / raw)
  To: davem, yisen.zhuang, salil.mehta, yankejian
  Cc: liguozhu, huangdaode, arnd, andriy.shevchenko, andrew,
	geliangtang, ivecera, fengguang.wu, charles.chenxin, netdev,
	linux-kernel, linux-arm-kernel, linuxarm

From: Daode Huang <huangdaode@hisilicon.com>

According to the previous review comments from Andy, this patch
deletes the redundant parens in the patch.

Signed-off-by: Daode Huang <huangdaode@hisilicon.com>
---
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
index b9d01ea..e36ee22 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
@@ -2565,7 +2565,7 @@ static char *hns_dsaf_get_node_stats_strings(char *data, int node,
 	buff += ETH_GSTRING_LEN;
 	snprintf(buff, ETH_GSTRING_LEN, "innod%d_stp_drop_pkts", node);
 	buff += ETH_GSTRING_LEN;
-	if ((node < DSAF_SERVICE_NW_NUM) && (!is_ver1)) {
+	if (node < DSAF_SERVICE_NW_NUM && !is_ver1) {
 		for (i = 0; i < DSAF_PRIO_NR; i++) {
 			snprintf(buff, ETH_GSTRING_LEN,
 				 "inod%d_pfc_prio%d_pkts", node, i);
@@ -2604,7 +2604,7 @@ static u64 *hns_dsaf_get_node_stats(struct dsaf_device *ddev, u64 *data,
 	p[10] = hw_stats->local_addr_false;
 	p[11] = hw_stats->vlan_drop;
 	p[12] = hw_stats->stp_drop;
-	if ((node_num < DSAF_SERVICE_NW_NUM) && (!is_ver1)) {
+	if (node_num < DSAF_SERVICE_NW_NUM && !is_ver1) {
 		for (i = 0; i < DSAF_PRIO_NR; i++) {
 			p[13 + i] = hw_stats->rx_pfc[i];
 			p[13 + i + DSAF_PRIO_NR] = hw_stats->tx_pfc[i];
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH net-next 4/9] net: hns: delete redundant parens
@ 2016-06-27  9:54   ` Yisen Zhuang
  0 siblings, 0 replies; 37+ messages in thread
From: Yisen Zhuang @ 2016-06-27  9:54 UTC (permalink / raw)
  To: davem, yisen.zhuang, salil.mehta, yankejian
  Cc: ivecera, andrew, fengguang.wu, liguozhu, arnd, charles.chenxin,
	linux-kernel, linuxarm, geliangtang, huangdaode, netdev,
	andriy.shevchenko, linux-arm-kernel

From: Daode Huang <huangdaode@hisilicon.com>

According to the previous review comments from Andy, this patch
deletes the redundant parens in the patch.

Signed-off-by: Daode Huang <huangdaode@hisilicon.com>
---
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
index b9d01ea..e36ee22 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
@@ -2565,7 +2565,7 @@ static char *hns_dsaf_get_node_stats_strings(char *data, int node,
 	buff += ETH_GSTRING_LEN;
 	snprintf(buff, ETH_GSTRING_LEN, "innod%d_stp_drop_pkts", node);
 	buff += ETH_GSTRING_LEN;
-	if ((node < DSAF_SERVICE_NW_NUM) && (!is_ver1)) {
+	if (node < DSAF_SERVICE_NW_NUM && !is_ver1) {
 		for (i = 0; i < DSAF_PRIO_NR; i++) {
 			snprintf(buff, ETH_GSTRING_LEN,
 				 "inod%d_pfc_prio%d_pkts", node, i);
@@ -2604,7 +2604,7 @@ static u64 *hns_dsaf_get_node_stats(struct dsaf_device *ddev, u64 *data,
 	p[10] = hw_stats->local_addr_false;
 	p[11] = hw_stats->vlan_drop;
 	p[12] = hw_stats->stp_drop;
-	if ((node_num < DSAF_SERVICE_NW_NUM) && (!is_ver1)) {
+	if (node_num < DSAF_SERVICE_NW_NUM && !is_ver1) {
 		for (i = 0; i < DSAF_PRIO_NR; i++) {
 			p[13 + i] = hw_stats->rx_pfc[i];
 			p[13 + i + DSAF_PRIO_NR] = hw_stats->tx_pfc[i];
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH net-next 4/9] net: hns: delete redundant parens
@ 2016-06-27  9:54   ` Yisen Zhuang
  0 siblings, 0 replies; 37+ messages in thread
From: Yisen Zhuang @ 2016-06-27  9:54 UTC (permalink / raw)
  To: linux-arm-kernel

From: Daode Huang <huangdaode@hisilicon.com>

According to the previous review comments from Andy, this patch
deletes the redundant parens in the patch.

Signed-off-by: Daode Huang <huangdaode@hisilicon.com>
---
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
index b9d01ea..e36ee22 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
@@ -2565,7 +2565,7 @@ static char *hns_dsaf_get_node_stats_strings(char *data, int node,
 	buff += ETH_GSTRING_LEN;
 	snprintf(buff, ETH_GSTRING_LEN, "innod%d_stp_drop_pkts", node);
 	buff += ETH_GSTRING_LEN;
-	if ((node < DSAF_SERVICE_NW_NUM) && (!is_ver1)) {
+	if (node < DSAF_SERVICE_NW_NUM && !is_ver1) {
 		for (i = 0; i < DSAF_PRIO_NR; i++) {
 			snprintf(buff, ETH_GSTRING_LEN,
 				 "inod%d_pfc_prio%d_pkts", node, i);
@@ -2604,7 +2604,7 @@ static u64 *hns_dsaf_get_node_stats(struct dsaf_device *ddev, u64 *data,
 	p[10] = hw_stats->local_addr_false;
 	p[11] = hw_stats->vlan_drop;
 	p[12] = hw_stats->stp_drop;
-	if ((node_num < DSAF_SERVICE_NW_NUM) && (!is_ver1)) {
+	if (node_num < DSAF_SERVICE_NW_NUM && !is_ver1) {
 		for (i = 0; i < DSAF_PRIO_NR; i++) {
 			p[13 + i] = hw_stats->rx_pfc[i];
 			p[13 + i + DSAF_PRIO_NR] = hw_stats->tx_pfc[i];
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH net-next 5/9] net: hns: add a space before "*/"
  2016-06-27  9:54 ` Yisen Zhuang
@ 2016-06-27  9:54   ` Yisen Zhuang
  -1 siblings, 0 replies; 37+ messages in thread
From: Yisen Zhuang @ 2016-06-27  9:54 UTC (permalink / raw)
  To: davem, yisen.zhuang, salil.mehta, yankejian
  Cc: liguozhu, huangdaode, arnd, andriy.shevchenko, andrew,
	geliangtang, ivecera, fengguang.wu, charles.chenxin, netdev,
	linux-kernel, linux-arm-kernel, linuxarm

From: Daode Huang <huangdaode@hisilicon.com>

In comment line, some time miss a space before */, so this
patch adds a space before */.

Signed-off-by: Daode Huang <huangdaode@hisilicon.com>
---
 drivers/net/ethernet/hisilicon/hns/hns_enet.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns/hns_enet.c b/drivers/net/ethernet/hisilicon/hns/hns_enet.c
index d5297ec..d7e1f8c 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_enet.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_enet.c
@@ -762,13 +762,13 @@ static int hns_nic_rx_poll_one(struct hns_nic_ring_data *ring_data,
 	recv_pkts = 0, recv_bds = 0, clean_count = 0;
 recv:
 	while (recv_pkts < budget && recv_bds < num) {
-		/* reuse or realloc buffers*/
+		/* reuse or realloc buffers */
 		if (clean_count >= RCB_NOF_ALLOC_RX_BUFF_ONCE) {
 			hns_nic_alloc_rx_buffers(ring_data, clean_count);
 			clean_count = 0;
 		}
 
-		/* poll one pkt*/
+		/* poll one pkt */
 		err = hns_nic_poll_rx_skb(ring_data, &skb, &bnum);
 		if (unlikely(!skb)) /* this fault cannot be repaired */
 			goto out;
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH net-next 5/9] net: hns: add a space before "*/"
@ 2016-06-27  9:54   ` Yisen Zhuang
  0 siblings, 0 replies; 37+ messages in thread
From: Yisen Zhuang @ 2016-06-27  9:54 UTC (permalink / raw)
  To: linux-arm-kernel

From: Daode Huang <huangdaode@hisilicon.com>

In comment line, some time miss a space before */, so this
patch adds a space before */.

Signed-off-by: Daode Huang <huangdaode@hisilicon.com>
---
 drivers/net/ethernet/hisilicon/hns/hns_enet.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns/hns_enet.c b/drivers/net/ethernet/hisilicon/hns/hns_enet.c
index d5297ec..d7e1f8c 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_enet.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_enet.c
@@ -762,13 +762,13 @@ static int hns_nic_rx_poll_one(struct hns_nic_ring_data *ring_data,
 	recv_pkts = 0, recv_bds = 0, clean_count = 0;
 recv:
 	while (recv_pkts < budget && recv_bds < num) {
-		/* reuse or realloc buffers*/
+		/* reuse or realloc buffers */
 		if (clean_count >= RCB_NOF_ALLOC_RX_BUFF_ONCE) {
 			hns_nic_alloc_rx_buffers(ring_data, clean_count);
 			clean_count = 0;
 		}
 
-		/* poll one pkt*/
+		/* poll one pkt */
 		err = hns_nic_poll_rx_skb(ring_data, &skb, &bnum);
 		if (unlikely(!skb)) /* this fault cannot be repaired */
 			goto out;
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH net-next 6/9] net: hns: normalize two different loop
  2016-06-27  9:54 ` Yisen Zhuang
@ 2016-06-27  9:54   ` Yisen Zhuang
  -1 siblings, 0 replies; 37+ messages in thread
From: Yisen Zhuang @ 2016-06-27  9:54 UTC (permalink / raw)
  To: davem, yisen.zhuang, salil.mehta, yankejian
  Cc: liguozhu, huangdaode, arnd, andriy.shevchenko, andrew,
	geliangtang, ivecera, fengguang.wu, charles.chenxin, netdev,
	linux-kernel, linux-arm-kernel, linuxarm

From: Daode Huang <huangdaode@hisilicon.com>

There are two approaches to assign data, one does 2 loops, another
does 1 loop. This patch normalize the different methods to 1 loop.

Signed-off-by: Daode Huang <huangdaode@hisilicon.com>
---
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
index e36ee22..86ce28a 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
@@ -2567,15 +2567,15 @@ static char *hns_dsaf_get_node_stats_strings(char *data, int node,
 	buff += ETH_GSTRING_LEN;
 	if (node < DSAF_SERVICE_NW_NUM && !is_ver1) {
 		for (i = 0; i < DSAF_PRIO_NR; i++) {
-			snprintf(buff, ETH_GSTRING_LEN,
-				 "inod%d_pfc_prio%d_pkts", node, i);
-			buff += ETH_GSTRING_LEN;
-		}
-		for (i = 0; i < DSAF_PRIO_NR; i++) {
-			snprintf(buff, ETH_GSTRING_LEN,
-				 "onod%d_pfc_prio%d_pkts", node, i);
+			snprintf(buff + 0 * ETH_GSTRING_LEN * DSAF_PRIO_NR,
+				 ETH_GSTRING_LEN, "inod%d_pfc_prio%d_pkts",
+				 node, i);
+			snprintf(buff + 1 * ETH_GSTRING_LEN * DSAF_PRIO_NR,
+				 ETH_GSTRING_LEN, "onod%d_pfc_prio%d_pkts",
+				 node, i);
 			buff += ETH_GSTRING_LEN;
 		}
+		buff += 1 * DSAF_PRIO_NR * ETH_GSTRING_LEN;
 	}
 	snprintf(buff, ETH_GSTRING_LEN, "onnod%d_tx_pkts", node);
 	buff += ETH_GSTRING_LEN;
@@ -2606,8 +2606,8 @@ static u64 *hns_dsaf_get_node_stats(struct dsaf_device *ddev, u64 *data,
 	p[12] = hw_stats->stp_drop;
 	if (node_num < DSAF_SERVICE_NW_NUM && !is_ver1) {
 		for (i = 0; i < DSAF_PRIO_NR; i++) {
-			p[13 + i] = hw_stats->rx_pfc[i];
-			p[13 + i + DSAF_PRIO_NR] = hw_stats->tx_pfc[i];
+			p[13 + i + 0 * DSAF_PRIO_NR] = hw_stats->rx_pfc[i];
+			p[13 + i + 1 * DSAF_PRIO_NR] = hw_stats->tx_pfc[i];
 		}
 		p[29] = hw_stats->tx_pkts;
 		return &p[30];
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH net-next 6/9] net: hns: normalize two different loop
@ 2016-06-27  9:54   ` Yisen Zhuang
  0 siblings, 0 replies; 37+ messages in thread
From: Yisen Zhuang @ 2016-06-27  9:54 UTC (permalink / raw)
  To: linux-arm-kernel

From: Daode Huang <huangdaode@hisilicon.com>

There are two approaches to assign data, one does 2 loops, another
does 1 loop. This patch normalize the different methods to 1 loop.

Signed-off-by: Daode Huang <huangdaode@hisilicon.com>
---
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
index e36ee22..86ce28a 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
@@ -2567,15 +2567,15 @@ static char *hns_dsaf_get_node_stats_strings(char *data, int node,
 	buff += ETH_GSTRING_LEN;
 	if (node < DSAF_SERVICE_NW_NUM && !is_ver1) {
 		for (i = 0; i < DSAF_PRIO_NR; i++) {
-			snprintf(buff, ETH_GSTRING_LEN,
-				 "inod%d_pfc_prio%d_pkts", node, i);
-			buff += ETH_GSTRING_LEN;
-		}
-		for (i = 0; i < DSAF_PRIO_NR; i++) {
-			snprintf(buff, ETH_GSTRING_LEN,
-				 "onod%d_pfc_prio%d_pkts", node, i);
+			snprintf(buff + 0 * ETH_GSTRING_LEN * DSAF_PRIO_NR,
+				 ETH_GSTRING_LEN, "inod%d_pfc_prio%d_pkts",
+				 node, i);
+			snprintf(buff + 1 * ETH_GSTRING_LEN * DSAF_PRIO_NR,
+				 ETH_GSTRING_LEN, "onod%d_pfc_prio%d_pkts",
+				 node, i);
 			buff += ETH_GSTRING_LEN;
 		}
+		buff += 1 * DSAF_PRIO_NR * ETH_GSTRING_LEN;
 	}
 	snprintf(buff, ETH_GSTRING_LEN, "onnod%d_tx_pkts", node);
 	buff += ETH_GSTRING_LEN;
@@ -2606,8 +2606,8 @@ static u64 *hns_dsaf_get_node_stats(struct dsaf_device *ddev, u64 *data,
 	p[12] = hw_stats->stp_drop;
 	if (node_num < DSAF_SERVICE_NW_NUM && !is_ver1) {
 		for (i = 0; i < DSAF_PRIO_NR; i++) {
-			p[13 + i] = hw_stats->rx_pfc[i];
-			p[13 + i + DSAF_PRIO_NR] = hw_stats->tx_pfc[i];
+			p[13 + i + 0 * DSAF_PRIO_NR] = hw_stats->rx_pfc[i];
+			p[13 + i + 1 * DSAF_PRIO_NR] = hw_stats->tx_pfc[i];
 		}
 		p[29] = hw_stats->tx_pkts;
 		return &p[30];
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH net-next 7/9] net: hns: remove redundant hns_mac_dev_to_enet_if()
  2016-06-27  9:54 ` Yisen Zhuang
@ 2016-06-27  9:54   ` Yisen Zhuang
  -1 siblings, 0 replies; 37+ messages in thread
From: Yisen Zhuang @ 2016-06-27  9:54 UTC (permalink / raw)
  To: davem, yisen.zhuang, salil.mehta, yankejian
  Cc: liguozhu, huangdaode, arnd, andriy.shevchenko, andrew,
	geliangtang, ivecera, fengguang.wu, charles.chenxin, netdev,
	linux-kernel, linux-arm-kernel, linuxarm

From: Kejian Yan <yankejian@huawei.com>

The sequence of hns_mac_dev_to_enet_if() is the same as
hns_get_enet_interface(), and hns_get_enet_interface() is called
by initialization to get the mac mode. And the mode is not changed
anywhere. Thus add hns_mac_dev_to_enet_if() function to get the mac
mode is obviously redundant.

Reported-by: Jinchuan Tian <tianjinchuan1@huawei.com>
Signed-off-by: Kejian Yan <yankejian@huawei.com>
---
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c | 15 ---------------
 1 file changed, 15 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c
index c526558..d2effcc 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c
@@ -56,20 +56,6 @@ static const enum mac_mode g_mac_mode_1000[] = {
 	[PHY_INTERFACE_MODE_RTBI]   = MAC_MODE_RTBI_1000
 };
 
-static enum mac_mode hns_mac_dev_to_enet_if(const struct hns_mac_cb *mac_cb)
-{
-	switch (mac_cb->max_speed) {
-	case MAC_SPEED_100:
-		return g_mac_mode_100[mac_cb->phy_if];
-	case MAC_SPEED_1000:
-		return g_mac_mode_1000[mac_cb->phy_if];
-	case MAC_SPEED_10000:
-		return MAC_MODE_XGMII_10000;
-	default:
-		return MAC_MODE_MII_100;
-	}
-}
-
 static enum mac_mode hns_get_enet_interface(const struct hns_mac_cb *mac_cb)
 {
 	switch (mac_cb->max_speed) {
@@ -134,7 +120,6 @@ void hns_mac_adjust_link(struct hns_mac_cb *mac_cb, int speed, int duplex)
 
 	mac_cb->speed = speed;
 	mac_cb->half_duplex = !duplex;
-	mac_ctrl_drv->mac_mode = hns_mac_dev_to_enet_if(mac_cb);
 
 	if (mac_ctrl_drv->adjust_link) {
 		ret = mac_ctrl_drv->adjust_link(mac_ctrl_drv,
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH net-next 7/9] net: hns: remove redundant hns_mac_dev_to_enet_if()
@ 2016-06-27  9:54   ` Yisen Zhuang
  0 siblings, 0 replies; 37+ messages in thread
From: Yisen Zhuang @ 2016-06-27  9:54 UTC (permalink / raw)
  To: linux-arm-kernel

From: Kejian Yan <yankejian@huawei.com>

The sequence of hns_mac_dev_to_enet_if() is the same as
hns_get_enet_interface(), and hns_get_enet_interface() is called
by initialization to get the mac mode. And the mode is not changed
anywhere. Thus add hns_mac_dev_to_enet_if() function to get the mac
mode is obviously redundant.

Reported-by: Jinchuan Tian <tianjinchuan1@huawei.com>
Signed-off-by: Kejian Yan <yankejian@huawei.com>
---
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c | 15 ---------------
 1 file changed, 15 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c
index c526558..d2effcc 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c
@@ -56,20 +56,6 @@ static const enum mac_mode g_mac_mode_1000[] = {
 	[PHY_INTERFACE_MODE_RTBI]   = MAC_MODE_RTBI_1000
 };
 
-static enum mac_mode hns_mac_dev_to_enet_if(const struct hns_mac_cb *mac_cb)
-{
-	switch (mac_cb->max_speed) {
-	case MAC_SPEED_100:
-		return g_mac_mode_100[mac_cb->phy_if];
-	case MAC_SPEED_1000:
-		return g_mac_mode_1000[mac_cb->phy_if];
-	case MAC_SPEED_10000:
-		return MAC_MODE_XGMII_10000;
-	default:
-		return MAC_MODE_MII_100;
-	}
-}
-
 static enum mac_mode hns_get_enet_interface(const struct hns_mac_cb *mac_cb)
 {
 	switch (mac_cb->max_speed) {
@@ -134,7 +120,6 @@ void hns_mac_adjust_link(struct hns_mac_cb *mac_cb, int speed, int duplex)
 
 	mac_cb->speed = speed;
 	mac_cb->half_duplex = !duplex;
-	mac_ctrl_drv->mac_mode = hns_mac_dev_to_enet_if(mac_cb);
 
 	if (mac_ctrl_drv->adjust_link) {
 		ret = mac_ctrl_drv->adjust_link(mac_ctrl_drv,
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH net-next 8/9] net: hns: add media-type property for hns
  2016-06-27  9:54 ` Yisen Zhuang
@ 2016-06-27  9:54   ` Yisen Zhuang
  -1 siblings, 0 replies; 37+ messages in thread
From: Yisen Zhuang @ 2016-06-27  9:54 UTC (permalink / raw)
  To: davem, yisen.zhuang, salil.mehta, yankejian
  Cc: liguozhu, huangdaode, arnd, andriy.shevchenko, andrew,
	geliangtang, ivecera, fengguang.wu, charles.chenxin, netdev,
	linux-kernel, linux-arm-kernel, linuxarm

From: Kejian Yan <yankejian@huawei.com>

It is PORT_TP type if the service port is GE mode. It is wrong to
judge the port type by using if it is service port. Adding the media
type to know port type.

Reported-by: Jinchuan Tian <tianjinchuan1@huawei.com>
Signed-off-by: Kejian Yan <yankejian@huawei.com>
---
 drivers/net/ethernet/hisilicon/hns/hnae.h         |  9 ++++++++
 drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c |  1 +
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c | 26 +++++++++++++++++++++++
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h |  1 +
 drivers/net/ethernet/hisilicon/hns/hns_ethtool.c  | 14 +++++++++---
 5 files changed, 48 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns/hnae.h b/drivers/net/ethernet/hisilicon/hns/hnae.h
index 3869322..e093cbf 100644
--- a/drivers/net/ethernet/hisilicon/hns/hnae.h
+++ b/drivers/net/ethernet/hisilicon/hns/hnae.h
@@ -363,6 +363,14 @@ enum hnae_port_type {
 	HNAE_PORT_DEBUG
 };
 
+/* mac media type */
+enum hnae_media_type {
+	HNAE_MEDIA_TYPE_UNKNOWN = 0,
+	HNAE_MEDIA_TYPE_FIBER,
+	HNAE_MEDIA_TYPE_COPPER,
+	HNAE_MEDIA_TYPE_BACKPLANE,
+};
+
 /* This struct defines the operation on the handle.
  *
  * get_handle(): (mandatory)
@@ -525,6 +533,7 @@ struct hnae_handle {
 	u32 eport_id;
 	u32 dport_id;	/* v2 tx bd should fill the dport_id */
 	enum hnae_port_type port_type;
+	enum hnae_media_type media_type;
 	struct list_head node;    /* list to hnae_ae_dev->handle_list */
 	struct hnae_buf_ops *bops; /* operation for the buffer */
 	struct hnae_queue **qs;  /* array base of all queues */
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c b/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c
index 835521b..e28d960 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c
@@ -134,6 +134,7 @@ struct hnae_handle *hns_ae_get_handle(struct hnae_ae_dev *dev,
 	ae_handle->phy_dev = vf_cb->mac_cb->phy_dev;
 	ae_handle->if_support = vf_cb->mac_cb->if_support;
 	ae_handle->port_type = vf_cb->mac_cb->mac_type;
+	ae_handle->media_type = vf_cb->mac_cb->media_type;
 	ae_handle->dport_id = port_id;
 
 	return ae_handle;
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c
index d2effcc..3fb87e2 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c
@@ -733,6 +733,18 @@ static void hns_mac_register_phy(struct hns_mac_cb *mac_cb)
 			mac_cb->mac_id, addr);
 }
 
+#define MAC_MEDIA_TYPE_MAX_LEN		16
+
+static const struct {
+	enum hnae_media_type value;
+	const char *name;
+} media_type_defs[] = {
+	{HNAE_MEDIA_TYPE_UNKNOWN,	"unknown" },
+	{HNAE_MEDIA_TYPE_FIBER,		"fiber" },
+	{HNAE_MEDIA_TYPE_COPPER,	"copper" },
+	{HNAE_MEDIA_TYPE_BACKPLANE,	"backplane" },
+};
+
 /**
  *hns_mac_get_info  - get mac information from device node
  *@mac_cb: mac device
@@ -744,10 +756,13 @@ static int  hns_mac_get_info(struct hns_mac_cb *mac_cb)
 	struct device_node *np;
 	struct regmap *syscon;
 	struct of_phandle_args cpld_args;
+	const char *media_type;
+	u32 i;
 	u32 ret;
 
 	mac_cb->link = false;
 	mac_cb->half_duplex = false;
+	mac_cb->media_type = HNAE_MEDIA_TYPE_UNKNOWN;
 	mac_cb->speed = mac_phy_to_speed[mac_cb->phy_if];
 	mac_cb->max_speed = mac_cb->speed;
 
@@ -849,6 +864,17 @@ static int  hns_mac_get_info(struct hns_mac_cb *mac_cb)
 			mac_cb->mac_id);
 	}
 
+	if (!fwnode_property_read_string(mac_cb->fw_port, "media-type",
+					 &media_type)) {
+		for (i = 0; i < ARRAY_SIZE(media_type_defs); i++) {
+			if (!strncmp(media_type_defs[i].name, media_type,
+				     MAC_MEDIA_TYPE_MAX_LEN)) {
+				mac_cb->media_type = media_type_defs[i].value;
+				break;
+			}
+		}
+	}
+
 	return 0;
 }
 
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h
index 05a6e8f..4cbdf14 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h
@@ -335,6 +335,7 @@ struct hns_mac_cb {
 	u64 txpkt_for_led;
 	u64 rxpkt_for_led;
 	enum hnae_port_type mac_type;
+	enum hnae_media_type media_type;
 	phy_interface_t phy_if;
 	enum hnae_loop loop_mode;
 
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c b/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c
index a395ca1..ab33487 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c
@@ -165,13 +165,21 @@ static int hns_nic_get_settings(struct net_device *net_dev,
 		cmd->advertising |= ADVERTISED_10000baseKR_Full;
 	}
 
-	if (h->port_type == HNAE_PORT_SERVICE) {
+	switch (h->media_type) {
+	case HNAE_MEDIA_TYPE_FIBER:
 		cmd->port = PORT_FIBRE;
-		cmd->supported |= SUPPORTED_Pause;
-	} else {
+		break;
+	case HNAE_MEDIA_TYPE_COPPER:
 		cmd->port = PORT_TP;
+		break;
+	case HNAE_MEDIA_TYPE_UNKNOWN:
+	default:
+		break;
 	}
 
+	if (!(AE_IS_VER1(priv->enet_ver) && h->port_type == HNAE_PORT_DEBUG))
+		cmd->supported |= SUPPORTED_Pause;
+
 	cmd->transceiver = XCVR_EXTERNAL;
 	cmd->mdio_support = (ETH_MDIO_SUPPORTS_C45 | ETH_MDIO_SUPPORTS_C22);
 	hns_get_mdix_mode(net_dev, cmd);
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH net-next 8/9] net: hns: add media-type property for hns
@ 2016-06-27  9:54   ` Yisen Zhuang
  0 siblings, 0 replies; 37+ messages in thread
From: Yisen Zhuang @ 2016-06-27  9:54 UTC (permalink / raw)
  To: linux-arm-kernel

From: Kejian Yan <yankejian@huawei.com>

It is PORT_TP type if the service port is GE mode. It is wrong to
judge the port type by using if it is service port. Adding the media
type to know port type.

Reported-by: Jinchuan Tian <tianjinchuan1@huawei.com>
Signed-off-by: Kejian Yan <yankejian@huawei.com>
---
 drivers/net/ethernet/hisilicon/hns/hnae.h         |  9 ++++++++
 drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c |  1 +
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c | 26 +++++++++++++++++++++++
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h |  1 +
 drivers/net/ethernet/hisilicon/hns/hns_ethtool.c  | 14 +++++++++---
 5 files changed, 48 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns/hnae.h b/drivers/net/ethernet/hisilicon/hns/hnae.h
index 3869322..e093cbf 100644
--- a/drivers/net/ethernet/hisilicon/hns/hnae.h
+++ b/drivers/net/ethernet/hisilicon/hns/hnae.h
@@ -363,6 +363,14 @@ enum hnae_port_type {
 	HNAE_PORT_DEBUG
 };
 
+/* mac media type */
+enum hnae_media_type {
+	HNAE_MEDIA_TYPE_UNKNOWN = 0,
+	HNAE_MEDIA_TYPE_FIBER,
+	HNAE_MEDIA_TYPE_COPPER,
+	HNAE_MEDIA_TYPE_BACKPLANE,
+};
+
 /* This struct defines the operation on the handle.
  *
  * get_handle(): (mandatory)
@@ -525,6 +533,7 @@ struct hnae_handle {
 	u32 eport_id;
 	u32 dport_id;	/* v2 tx bd should fill the dport_id */
 	enum hnae_port_type port_type;
+	enum hnae_media_type media_type;
 	struct list_head node;    /* list to hnae_ae_dev->handle_list */
 	struct hnae_buf_ops *bops; /* operation for the buffer */
 	struct hnae_queue **qs;  /* array base of all queues */
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c b/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c
index 835521b..e28d960 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c
@@ -134,6 +134,7 @@ struct hnae_handle *hns_ae_get_handle(struct hnae_ae_dev *dev,
 	ae_handle->phy_dev = vf_cb->mac_cb->phy_dev;
 	ae_handle->if_support = vf_cb->mac_cb->if_support;
 	ae_handle->port_type = vf_cb->mac_cb->mac_type;
+	ae_handle->media_type = vf_cb->mac_cb->media_type;
 	ae_handle->dport_id = port_id;
 
 	return ae_handle;
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c
index d2effcc..3fb87e2 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c
@@ -733,6 +733,18 @@ static void hns_mac_register_phy(struct hns_mac_cb *mac_cb)
 			mac_cb->mac_id, addr);
 }
 
+#define MAC_MEDIA_TYPE_MAX_LEN		16
+
+static const struct {
+	enum hnae_media_type value;
+	const char *name;
+} media_type_defs[] = {
+	{HNAE_MEDIA_TYPE_UNKNOWN,	"unknown" },
+	{HNAE_MEDIA_TYPE_FIBER,		"fiber" },
+	{HNAE_MEDIA_TYPE_COPPER,	"copper" },
+	{HNAE_MEDIA_TYPE_BACKPLANE,	"backplane" },
+};
+
 /**
  *hns_mac_get_info  - get mac information from device node
  *@mac_cb: mac device
@@ -744,10 +756,13 @@ static int  hns_mac_get_info(struct hns_mac_cb *mac_cb)
 	struct device_node *np;
 	struct regmap *syscon;
 	struct of_phandle_args cpld_args;
+	const char *media_type;
+	u32 i;
 	u32 ret;
 
 	mac_cb->link = false;
 	mac_cb->half_duplex = false;
+	mac_cb->media_type = HNAE_MEDIA_TYPE_UNKNOWN;
 	mac_cb->speed = mac_phy_to_speed[mac_cb->phy_if];
 	mac_cb->max_speed = mac_cb->speed;
 
@@ -849,6 +864,17 @@ static int  hns_mac_get_info(struct hns_mac_cb *mac_cb)
 			mac_cb->mac_id);
 	}
 
+	if (!fwnode_property_read_string(mac_cb->fw_port, "media-type",
+					 &media_type)) {
+		for (i = 0; i < ARRAY_SIZE(media_type_defs); i++) {
+			if (!strncmp(media_type_defs[i].name, media_type,
+				     MAC_MEDIA_TYPE_MAX_LEN)) {
+				mac_cb->media_type = media_type_defs[i].value;
+				break;
+			}
+		}
+	}
+
 	return 0;
 }
 
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h
index 05a6e8f..4cbdf14 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h
@@ -335,6 +335,7 @@ struct hns_mac_cb {
 	u64 txpkt_for_led;
 	u64 rxpkt_for_led;
 	enum hnae_port_type mac_type;
+	enum hnae_media_type media_type;
 	phy_interface_t phy_if;
 	enum hnae_loop loop_mode;
 
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c b/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c
index a395ca1..ab33487 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c
@@ -165,13 +165,21 @@ static int hns_nic_get_settings(struct net_device *net_dev,
 		cmd->advertising |= ADVERTISED_10000baseKR_Full;
 	}
 
-	if (h->port_type == HNAE_PORT_SERVICE) {
+	switch (h->media_type) {
+	case HNAE_MEDIA_TYPE_FIBER:
 		cmd->port = PORT_FIBRE;
-		cmd->supported |= SUPPORTED_Pause;
-	} else {
+		break;
+	case HNAE_MEDIA_TYPE_COPPER:
 		cmd->port = PORT_TP;
+		break;
+	case HNAE_MEDIA_TYPE_UNKNOWN:
+	default:
+		break;
 	}
 
+	if (!(AE_IS_VER1(priv->enet_ver) && h->port_type == HNAE_PORT_DEBUG))
+		cmd->supported |= SUPPORTED_Pause;
+
 	cmd->transceiver = XCVR_EXTERNAL;
 	cmd->mdio_support = (ETH_MDIO_SUPPORTS_C45 | ETH_MDIO_SUPPORTS_C22);
 	hns_get_mdix_mode(net_dev, cmd);
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH net-next 9/9] net: hns: get reset registers from DT
  2016-06-27  9:54 ` Yisen Zhuang
@ 2016-06-27  9:54   ` Yisen Zhuang
  -1 siblings, 0 replies; 37+ messages in thread
From: Yisen Zhuang @ 2016-06-27  9:54 UTC (permalink / raw)
  To: davem, yisen.zhuang, salil.mehta, yankejian
  Cc: liguozhu, huangdaode, arnd, andriy.shevchenko, andrew,
	geliangtang, ivecera, fengguang.wu, charles.chenxin, netdev,
	linux-kernel, linux-arm-kernel, linuxarm

From: Kejian Yan <yankejian@huawei.com>

Since the registers of subctrl may be different, it is better to
mv the registers from hns mdio driver routine to device tree node.

Signed-off-by: Kejian Yan <yankejian@huawei.com>
---
 drivers/net/ethernet/hisilicon/hns_mdio.c | 80 +++++++++++++++++++++++++------
 1 file changed, 66 insertions(+), 14 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns_mdio.c b/drivers/net/ethernet/hisilicon/hns_mdio.c
index 761a32f..988ad69 100644
--- a/drivers/net/ethernet/hisilicon/hns_mdio.c
+++ b/drivers/net/ethernet/hisilicon/hns_mdio.c
@@ -37,9 +37,19 @@
 
 #define MDIO_TIMEOUT			1000000
 
+struct hns_mdio_sc_reg {
+	u16 mdio_clk_en;
+	u16 mdio_clk_dis;
+	u16 mdio_reset_req;
+	u16 mdio_reset_dreq;
+	u16 mdio_clk_st;
+	u16 mdio_reset_st;
+};
+
 struct hns_mdio_device {
 	void *vbase;		/* mdio reg base address */
 	struct regmap *subctrl_vbase;
+	struct hns_mdio_sc_reg sc_reg;
 };
 
 /* mdio reg */
@@ -93,7 +103,6 @@ enum mdio_c45_op_seq {
 #define MDIO_SC_CLK_DIS		0x33C
 #define MDIO_SC_RESET_REQ	0xA38
 #define MDIO_SC_RESET_DREQ	0xA3C
-#define MDIO_SC_CTRL		0x2010
 #define MDIO_SC_CLK_ST		0x531C
 #define MDIO_SC_RESET_ST	0x5A1C
 
@@ -353,6 +362,7 @@ static int hns_mdio_read(struct mii_bus *bus, int phy_id, int regnum)
 static int hns_mdio_reset(struct mii_bus *bus)
 {
 	struct hns_mdio_device *mdio_dev = (struct hns_mdio_device *)bus->priv;
+	const struct hns_mdio_sc_reg *sc_reg;
 	int ret;
 
 	if (dev_of_node(bus->parent)) {
@@ -361,9 +371,10 @@ static int hns_mdio_reset(struct mii_bus *bus)
 			return -ENODEV;
 		}
 
+	sc_reg = &mdio_dev->sc_reg;
 		/* 1. reset req, and read reset st check */
-		ret = mdio_sc_cfg_reg_write(mdio_dev, MDIO_SC_RESET_REQ, 0x1,
-					    MDIO_SC_RESET_ST, 0x1,
+	ret = mdio_sc_cfg_reg_write(mdio_dev, sc_reg->mdio_reset_req, 0x1,
+				    sc_reg->mdio_reset_st, 0x1,
 					    MDIO_CHECK_SET_ST);
 		if (ret) {
 			dev_err(&bus->dev, "MDIO reset fail\n");
@@ -371,8 +382,8 @@ static int hns_mdio_reset(struct mii_bus *bus)
 		}
 
 		/* 2. dis clk, and read clk st check */
-		ret = mdio_sc_cfg_reg_write(mdio_dev, MDIO_SC_CLK_DIS,
-					    0x1, MDIO_SC_CLK_ST, 0x1,
+	ret = mdio_sc_cfg_reg_write(mdio_dev, sc_reg->mdio_clk_dis,
+				    0x1, sc_reg->mdio_clk_st, 0x1,
 					    MDIO_CHECK_CLR_ST);
 		if (ret) {
 			dev_err(&bus->dev, "MDIO dis clk fail\n");
@@ -380,8 +391,8 @@ static int hns_mdio_reset(struct mii_bus *bus)
 		}
 
 		/* 3. reset dreq, and read reset st check */
-		ret = mdio_sc_cfg_reg_write(mdio_dev, MDIO_SC_RESET_DREQ, 0x1,
-					    MDIO_SC_RESET_ST, 0x1,
+	ret = mdio_sc_cfg_reg_write(mdio_dev, sc_reg->mdio_reset_dreq, 0x1,
+				    sc_reg->mdio_reset_st, 0x1,
 					    MDIO_CHECK_CLR_ST);
 		if (ret) {
 			dev_err(&bus->dev, "MDIO dis clk fail\n");
@@ -389,8 +400,8 @@ static int hns_mdio_reset(struct mii_bus *bus)
 		}
 
 		/* 4. en clk, and read clk st check */
-		ret = mdio_sc_cfg_reg_write(mdio_dev, MDIO_SC_CLK_EN,
-					    0x1, MDIO_SC_CLK_ST, 0x1,
+	ret = mdio_sc_cfg_reg_write(mdio_dev, sc_reg->mdio_clk_en,
+				    0x1, sc_reg->mdio_clk_st, 0x1,
 					    MDIO_CHECK_SET_ST);
 		if (ret)
 			dev_err(&bus->dev, "MDIO en clk fail\n");
@@ -458,13 +469,54 @@ static int hns_mdio_probe(struct platform_device *pdev)
 	snprintf(new_bus->id, MII_BUS_ID_SIZE, "%s-%s", "Mii",
 		 dev_name(&pdev->dev));
 	if (dev_of_node(&pdev->dev)) {
-		mdio_dev->subctrl_vbase = syscon_node_to_regmap(
-			of_parse_phandle(pdev->dev.of_node,
-					 "subctrl-vbase", 0));
-		if (IS_ERR(mdio_dev->subctrl_vbase)) {
-			dev_warn(&pdev->dev, "no syscon hisilicon,peri-c-subctrl\n");
+		struct of_phandle_args reg_args;
+
+		ret = of_parse_phandle_with_fixed_args(pdev->dev.of_node,
+						       "subctrl-vbase",
+						       4,
+						       0,
+						       &reg_args);
+		if (!ret) {
+			mdio_dev->subctrl_vbase =
+				syscon_node_to_regmap(reg_args.np);
+			if (IS_ERR(mdio_dev->subctrl_vbase)) {
+				dev_warn(&pdev->dev, "syscon_node_to_regmap error\n");
+				mdio_dev->subctrl_vbase = NULL;
+			} else {
+				if (reg_args.args_count == 4) {
+					mdio_dev->sc_reg.mdio_clk_en =
+						(u16)reg_args.args[0];
+					mdio_dev->sc_reg.mdio_clk_dis =
+						(u16)reg_args.args[0] + 4;
+					mdio_dev->sc_reg.mdio_reset_req =
+						(u16)reg_args.args[1];
+					mdio_dev->sc_reg.mdio_reset_dreq =
+						(u16)reg_args.args[1] + 4;
+					mdio_dev->sc_reg.mdio_clk_st =
+						(u16)reg_args.args[2];
+					mdio_dev->sc_reg.mdio_reset_st =
+						(u16)reg_args.args[3];
+				} else {
+					/* for compatible */
+					mdio_dev->sc_reg.mdio_clk_en =
+						MDIO_SC_CLK_EN;
+					mdio_dev->sc_reg.mdio_clk_dis =
+						MDIO_SC_CLK_DIS;
+					mdio_dev->sc_reg.mdio_reset_req =
+						MDIO_SC_RESET_REQ;
+					mdio_dev->sc_reg.mdio_reset_dreq =
+						MDIO_SC_RESET_DREQ;
+					mdio_dev->sc_reg.mdio_clk_st =
+						MDIO_SC_CLK_ST;
+					mdio_dev->sc_reg.mdio_reset_st =
+						MDIO_SC_RESET_ST;
+				}
+			}
+		} else {
+			dev_warn(&pdev->dev, "find syscon ret = %#x\n", ret);
 			mdio_dev->subctrl_vbase = NULL;
 		}
+
 		ret = of_mdiobus_register(new_bus, pdev->dev.of_node);
 	} else if (is_acpi_node(pdev->dev.fwnode)) {
 		/* Clear all the IRQ properties */
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH net-next 9/9] net: hns: get reset registers from DT
@ 2016-06-27  9:54   ` Yisen Zhuang
  0 siblings, 0 replies; 37+ messages in thread
From: Yisen Zhuang @ 2016-06-27  9:54 UTC (permalink / raw)
  To: linux-arm-kernel

From: Kejian Yan <yankejian@huawei.com>

Since the registers of subctrl may be different, it is better to
mv the registers from hns mdio driver routine to device tree node.

Signed-off-by: Kejian Yan <yankejian@huawei.com>
---
 drivers/net/ethernet/hisilicon/hns_mdio.c | 80 +++++++++++++++++++++++++------
 1 file changed, 66 insertions(+), 14 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns_mdio.c b/drivers/net/ethernet/hisilicon/hns_mdio.c
index 761a32f..988ad69 100644
--- a/drivers/net/ethernet/hisilicon/hns_mdio.c
+++ b/drivers/net/ethernet/hisilicon/hns_mdio.c
@@ -37,9 +37,19 @@
 
 #define MDIO_TIMEOUT			1000000
 
+struct hns_mdio_sc_reg {
+	u16 mdio_clk_en;
+	u16 mdio_clk_dis;
+	u16 mdio_reset_req;
+	u16 mdio_reset_dreq;
+	u16 mdio_clk_st;
+	u16 mdio_reset_st;
+};
+
 struct hns_mdio_device {
 	void *vbase;		/* mdio reg base address */
 	struct regmap *subctrl_vbase;
+	struct hns_mdio_sc_reg sc_reg;
 };
 
 /* mdio reg */
@@ -93,7 +103,6 @@ enum mdio_c45_op_seq {
 #define MDIO_SC_CLK_DIS		0x33C
 #define MDIO_SC_RESET_REQ	0xA38
 #define MDIO_SC_RESET_DREQ	0xA3C
-#define MDIO_SC_CTRL		0x2010
 #define MDIO_SC_CLK_ST		0x531C
 #define MDIO_SC_RESET_ST	0x5A1C
 
@@ -353,6 +362,7 @@ static int hns_mdio_read(struct mii_bus *bus, int phy_id, int regnum)
 static int hns_mdio_reset(struct mii_bus *bus)
 {
 	struct hns_mdio_device *mdio_dev = (struct hns_mdio_device *)bus->priv;
+	const struct hns_mdio_sc_reg *sc_reg;
 	int ret;
 
 	if (dev_of_node(bus->parent)) {
@@ -361,9 +371,10 @@ static int hns_mdio_reset(struct mii_bus *bus)
 			return -ENODEV;
 		}
 
+	sc_reg = &mdio_dev->sc_reg;
 		/* 1. reset req, and read reset st check */
-		ret = mdio_sc_cfg_reg_write(mdio_dev, MDIO_SC_RESET_REQ, 0x1,
-					    MDIO_SC_RESET_ST, 0x1,
+	ret = mdio_sc_cfg_reg_write(mdio_dev, sc_reg->mdio_reset_req, 0x1,
+				    sc_reg->mdio_reset_st, 0x1,
 					    MDIO_CHECK_SET_ST);
 		if (ret) {
 			dev_err(&bus->dev, "MDIO reset fail\n");
@@ -371,8 +382,8 @@ static int hns_mdio_reset(struct mii_bus *bus)
 		}
 
 		/* 2. dis clk, and read clk st check */
-		ret = mdio_sc_cfg_reg_write(mdio_dev, MDIO_SC_CLK_DIS,
-					    0x1, MDIO_SC_CLK_ST, 0x1,
+	ret = mdio_sc_cfg_reg_write(mdio_dev, sc_reg->mdio_clk_dis,
+				    0x1, sc_reg->mdio_clk_st, 0x1,
 					    MDIO_CHECK_CLR_ST);
 		if (ret) {
 			dev_err(&bus->dev, "MDIO dis clk fail\n");
@@ -380,8 +391,8 @@ static int hns_mdio_reset(struct mii_bus *bus)
 		}
 
 		/* 3. reset dreq, and read reset st check */
-		ret = mdio_sc_cfg_reg_write(mdio_dev, MDIO_SC_RESET_DREQ, 0x1,
-					    MDIO_SC_RESET_ST, 0x1,
+	ret = mdio_sc_cfg_reg_write(mdio_dev, sc_reg->mdio_reset_dreq, 0x1,
+				    sc_reg->mdio_reset_st, 0x1,
 					    MDIO_CHECK_CLR_ST);
 		if (ret) {
 			dev_err(&bus->dev, "MDIO dis clk fail\n");
@@ -389,8 +400,8 @@ static int hns_mdio_reset(struct mii_bus *bus)
 		}
 
 		/* 4. en clk, and read clk st check */
-		ret = mdio_sc_cfg_reg_write(mdio_dev, MDIO_SC_CLK_EN,
-					    0x1, MDIO_SC_CLK_ST, 0x1,
+	ret = mdio_sc_cfg_reg_write(mdio_dev, sc_reg->mdio_clk_en,
+				    0x1, sc_reg->mdio_clk_st, 0x1,
 					    MDIO_CHECK_SET_ST);
 		if (ret)
 			dev_err(&bus->dev, "MDIO en clk fail\n");
@@ -458,13 +469,54 @@ static int hns_mdio_probe(struct platform_device *pdev)
 	snprintf(new_bus->id, MII_BUS_ID_SIZE, "%s-%s", "Mii",
 		 dev_name(&pdev->dev));
 	if (dev_of_node(&pdev->dev)) {
-		mdio_dev->subctrl_vbase = syscon_node_to_regmap(
-			of_parse_phandle(pdev->dev.of_node,
-					 "subctrl-vbase", 0));
-		if (IS_ERR(mdio_dev->subctrl_vbase)) {
-			dev_warn(&pdev->dev, "no syscon hisilicon,peri-c-subctrl\n");
+		struct of_phandle_args reg_args;
+
+		ret = of_parse_phandle_with_fixed_args(pdev->dev.of_node,
+						       "subctrl-vbase",
+						       4,
+						       0,
+						       &reg_args);
+		if (!ret) {
+			mdio_dev->subctrl_vbase =
+				syscon_node_to_regmap(reg_args.np);
+			if (IS_ERR(mdio_dev->subctrl_vbase)) {
+				dev_warn(&pdev->dev, "syscon_node_to_regmap error\n");
+				mdio_dev->subctrl_vbase = NULL;
+			} else {
+				if (reg_args.args_count == 4) {
+					mdio_dev->sc_reg.mdio_clk_en =
+						(u16)reg_args.args[0];
+					mdio_dev->sc_reg.mdio_clk_dis =
+						(u16)reg_args.args[0] + 4;
+					mdio_dev->sc_reg.mdio_reset_req =
+						(u16)reg_args.args[1];
+					mdio_dev->sc_reg.mdio_reset_dreq =
+						(u16)reg_args.args[1] + 4;
+					mdio_dev->sc_reg.mdio_clk_st =
+						(u16)reg_args.args[2];
+					mdio_dev->sc_reg.mdio_reset_st =
+						(u16)reg_args.args[3];
+				} else {
+					/* for compatible */
+					mdio_dev->sc_reg.mdio_clk_en =
+						MDIO_SC_CLK_EN;
+					mdio_dev->sc_reg.mdio_clk_dis =
+						MDIO_SC_CLK_DIS;
+					mdio_dev->sc_reg.mdio_reset_req =
+						MDIO_SC_RESET_REQ;
+					mdio_dev->sc_reg.mdio_reset_dreq =
+						MDIO_SC_RESET_DREQ;
+					mdio_dev->sc_reg.mdio_clk_st =
+						MDIO_SC_CLK_ST;
+					mdio_dev->sc_reg.mdio_reset_st =
+						MDIO_SC_RESET_ST;
+				}
+			}
+		} else {
+			dev_warn(&pdev->dev, "find syscon ret = %#x\n", ret);
 			mdio_dev->subctrl_vbase = NULL;
 		}
+
 		ret = of_mdiobus_register(new_bus, pdev->dev.of_node);
 	} else if (is_acpi_node(pdev->dev.fwnode)) {
 		/* Clear all the IRQ properties */
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* Re: [PATCH net-next 6/9] net: hns: normalize two different loop
  2016-06-27  9:54   ` Yisen Zhuang
@ 2016-06-27 11:49     ` Joe Perches
  -1 siblings, 0 replies; 37+ messages in thread
From: Joe Perches @ 2016-06-27 11:49 UTC (permalink / raw)
  To: Yisen Zhuang, davem, salil.mehta, yankejian
  Cc: liguozhu, huangdaode, arnd, andriy.shevchenko, andrew,
	geliangtang, ivecera, fengguang.wu, charles.chenxin, netdev,
	linux-kernel, linux-arm-kernel, linuxarm

On Mon, 2016-06-27 at 17:54 +0800, Yisen Zhuang wrote:
> From: Daode Huang <huangdaode@hisilicon.com>
> 
> There are two approaches to assign data, one does 2 loops, another
> does 1 loop. This patch normalize the different methods to 1 loop.
[]
> diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
[]
> @@ -2567,15 +2567,15 @@ static char *hns_dsaf_get_node_stats_strings(char *data, int node,
>  	buff += ETH_GSTRING_LEN;
>  	if (node < DSAF_SERVICE_NW_NUM && !is_ver1) {
>  		for (i = 0; i < DSAF_PRIO_NR; i++) {
> -			snprintf(buff, ETH_GSTRING_LEN,
> -				 "inod%d_pfc_prio%d_pkts", node, i);
> -			buff += ETH_GSTRING_LEN;
> -		}
> -		for (i = 0; i < DSAF_PRIO_NR; i++) {
> -			snprintf(buff, ETH_GSTRING_LEN,
> -				 "onod%d_pfc_prio%d_pkts", node, i);
> +			snprintf(buff + 0 * ETH_GSTRING_LEN * DSAF_PRIO_NR,
> +				 ETH_GSTRING_LEN, "inod%d_pfc_prio%d_pkts",
> +				 node, i);
> +			snprintf(buff + 1 * ETH_GSTRING_LEN * DSAF_PRIO_NR,
> +				 ETH_GSTRING_LEN, "onod%d_pfc_prio%d_pkts",
> +				 node, i);
>  			buff += ETH_GSTRING_LEN;

This looks odd and likely incorrect.

>  		}
> +		buff += 1 * DSAF_PRIO_NR * ETH_GSTRING_LEN;
>  	}

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PATCH net-next 6/9] net: hns: normalize two different loop
@ 2016-06-27 11:49     ` Joe Perches
  0 siblings, 0 replies; 37+ messages in thread
From: Joe Perches @ 2016-06-27 11:49 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, 2016-06-27 at 17:54 +0800, Yisen Zhuang wrote:
> From: Daode Huang <huangdaode@hisilicon.com>
> 
> There are two approaches to assign data, one does 2 loops, another
> does 1 loop. This patch normalize the different methods to 1 loop.
[]
> diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
[]
> @@ -2567,15 +2567,15 @@ static char *hns_dsaf_get_node_stats_strings(char *data, int node,
> ?	buff += ETH_GSTRING_LEN;
> ?	if (node < DSAF_SERVICE_NW_NUM && !is_ver1) {
> ?		for (i = 0; i < DSAF_PRIO_NR; i++) {
> -			snprintf(buff, ETH_GSTRING_LEN,
> -				?"inod%d_pfc_prio%d_pkts", node, i);
> -			buff += ETH_GSTRING_LEN;
> -		}
> -		for (i = 0; i < DSAF_PRIO_NR; i++) {
> -			snprintf(buff, ETH_GSTRING_LEN,
> -				?"onod%d_pfc_prio%d_pkts", node, i);
> +			snprintf(buff + 0 * ETH_GSTRING_LEN * DSAF_PRIO_NR,
> +				?ETH_GSTRING_LEN, "inod%d_pfc_prio%d_pkts",
> +				?node, i);
> +			snprintf(buff + 1 * ETH_GSTRING_LEN * DSAF_PRIO_NR,
> +				?ETH_GSTRING_LEN, "onod%d_pfc_prio%d_pkts",
> +				?node, i);
> ?			buff += ETH_GSTRING_LEN;

This looks odd and likely incorrect.

> ?		}
> +		buff += 1 * DSAF_PRIO_NR * ETH_GSTRING_LEN;
> ?	}

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH net-next 6/9] net: hns: normalize two different loop
  2016-06-27 11:49     ` Joe Perches
@ 2016-06-27 12:00       ` Andy Shevchenko
  -1 siblings, 0 replies; 37+ messages in thread
From: Andy Shevchenko @ 2016-06-27 12:00 UTC (permalink / raw)
  To: Joe Perches, Yisen Zhuang, davem, salil.mehta, yankejian
  Cc: liguozhu, huangdaode, arnd, andrew, geliangtang, ivecera,
	fengguang.wu, charles.chenxin, netdev, linux-kernel,
	linux-arm-kernel, linuxarm

On Mon, 2016-06-27 at 04:49 -0700, Joe Perches wrote:
> On Mon, 2016-06-27 at 17:54 +0800, Yisen Zhuang wrote:
> > From: Daode Huang <huangdaode@hisilicon.com>
> > 
> > There are two approaches to assign data, one does 2 loops, another
> > does 1 loop. This patch normalize the different methods to 1 loop.
> []
> > diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
> > b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
> []
> > @@ -2567,15 +2567,15 @@ static char
> > *hns_dsaf_get_node_stats_strings(char *data, int node,
> >  	buff += ETH_GSTRING_LEN;
> >  	if (node < DSAF_SERVICE_NW_NUM && !is_ver1) {
> >  		for (i = 0; i < DSAF_PRIO_NR; i++) {
> > -			snprintf(buff, ETH_GSTRING_LEN,
> > -				 "inod%d_pfc_prio%d_pkts", node,
> > i);
> > -			buff += ETH_GSTRING_LEN;
> > -		}
> > -		for (i = 0; i < DSAF_PRIO_NR; i++) {
> > -			snprintf(buff, ETH_GSTRING_LEN,
> > -				 "onod%d_pfc_prio%d_pkts", node,
> > i);
> > +			snprintf(buff + 0 * ETH_GSTRING_LEN *
> > DSAF_PRIO_NR,
> > +				 ETH_GSTRING_LEN,
> > "inod%d_pfc_prio%d_pkts",
> > +				 node, i);
> > +			snprintf(buff + 1 * ETH_GSTRING_LEN *
> > DSAF_PRIO_NR,
> > +				 ETH_GSTRING_LEN,
> > "onod%d_pfc_prio%d_pkts",
> > +				 node, i);
> >  			buff += ETH_GSTRING_LEN;
> 
> This looks odd and likely incorrect.

Why? the idea is to print stats for Rx and Tx at once.

I hope it was tested.

> 
> >  		}
> > +		buff += 1 * DSAF_PRIO_NR * ETH_GSTRING_LEN;
> >  	}
> 

-- 

Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PATCH net-next 6/9] net: hns: normalize two different loop
@ 2016-06-27 12:00       ` Andy Shevchenko
  0 siblings, 0 replies; 37+ messages in thread
From: Andy Shevchenko @ 2016-06-27 12:00 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, 2016-06-27 at 04:49 -0700, Joe Perches wrote:
> On Mon, 2016-06-27 at 17:54 +0800, Yisen Zhuang wrote:
> > From: Daode Huang <huangdaode@hisilicon.com>
> > 
> > There are two approaches to assign data, one does 2 loops, another
> > does 1 loop. This patch normalize the different methods to 1 loop.
> []
> > diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
> > b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
> []
> > @@ -2567,15 +2567,15 @@ static char
> > *hns_dsaf_get_node_stats_strings(char *data, int node,
> > ?	buff += ETH_GSTRING_LEN;
> > ?	if (node < DSAF_SERVICE_NW_NUM && !is_ver1) {
> > ?		for (i = 0; i < DSAF_PRIO_NR; i++) {
> > -			snprintf(buff, ETH_GSTRING_LEN,
> > -				?"inod%d_pfc_prio%d_pkts", node,
> > i);
> > -			buff += ETH_GSTRING_LEN;
> > -		}
> > -		for (i = 0; i < DSAF_PRIO_NR; i++) {
> > -			snprintf(buff, ETH_GSTRING_LEN,
> > -				?"onod%d_pfc_prio%d_pkts", node,
> > i);
> > +			snprintf(buff + 0 * ETH_GSTRING_LEN *
> > DSAF_PRIO_NR,
> > +				?ETH_GSTRING_LEN,
> > "inod%d_pfc_prio%d_pkts",
> > +				?node, i);
> > +			snprintf(buff + 1 * ETH_GSTRING_LEN *
> > DSAF_PRIO_NR,
> > +				?ETH_GSTRING_LEN,
> > "onod%d_pfc_prio%d_pkts",
> > +				?node, i);
> > ?			buff += ETH_GSTRING_LEN;
> 
> This looks odd and likely incorrect.

Why? the idea is to print stats for Rx and Tx at once.

I hope it was tested.

> 
> > ?		}
> > +		buff += 1 * DSAF_PRIO_NR * ETH_GSTRING_LEN;
> > ?	}
> 

-- 

Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH net-next 6/9] net: hns: normalize two different loop
  2016-06-27 12:00       ` Andy Shevchenko
@ 2016-06-27 12:08         ` Joe Perches
  -1 siblings, 0 replies; 37+ messages in thread
From: Joe Perches @ 2016-06-27 12:08 UTC (permalink / raw)
  To: Andy Shevchenko, Yisen Zhuang, davem, salil.mehta, yankejian
  Cc: liguozhu, huangdaode, arnd, andrew, geliangtang, ivecera,
	fengguang.wu, charles.chenxin, netdev, linux-kernel,
	linux-arm-kernel, linuxarm

On Mon, 2016-06-27 at 15:00 +0300, Andy Shevchenko wrote:
> On Mon, 2016-06-27 at 04:49 -0700, Joe Perches wrote:
> > 
> > On Mon, 2016-06-27 at 17:54 +0800, Yisen Zhuang wrote:
> > > 
> > > From: Daode Huang <huangdaode@hisilicon.com>
> > > 
> > > There are two approaches to assign data, one does 2 loops, another
> > > does 1 loop. This patch normalize the different methods to 1 loop.
> > []
> > > 
> > > diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
> > > b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
> > []
> > > 
> > > @@ -2567,15 +2567,15 @@ static char
> > > *hns_dsaf_get_node_stats_strings(char *data, int node,
> > >  	buff += ETH_GSTRING_LEN;
> > >  	if (node < DSAF_SERVICE_NW_NUM && !is_ver1) {
> > >  		for (i = 0; i < DSAF_PRIO_NR; i++) {
> > > -			snprintf(buff, ETH_GSTRING_LEN,
> > > -				 "inod%d_pfc_prio%d_pkts", node,
> > > i);
> > > -			buff += ETH_GSTRING_LEN;
> > > -		}
> > > -		for (i = 0; i < DSAF_PRIO_NR; i++) {
> > > -			snprintf(buff, ETH_GSTRING_LEN,
> > > -				 "onod%d_pfc_prio%d_pkts", node,
> > > i);
> > > +			snprintf(buff + 0 * ETH_GSTRING_LEN *
> > > DSAF_PRIO_NR,
> > > +				 ETH_GSTRING_LEN,
> > > "inod%d_pfc_prio%d_pkts",
> > > +				 node, i);
> > > +			snprintf(buff + 1 * ETH_GSTRING_LEN *
> > > DSAF_PRIO_NR,
> > > +				 ETH_GSTRING_LEN,
> > > "onod%d_pfc_prio%d_pkts",
> > > +				 node, i);
> > >  			buff += ETH_GSTRING_LEN;
> > This looks odd and likely incorrect.
> Why? the idea is to print stats for Rx and Tx at once.
> 
> I hope it was tested.

It changes the order of the strings in buff.
Is a bug fix or a style fix?

If it's a bug fix, then it should likely be added
to the stable trees.

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PATCH net-next 6/9] net: hns: normalize two different loop
@ 2016-06-27 12:08         ` Joe Perches
  0 siblings, 0 replies; 37+ messages in thread
From: Joe Perches @ 2016-06-27 12:08 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, 2016-06-27 at 15:00 +0300, Andy Shevchenko wrote:
> On Mon, 2016-06-27 at 04:49 -0700, Joe Perches wrote:
> > 
> > On Mon, 2016-06-27 at 17:54 +0800, Yisen Zhuang wrote:
> > > 
> > > From: Daode Huang <huangdaode@hisilicon.com>
> > > 
> > > There are two approaches to assign data, one does 2 loops, another
> > > does 1 loop. This patch normalize the different methods to 1 loop.
> > []
> > > 
> > > diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
> > > b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
> > []
> > > 
> > > @@ -2567,15 +2567,15 @@ static char
> > > *hns_dsaf_get_node_stats_strings(char *data, int node,
> > > ?	buff += ETH_GSTRING_LEN;
> > > ?	if (node < DSAF_SERVICE_NW_NUM && !is_ver1) {
> > > ?		for (i = 0; i < DSAF_PRIO_NR; i++) {
> > > -			snprintf(buff, ETH_GSTRING_LEN,
> > > -				?"inod%d_pfc_prio%d_pkts", node,
> > > i);
> > > -			buff += ETH_GSTRING_LEN;
> > > -		}
> > > -		for (i = 0; i < DSAF_PRIO_NR; i++) {
> > > -			snprintf(buff, ETH_GSTRING_LEN,
> > > -				?"onod%d_pfc_prio%d_pkts", node,
> > > i);
> > > +			snprintf(buff + 0 * ETH_GSTRING_LEN *
> > > DSAF_PRIO_NR,
> > > +				?ETH_GSTRING_LEN,
> > > "inod%d_pfc_prio%d_pkts",
> > > +				?node, i);
> > > +			snprintf(buff + 1 * ETH_GSTRING_LEN *
> > > DSAF_PRIO_NR,
> > > +				?ETH_GSTRING_LEN,
> > > "onod%d_pfc_prio%d_pkts",
> > > +				?node, i);
> > > ?			buff += ETH_GSTRING_LEN;
> > This looks odd and likely incorrect.
> Why? the idea is to print stats for Rx and Tx at once.
> 
> I hope it was tested.

It changes the order of the strings in buff.
Is a bug fix or a style fix?

If it's a bug fix, then it should likely be added
to the stable trees.

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH net-next 6/9] net: hns: normalize two different loop
  2016-06-27 12:08         ` Joe Perches
@ 2016-06-27 12:13           ` Andy Shevchenko
  -1 siblings, 0 replies; 37+ messages in thread
From: Andy Shevchenko @ 2016-06-27 12:13 UTC (permalink / raw)
  To: Joe Perches, Yisen Zhuang, davem, salil.mehta, yankejian
  Cc: liguozhu, huangdaode, arnd, andrew, geliangtang, ivecera,
	fengguang.wu, charles.chenxin, netdev, linux-kernel,
	linux-arm-kernel, linuxarm

On Mon, 2016-06-27 at 05:08 -0700, Joe Perches wrote:
> On Mon, 2016-06-27 at 15:00 +0300, Andy Shevchenko wrote:
> > On Mon, 2016-06-27 at 04:49 -0700, Joe Perches wrote:
> > > 
> > > On Mon, 2016-06-27 at 17:54 +0800, Yisen Zhuang wrote:
> > > > 
> > > > From: Daode Huang <huangdaode@hisilicon.com>
> > > > 
> > > > There are two approaches to assign data, one does 2 loops,
> > > > another
> > > > does 1 loop. This patch normalize the different methods to 1
> > > > loop.
> > > []
> > > > 
> > > > diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
> > > > b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
> > > []
> > > > 
> > > > @@ -2567,15 +2567,15 @@ static char
> > > > *hns_dsaf_get_node_stats_strings(char *data, int node,
> > > >  	buff += ETH_GSTRING_LEN;
> > > >  	if (node < DSAF_SERVICE_NW_NUM && !is_ver1) {
> > > >  		for (i = 0; i < DSAF_PRIO_NR; i++) {
> > > > -			snprintf(buff, ETH_GSTRING_LEN,
> > > > -				 "inod%d_pfc_prio%d_pkts",
> > > > node,
> > > > i);
> > > > -			buff += ETH_GSTRING_LEN;
> > > > -		}
> > > > -		for (i = 0; i < DSAF_PRIO_NR; i++) {
> > > > -			snprintf(buff, ETH_GSTRING_LEN,
> > > > -				 "onod%d_pfc_prio%d_pkts",
> > > > node,
> > > > i);
> > > > +			snprintf(buff + 0 * ETH_GSTRING_LEN *
> > > > DSAF_PRIO_NR,
> > > > +				 ETH_GSTRING_LEN,
> > > > "inod%d_pfc_prio%d_pkts",
> > > > +				 node, i);
> > > > +			snprintf(buff + 1 * ETH_GSTRING_LEN *
> > > > DSAF_PRIO_NR,
> > > > +				 ETH_GSTRING_LEN,
> > > > "onod%d_pfc_prio%d_pkts",
> > > > +				 node, i);
> > > >  			buff += ETH_GSTRING_LEN;
> > > This looks odd and likely incorrect.
> > Why? the idea is to print stats for Rx and Tx at once.
> > 
> > I hope it was tested.
> 
> It changes the order of the strings in buff.

I don't see how.

> Is a bug fix or a style fix?
> 
> If it's a bug fix, then it should likely be added
> to the stable trees.

I doubt it's a bug fix.

-- 

Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PATCH net-next 6/9] net: hns: normalize two different loop
@ 2016-06-27 12:13           ` Andy Shevchenko
  0 siblings, 0 replies; 37+ messages in thread
From: Andy Shevchenko @ 2016-06-27 12:13 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, 2016-06-27 at 05:08 -0700, Joe Perches wrote:
> On Mon, 2016-06-27 at 15:00 +0300, Andy Shevchenko wrote:
> > On Mon, 2016-06-27 at 04:49 -0700, Joe Perches wrote:
> > > 
> > > On Mon, 2016-06-27 at 17:54 +0800, Yisen Zhuang wrote:
> > > > 
> > > > From: Daode Huang <huangdaode@hisilicon.com>
> > > > 
> > > > There are two approaches to assign data, one does 2 loops,
> > > > another
> > > > does 1 loop. This patch normalize the different methods to 1
> > > > loop.
> > > []
> > > > 
> > > > diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
> > > > b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
> > > []
> > > > 
> > > > @@ -2567,15 +2567,15 @@ static char
> > > > *hns_dsaf_get_node_stats_strings(char *data, int node,
> > > > ?	buff += ETH_GSTRING_LEN;
> > > > ?	if (node < DSAF_SERVICE_NW_NUM && !is_ver1) {
> > > > ?		for (i = 0; i < DSAF_PRIO_NR; i++) {
> > > > -			snprintf(buff, ETH_GSTRING_LEN,
> > > > -				?"inod%d_pfc_prio%d_pkts",
> > > > node,
> > > > i);
> > > > -			buff += ETH_GSTRING_LEN;
> > > > -		}
> > > > -		for (i = 0; i < DSAF_PRIO_NR; i++) {
> > > > -			snprintf(buff, ETH_GSTRING_LEN,
> > > > -				?"onod%d_pfc_prio%d_pkts",
> > > > node,
> > > > i);
> > > > +			snprintf(buff + 0 * ETH_GSTRING_LEN *
> > > > DSAF_PRIO_NR,
> > > > +				?ETH_GSTRING_LEN,
> > > > "inod%d_pfc_prio%d_pkts",
> > > > +				?node, i);
> > > > +			snprintf(buff + 1 * ETH_GSTRING_LEN *
> > > > DSAF_PRIO_NR,
> > > > +				?ETH_GSTRING_LEN,
> > > > "onod%d_pfc_prio%d_pkts",
> > > > +				?node, i);
> > > > ?			buff += ETH_GSTRING_LEN;
> > > This looks odd and likely incorrect.
> > Why? the idea is to print stats for Rx and Tx at once.
> > 
> > I hope it was tested.
> 
> It changes the order of the strings in buff.

I don't see how.

> Is a bug fix or a style fix?
> 
> If it's a bug fix, then it should likely be added
> to the stable trees.

I doubt it's a bug fix.

-- 

Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH net-next 6/9] net: hns: normalize two different loop
  2016-06-27 12:13           ` Andy Shevchenko
@ 2016-06-28  5:41             ` Daode Huang
  -1 siblings, 0 replies; 37+ messages in thread
From: Daode Huang @ 2016-06-28  5:41 UTC (permalink / raw)
  To: Andy Shevchenko, Joe Perches, Yisen Zhuang, davem, salil.mehta,
	yankejian
  Cc: liguozhu, arnd, andrew, geliangtang, ivecera, fengguang.wu,
	charles.chenxin, netdev, linux-kernel, linux-arm-kernel,
	linuxarm



On 2016/6/27 20:13, Andy Shevchenko wrote:
> On Mon, 2016-06-27 at 05:08 -0700, Joe Perches wrote:
>> On Mon, 2016-06-27 at 15:00 +0300, Andy Shevchenko wrote:
>>> On Mon, 2016-06-27 at 04:49 -0700, Joe Perches wrote:
>>>> On Mon, 2016-06-27 at 17:54 +0800, Yisen Zhuang wrote:
>>>>> From: Daode Huang <huangdaode@hisilicon.com>
>>>>>
>>>>> There are two approaches to assign data, one does 2 loops,
>>>>> another
>>>>> does 1 loop. This patch normalize the different methods to 1
>>>>> loop.
>>>> []
>>>>> diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
>>>>> b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
>>>> []
>>>>> @@ -2567,15 +2567,15 @@ static char
>>>>> *hns_dsaf_get_node_stats_strings(char *data, int node,
>>>>>   	buff += ETH_GSTRING_LEN;
>>>>>   	if (node < DSAF_SERVICE_NW_NUM && !is_ver1) {
>>>>>   		for (i = 0; i < DSAF_PRIO_NR; i++) {
>>>>> -			snprintf(buff, ETH_GSTRING_LEN,
>>>>> -				 "inod%d_pfc_prio%d_pkts",
>>>>> node,
>>>>> i);
>>>>> -			buff += ETH_GSTRING_LEN;
>>>>> -		}
>>>>> -		for (i = 0; i < DSAF_PRIO_NR; i++) {
>>>>> -			snprintf(buff, ETH_GSTRING_LEN,
>>>>> -				 "onod%d_pfc_prio%d_pkts",
>>>>> node,
>>>>> i);
>>>>> +			snprintf(buff + 0 * ETH_GSTRING_LEN *
>>>>> DSAF_PRIO_NR,
>>>>> +				 ETH_GSTRING_LEN,
>>>>> "inod%d_pfc_prio%d_pkts",
>>>>> +				 node, i);
>>>>> +			snprintf(buff + 1 * ETH_GSTRING_LEN *
>>>>> DSAF_PRIO_NR,
>>>>> +				 ETH_GSTRING_LEN,
>>>>> "onod%d_pfc_prio%d_pkts",
>>>>> +				 node, i);
>>>>>   			buff += ETH_GSTRING_LEN;
>>>> This looks odd and likely incorrect.
>>> Why? the idea is to print stats for Rx and Tx at once.
>>>
>>> I hope it was tested.
>> It changes the order of the strings in buff.
> I don't see how.
Hi Andy,
The patch has been tested when sent out.

>> Is a bug fix or a style fix?
>>
>> If it's a bug fix, then it should likely be added
>> to the stable trees.
> I doubt it's a bug fix.

Because the previous patch is accepted in net-next, and this set is
an appendix to the series, in order to avoid merge conflict, we also
send this bug fix to net-next.

thanks.

>

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PATCH net-next 6/9] net: hns: normalize two different loop
@ 2016-06-28  5:41             ` Daode Huang
  0 siblings, 0 replies; 37+ messages in thread
From: Daode Huang @ 2016-06-28  5:41 UTC (permalink / raw)
  To: linux-arm-kernel



On 2016/6/27 20:13, Andy Shevchenko wrote:
> On Mon, 2016-06-27 at 05:08 -0700, Joe Perches wrote:
>> On Mon, 2016-06-27 at 15:00 +0300, Andy Shevchenko wrote:
>>> On Mon, 2016-06-27 at 04:49 -0700, Joe Perches wrote:
>>>> On Mon, 2016-06-27 at 17:54 +0800, Yisen Zhuang wrote:
>>>>> From: Daode Huang <huangdaode@hisilicon.com>
>>>>>
>>>>> There are two approaches to assign data, one does 2 loops,
>>>>> another
>>>>> does 1 loop. This patch normalize the different methods to 1
>>>>> loop.
>>>> []
>>>>> diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
>>>>> b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
>>>> []
>>>>> @@ -2567,15 +2567,15 @@ static char
>>>>> *hns_dsaf_get_node_stats_strings(char *data, int node,
>>>>>   	buff += ETH_GSTRING_LEN;
>>>>>   	if (node < DSAF_SERVICE_NW_NUM && !is_ver1) {
>>>>>   		for (i = 0; i < DSAF_PRIO_NR; i++) {
>>>>> -			snprintf(buff, ETH_GSTRING_LEN,
>>>>> -				 "inod%d_pfc_prio%d_pkts",
>>>>> node,
>>>>> i);
>>>>> -			buff += ETH_GSTRING_LEN;
>>>>> -		}
>>>>> -		for (i = 0; i < DSAF_PRIO_NR; i++) {
>>>>> -			snprintf(buff, ETH_GSTRING_LEN,
>>>>> -				 "onod%d_pfc_prio%d_pkts",
>>>>> node,
>>>>> i);
>>>>> +			snprintf(buff + 0 * ETH_GSTRING_LEN *
>>>>> DSAF_PRIO_NR,
>>>>> +				 ETH_GSTRING_LEN,
>>>>> "inod%d_pfc_prio%d_pkts",
>>>>> +				 node, i);
>>>>> +			snprintf(buff + 1 * ETH_GSTRING_LEN *
>>>>> DSAF_PRIO_NR,
>>>>> +				 ETH_GSTRING_LEN,
>>>>> "onod%d_pfc_prio%d_pkts",
>>>>> +				 node, i);
>>>>>   			buff += ETH_GSTRING_LEN;
>>>> This looks odd and likely incorrect.
>>> Why? the idea is to print stats for Rx and Tx at once.
>>>
>>> I hope it was tested.
>> It changes the order of the strings in buff.
> I don't see how.
Hi Andy,
The patch has been tested when sent out.

>> Is a bug fix or a style fix?
>>
>> If it's a bug fix, then it should likely be added
>> to the stable trees.
> I doubt it's a bug fix.

Because the previous patch is accepted in net-next, and this set is
an appendix to the series, in order to avoid merge conflict, we also
send this bug fix to net-next.

thanks.

>

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH net-next 9/9] net: hns: get reset registers from DT
  2016-06-27  9:54   ` Yisen Zhuang
@ 2016-06-29  9:11     ` David Miller
  -1 siblings, 0 replies; 37+ messages in thread
From: David Miller @ 2016-06-29  9:11 UTC (permalink / raw)
  To: Yisen.Zhuang
  Cc: salil.mehta, yankejian, liguozhu, huangdaode, arnd,
	andriy.shevchenko, andrew, geliangtang, ivecera, fengguang.wu,
	charles.chenxin, netdev, linux-kernel, linux-arm-kernel,
	linuxarm

From: Yisen Zhuang <Yisen.Zhuang@huawei.com>
Date: Mon, 27 Jun 2016 17:54:15 +0800

> @@ -361,9 +371,10 @@ static int hns_mdio_reset(struct mii_bus *bus)
>  			return -ENODEV;
>  		}
>  
> +	sc_reg = &mdio_dev->sc_reg;
>  		/* 1. reset req, and read reset st check */
> -		ret = mdio_sc_cfg_reg_write(mdio_dev, MDIO_SC_RESET_REQ, 0x1,
> -					    MDIO_SC_RESET_ST, 0x1,
> +	ret = mdio_sc_cfg_reg_write(mdio_dev, sc_reg->mdio_reset_req, 0x1,
> +				    sc_reg->mdio_reset_st, 0x1,
>  					    MDIO_CHECK_SET_ST);
>  		if (ret) {
>  			dev_err(&bus->dev, "MDIO reset fail\n");

What in the world are you doing to the indentation here?

Please read your patches before actually sending them, such things
will be quite obvious by simple visual inspection.

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PATCH net-next 9/9] net: hns: get reset registers from DT
@ 2016-06-29  9:11     ` David Miller
  0 siblings, 0 replies; 37+ messages in thread
From: David Miller @ 2016-06-29  9:11 UTC (permalink / raw)
  To: linux-arm-kernel

From: Yisen Zhuang <Yisen.Zhuang@huawei.com>
Date: Mon, 27 Jun 2016 17:54:15 +0800

> @@ -361,9 +371,10 @@ static int hns_mdio_reset(struct mii_bus *bus)
>  			return -ENODEV;
>  		}
>  
> +	sc_reg = &mdio_dev->sc_reg;
>  		/* 1. reset req, and read reset st check */
> -		ret = mdio_sc_cfg_reg_write(mdio_dev, MDIO_SC_RESET_REQ, 0x1,
> -					    MDIO_SC_RESET_ST, 0x1,
> +	ret = mdio_sc_cfg_reg_write(mdio_dev, sc_reg->mdio_reset_req, 0x1,
> +				    sc_reg->mdio_reset_st, 0x1,
>  					    MDIO_CHECK_SET_ST);
>  		if (ret) {
>  			dev_err(&bus->dev, "MDIO reset fail\n");

What in the world are you doing to the indentation here?

Please read your patches before actually sending them, such things
will be quite obvious by simple visual inspection.

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH net-next 9/9] net: hns: get reset registers from DT
  2016-06-29  9:11     ` David Miller
@ 2016-06-30  1:10       ` Yankejian (Hackim Yim)
  -1 siblings, 0 replies; 37+ messages in thread
From: Yankejian (Hackim Yim) @ 2016-06-30  1:10 UTC (permalink / raw)
  To: David Miller, Yisen.Zhuang
  Cc: salil.mehta, liguozhu, huangdaode, arnd, andriy.shevchenko,
	andrew, geliangtang, ivecera, fengguang.wu, charles.chenxin,
	netdev, linux-kernel, linux-arm-kernel, linuxarm

On 2016/6/29 17:11, David Miller wrote:
> From: Yisen Zhuang <Yisen.Zhuang@huawei.com>
> Date: Mon, 27 Jun 2016 17:54:15 +0800
>
>> @@ -361,9 +371,10 @@ static int hns_mdio_reset(struct mii_bus *bus)
>>  			return -ENODEV;
>>  		}
>>  
>> +	sc_reg = &mdio_dev->sc_reg;
>>  		/* 1. reset req, and read reset st check */
>> -		ret = mdio_sc_cfg_reg_write(mdio_dev, MDIO_SC_RESET_REQ, 0x1,
>> -					    MDIO_SC_RESET_ST, 0x1,
>> +	ret = mdio_sc_cfg_reg_write(mdio_dev, sc_reg->mdio_reset_req, 0x1,
>> +				    sc_reg->mdio_reset_st, 0x1,
>>  					    MDIO_CHECK_SET_ST);
>>  		if (ret) {
>>  			dev_err(&bus->dev, "MDIO reset fail\n");
> What in the world are you doing to the indentation here?
>
> Please read your patches before actually sending them, such things
> will be quite obvious by simple visual inspection.
>
> .
>
Hi David,
i am sorry for my carelessness. i will pay more attention next time.
Thanks for pointing it our

-- 
MBR,
Yankejian (Hackim Yim)

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PATCH net-next 9/9] net: hns: get reset registers from DT
@ 2016-06-30  1:10       ` Yankejian (Hackim Yim)
  0 siblings, 0 replies; 37+ messages in thread
From: Yankejian (Hackim Yim) @ 2016-06-30  1:10 UTC (permalink / raw)
  To: linux-arm-kernel

On 2016/6/29 17:11, David Miller wrote:
> From: Yisen Zhuang <Yisen.Zhuang@huawei.com>
> Date: Mon, 27 Jun 2016 17:54:15 +0800
>
>> @@ -361,9 +371,10 @@ static int hns_mdio_reset(struct mii_bus *bus)
>>  			return -ENODEV;
>>  		}
>>  
>> +	sc_reg = &mdio_dev->sc_reg;
>>  		/* 1. reset req, and read reset st check */
>> -		ret = mdio_sc_cfg_reg_write(mdio_dev, MDIO_SC_RESET_REQ, 0x1,
>> -					    MDIO_SC_RESET_ST, 0x1,
>> +	ret = mdio_sc_cfg_reg_write(mdio_dev, sc_reg->mdio_reset_req, 0x1,
>> +				    sc_reg->mdio_reset_st, 0x1,
>>  					    MDIO_CHECK_SET_ST);
>>  		if (ret) {
>>  			dev_err(&bus->dev, "MDIO reset fail\n");
> What in the world are you doing to the indentation here?
>
> Please read your patches before actually sending them, such things
> will be quite obvious by simple visual inspection.
>
> .
>
Hi David,
i am sorry for my carelessness. i will pay more attention next time.
Thanks for pointing it our

-- 
MBR,
Yankejian (Hackim Yim)

^ permalink raw reply	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2016-06-30  1:11 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-27  9:54 [PATCH net-next 0/9] net: hns: fix the typo of hns Yisen Zhuang
2016-06-27  9:54 ` Yisen Zhuang
2016-06-27  9:54 ` Yisen Zhuang
2016-06-27  9:54 ` [PATCH net-next 1/9] MAINTAINERS: add maintainers for hns driver Yisen Zhuang
2016-06-27  9:54   ` Yisen Zhuang
2016-06-27  9:54   ` Yisen Zhuang
2016-06-27  9:54 ` [PATCH net-next 2/9] net: hns: fix code style about " Yisen Zhuang
2016-06-27  9:54   ` Yisen Zhuang
2016-06-27  9:54 ` [PATCH net-next 3/9] net: hns: change code style from a = a + x to a += x Yisen Zhuang
2016-06-27  9:54   ` Yisen Zhuang
2016-06-27  9:54 ` [PATCH net-next 4/9] net: hns: delete redundant parens Yisen Zhuang
2016-06-27  9:54   ` Yisen Zhuang
2016-06-27  9:54   ` Yisen Zhuang
2016-06-27  9:54 ` [PATCH net-next 5/9] net: hns: add a space before "*/" Yisen Zhuang
2016-06-27  9:54   ` Yisen Zhuang
2016-06-27  9:54 ` [PATCH net-next 6/9] net: hns: normalize two different loop Yisen Zhuang
2016-06-27  9:54   ` Yisen Zhuang
2016-06-27 11:49   ` Joe Perches
2016-06-27 11:49     ` Joe Perches
2016-06-27 12:00     ` Andy Shevchenko
2016-06-27 12:00       ` Andy Shevchenko
2016-06-27 12:08       ` Joe Perches
2016-06-27 12:08         ` Joe Perches
2016-06-27 12:13         ` Andy Shevchenko
2016-06-27 12:13           ` Andy Shevchenko
2016-06-28  5:41           ` Daode Huang
2016-06-28  5:41             ` Daode Huang
2016-06-27  9:54 ` [PATCH net-next 7/9] net: hns: remove redundant hns_mac_dev_to_enet_if() Yisen Zhuang
2016-06-27  9:54   ` Yisen Zhuang
2016-06-27  9:54 ` [PATCH net-next 8/9] net: hns: add media-type property for hns Yisen Zhuang
2016-06-27  9:54   ` Yisen Zhuang
2016-06-27  9:54 ` [PATCH net-next 9/9] net: hns: get reset registers from DT Yisen Zhuang
2016-06-27  9:54   ` Yisen Zhuang
2016-06-29  9:11   ` David Miller
2016-06-29  9:11     ` David Miller
2016-06-30  1:10     ` Yankejian (Hackim Yim)
2016-06-30  1:10       ` Yankejian (Hackim Yim)

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.