Re: [patch net-next 05/14] rocker: implement set settings mode command

2015-10-05 Thread Scott Feldman
On Sun, Oct 4, 2015 at 2:25 PM, Jiri Pirko  wrote:
> From: Jiri Pirko 
>
> Introduce a helper to ask HW for change of the port mode (world).
>
> Signed-off-by: Jiri Pirko 

Acked-by: Scott Feldman 
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[patch net-next 05/14] rocker: implement set settings mode command

2015-10-04 Thread Jiri Pirko
From: Jiri Pirko 

Introduce a helper to ask HW for change of the port mode (world).

Signed-off-by: Jiri Pirko 
---
 drivers/net/ethernet/rocker/rocker_main.c | 32 +++
 1 file changed, 32 insertions(+)

diff --git a/drivers/net/ethernet/rocker/rocker_main.c 
b/drivers/net/ethernet/rocker/rocker_main.c
index c698653..54d2f46 100644
--- a/drivers/net/ethernet/rocker/rocker_main.c
+++ b/drivers/net/ethernet/rocker/rocker_main.c
@@ -1641,6 +1641,30 @@ rocker_cmd_set_port_learning_prep(const struct 
rocker_port *rocker_port,
return 0;
 }
 
+static int
+rocker_cmd_set_port_settings_mode_prep(const struct rocker_port *rocker_port,
+  struct rocker_desc_info *desc_info,
+  void *priv)
+{
+   int mode = *(int *)priv;
+   struct rocker_tlv *cmd_info;
+
+   if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE,
+  ROCKER_TLV_CMD_TYPE_SET_PORT_SETTINGS))
+   return -EMSGSIZE;
+   cmd_info = rocker_tlv_nest_start(desc_info, ROCKER_TLV_CMD_INFO);
+   if (!cmd_info)
+   return -EMSGSIZE;
+   if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_CMD_PORT_SETTINGS_PPORT,
+  rocker_port->pport))
+   return -EMSGSIZE;
+   if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_PORT_SETTINGS_MODE,
+  mode))
+   return -EMSGSIZE;
+   rocker_tlv_nest_end(desc_info, cmd_info);
+   return 0;
+}
+
 static int rocker_cmd_get_port_settings_ethtool(struct rocker_port 
*rocker_port,
struct ethtool_cmd *ecmd)
 {
@@ -1691,6 +1715,14 @@ static int rocker_port_set_learning(struct rocker_port 
*rocker_port,
   NULL, NULL, NULL);
 }
 
+static int rocker_cmd_set_port_settings_mode(struct rocker_port *rocker_port,
+u8 mode)
+{
+   return rocker_cmd_exec(rocker_port, NULL, 0,
+  rocker_cmd_set_port_settings_mode_prep,
+  , NULL, NULL);
+}
+
 static int
 rocker_cmd_flow_tbl_add_ig_port(struct rocker_desc_info *desc_info,
const struct rocker_flow_tbl_entry *entry)
-- 
1.9.3

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html