Thread (8 messages) 8 messages, 2 authors, 2015-12-04

Re: [PATCH V6 net-next 5/5] net:hns: Add the init code to disable Hip06 "Hardware VLAN assist"

From: Salil Mehta <hidden>
Date: 2015-12-04 18:26:17
Also in: linux-arm-kernel, linux-devicetree, lkml

On 12/2/2015 7:46 PM, Sergei Shtylyov wrote:
Hello.

On 12/02/2015 07:52 PM, Salil Mehta wrote:
quoted
This patch adds the initializzation code to disable the hardware
vlan support for VLAN Tag stripping by default for now.

Proper support of "hardware VLAN assitance" feature would
soon come in the next coming patches.

Signed-off-by: Salil Mehta <redacted>
---

PATCH V6:
- No change over the earlier patch

PATCH V5:
- Minor merge/reject change resolved to application of previous patch

PATCH V4/V3/V2:
- No change over the initial floated patch

PATCH V1:
- Initial code to disable the hardware VLAN assist for now
---
  drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c |    7 +++++++
  drivers/net/ethernet/hisilicon/hns/hns_dsaf_reg.h |    1 +
  2 files changed, 8 insertions(+)
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c 
b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c
index b5e4c44..f302ef9 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c
@@ -176,6 +176,11 @@ static void hns_ppe_cnt_clr_ce(struct hns_ppe_cb 
*ppe_cb)
               PPE_CNT_CLR_CE_B, 1);
  }

+static void hns_ppe_set_vlan_strip(struct hns_ppe_cb *ppe_cb, int en)
+{
+    dsaf_write_dev(ppe_cb, PPEV2_VLAN_STRIP_EN_REG, en);
   Why not call it directly?
Hi Sergei,
The wrapper API abstraction has been put intentionally. The reason is 
the same code
is suppose to run across different SoCs so it is always clean approach 
to hide it so
that even if there are differences in the way we access or configure 
hardware
in other SoCs basic interface of the SET API remains same!!
Therefore, we are in favour of keeping the above wrapper and therefore not
changing now.

Best regards
Salil
quoted
+}
+
  /**
   * hns_ppe_checksum_hw - set ppe checksum caculate
   * @ppe_device: ppe device
@@ -336,6 +341,8 @@ static void hns_ppe_init_hw(struct hns_ppe_cb 
*ppe_cb)
      hns_ppe_cnt_clr_ce(ppe_cb);

      if (!AE_IS_VER1(dsaf_dev->dsaf_ver)) {
+        hns_ppe_set_vlan_strip(ppe_cb, 0);
+
          /* set default RSS key in h/w */
          hns_ppe_set_rss_key(ppe_cb, ppe_cb->rss_key);
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_reg.h 
b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_reg.h
index 98c163e..6c18ca9 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_reg.h
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_reg.h
@@ -318,6 +318,7 @@
  #define PPE_CFG_PARSE_TAG_REG            0x94
  #define PPE_CFG_PRO_CHECK_EN_REG        0x98
  #define PPEV2_CFG_TSO_EN_REG                    0xA0
+#define PPEV2_VLAN_STRIP_EN_REG                 0xAC
   Please indent with tabs, like all the surrounding #define's are 
indented (except PPEV2_CFG_TSO_EN_REG).
Thanks for this. I have changed this in PATCH V7 already floated.

Best Regards
Salil
quoted
  #define PPE_INTEN_REG 0x100
  #define PPE_RINT_REG                0x104
  #define PPE_INTSTS_REG                0x108
MBR, Sergei
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help