1862cd659SVeerasenareddy Burru /* SPDX-License-Identifier: GPL-2.0 */ 2862cd659SVeerasenareddy Burru /* Marvell Octeon EP (EndPoint) Ethernet Driver 3862cd659SVeerasenareddy Burru * 4862cd659SVeerasenareddy Burru * Copyright (C) 2020 Marvell. 5862cd659SVeerasenareddy Burru * 6862cd659SVeerasenareddy Burru */ 7862cd659SVeerasenareddy Burru #ifndef __OCTEP_CTRL_NET_H__ 8862cd659SVeerasenareddy Burru #define __OCTEP_CTRL_NET_H__ 9862cd659SVeerasenareddy Burru 10*a20b4c5fSSathesh Edara #include "octep_cp_version.h" 11*a20b4c5fSSathesh Edara 12f25e5967SVeerasenareddy Burru #define OCTEP_CTRL_NET_INVALID_VFID (-1) 13f25e5967SVeerasenareddy Burru 14862cd659SVeerasenareddy Burru /* Supported commands */ 15862cd659SVeerasenareddy Burru enum octep_ctrl_net_cmd { 16862cd659SVeerasenareddy Burru OCTEP_CTRL_NET_CMD_GET = 0, 17862cd659SVeerasenareddy Burru OCTEP_CTRL_NET_CMD_SET, 18862cd659SVeerasenareddy Burru }; 19862cd659SVeerasenareddy Burru 20862cd659SVeerasenareddy Burru /* Supported states */ 21862cd659SVeerasenareddy Burru enum octep_ctrl_net_state { 22862cd659SVeerasenareddy Burru OCTEP_CTRL_NET_STATE_DOWN = 0, 23862cd659SVeerasenareddy Burru OCTEP_CTRL_NET_STATE_UP, 24862cd659SVeerasenareddy Burru }; 25862cd659SVeerasenareddy Burru 26862cd659SVeerasenareddy Burru /* Supported replies */ 27862cd659SVeerasenareddy Burru enum octep_ctrl_net_reply { 28862cd659SVeerasenareddy Burru OCTEP_CTRL_NET_REPLY_OK = 0, 29862cd659SVeerasenareddy Burru OCTEP_CTRL_NET_REPLY_GENERIC_FAIL, 30862cd659SVeerasenareddy Burru OCTEP_CTRL_NET_REPLY_INVALID_PARAM, 31862cd659SVeerasenareddy Burru }; 32862cd659SVeerasenareddy Burru 33862cd659SVeerasenareddy Burru /* Supported host to fw commands */ 34862cd659SVeerasenareddy Burru enum octep_ctrl_net_h2f_cmd { 35862cd659SVeerasenareddy Burru OCTEP_CTRL_NET_H2F_CMD_INVALID = 0, 36862cd659SVeerasenareddy Burru OCTEP_CTRL_NET_H2F_CMD_MTU, 37862cd659SVeerasenareddy Burru OCTEP_CTRL_NET_H2F_CMD_MAC, 38862cd659SVeerasenareddy Burru OCTEP_CTRL_NET_H2F_CMD_GET_IF_STATS, 39862cd659SVeerasenareddy Burru OCTEP_CTRL_NET_H2F_CMD_GET_XSTATS, 40862cd659SVeerasenareddy Burru OCTEP_CTRL_NET_H2F_CMD_GET_Q_STATS, 41862cd659SVeerasenareddy Burru OCTEP_CTRL_NET_H2F_CMD_LINK_STATUS, 42862cd659SVeerasenareddy Burru OCTEP_CTRL_NET_H2F_CMD_RX_STATE, 43862cd659SVeerasenareddy Burru OCTEP_CTRL_NET_H2F_CMD_LINK_INFO, 44*a20b4c5fSSathesh Edara OCTEP_CTRL_NET_H2F_CMD_MAX 45862cd659SVeerasenareddy Burru }; 46862cd659SVeerasenareddy Burru 47862cd659SVeerasenareddy Burru /* Supported fw to host commands */ 48862cd659SVeerasenareddy Burru enum octep_ctrl_net_f2h_cmd { 49862cd659SVeerasenareddy Burru OCTEP_CTRL_NET_F2H_CMD_INVALID = 0, 50862cd659SVeerasenareddy Burru OCTEP_CTRL_NET_F2H_CMD_LINK_STATUS, 51*a20b4c5fSSathesh Edara OCTEP_CTRL_NET_F2H_CMD_MAX 52862cd659SVeerasenareddy Burru }; 53862cd659SVeerasenareddy Burru 54577f0d1bSVeerasenareddy Burru union octep_ctrl_net_req_hdr { 55577f0d1bSVeerasenareddy Burru u64 words[1]; 56577f0d1bSVeerasenareddy Burru struct { 57862cd659SVeerasenareddy Burru /* sender id */ 58862cd659SVeerasenareddy Burru u16 sender; 59862cd659SVeerasenareddy Burru /* receiver id */ 60862cd659SVeerasenareddy Burru u16 receiver; 61862cd659SVeerasenareddy Burru /* octep_ctrl_net_h2t_cmd */ 62862cd659SVeerasenareddy Burru u16 cmd; 63862cd659SVeerasenareddy Burru /* reserved */ 64862cd659SVeerasenareddy Burru u16 rsvd0; 65577f0d1bSVeerasenareddy Burru } s; 66862cd659SVeerasenareddy Burru }; 67862cd659SVeerasenareddy Burru 68862cd659SVeerasenareddy Burru /* get/set mtu request */ 69862cd659SVeerasenareddy Burru struct octep_ctrl_net_h2f_req_cmd_mtu { 70862cd659SVeerasenareddy Burru /* enum octep_ctrl_net_cmd */ 71862cd659SVeerasenareddy Burru u16 cmd; 72862cd659SVeerasenareddy Burru /* 0-65535 */ 73862cd659SVeerasenareddy Burru u16 val; 74862cd659SVeerasenareddy Burru }; 75862cd659SVeerasenareddy Burru 76862cd659SVeerasenareddy Burru /* get/set mac request */ 77862cd659SVeerasenareddy Burru struct octep_ctrl_net_h2f_req_cmd_mac { 78862cd659SVeerasenareddy Burru /* enum octep_ctrl_net_cmd */ 79862cd659SVeerasenareddy Burru u16 cmd; 80862cd659SVeerasenareddy Burru /* xx:xx:xx:xx:xx:xx */ 81862cd659SVeerasenareddy Burru u8 addr[ETH_ALEN]; 82862cd659SVeerasenareddy Burru }; 83862cd659SVeerasenareddy Burru 84862cd659SVeerasenareddy Burru /* get/set link state, rx state */ 85862cd659SVeerasenareddy Burru struct octep_ctrl_net_h2f_req_cmd_state { 86862cd659SVeerasenareddy Burru /* enum octep_ctrl_net_cmd */ 87862cd659SVeerasenareddy Burru u16 cmd; 88862cd659SVeerasenareddy Burru /* enum octep_ctrl_net_state */ 89862cd659SVeerasenareddy Burru u16 state; 90862cd659SVeerasenareddy Burru }; 91862cd659SVeerasenareddy Burru 92862cd659SVeerasenareddy Burru /* link info */ 93862cd659SVeerasenareddy Burru struct octep_ctrl_net_link_info { 94862cd659SVeerasenareddy Burru /* Bitmap of Supported link speeds/modes */ 95862cd659SVeerasenareddy Burru u64 supported_modes; 96862cd659SVeerasenareddy Burru /* Bitmap of Advertised link speeds/modes */ 97862cd659SVeerasenareddy Burru u64 advertised_modes; 98862cd659SVeerasenareddy Burru /* Autonegotation state; bit 0=disabled; bit 1=enabled */ 99862cd659SVeerasenareddy Burru u8 autoneg; 100862cd659SVeerasenareddy Burru /* Pause frames setting. bit 0=disabled; bit 1=enabled */ 101862cd659SVeerasenareddy Burru u8 pause; 102862cd659SVeerasenareddy Burru /* Negotiated link speed in Mbps */ 103862cd659SVeerasenareddy Burru u32 speed; 104862cd659SVeerasenareddy Burru }; 105862cd659SVeerasenareddy Burru 106862cd659SVeerasenareddy Burru /* get/set link info */ 107862cd659SVeerasenareddy Burru struct octep_ctrl_net_h2f_req_cmd_link_info { 108862cd659SVeerasenareddy Burru /* enum octep_ctrl_net_cmd */ 109862cd659SVeerasenareddy Burru u16 cmd; 110862cd659SVeerasenareddy Burru /* struct octep_ctrl_net_link_info */ 111862cd659SVeerasenareddy Burru struct octep_ctrl_net_link_info info; 112862cd659SVeerasenareddy Burru }; 113862cd659SVeerasenareddy Burru 114862cd659SVeerasenareddy Burru /* Host to fw request data */ 115862cd659SVeerasenareddy Burru struct octep_ctrl_net_h2f_req { 116577f0d1bSVeerasenareddy Burru union octep_ctrl_net_req_hdr hdr; 117862cd659SVeerasenareddy Burru union { 118862cd659SVeerasenareddy Burru struct octep_ctrl_net_h2f_req_cmd_mtu mtu; 119862cd659SVeerasenareddy Burru struct octep_ctrl_net_h2f_req_cmd_mac mac; 120862cd659SVeerasenareddy Burru struct octep_ctrl_net_h2f_req_cmd_state link; 121862cd659SVeerasenareddy Burru struct octep_ctrl_net_h2f_req_cmd_state rx; 122862cd659SVeerasenareddy Burru struct octep_ctrl_net_h2f_req_cmd_link_info link_info; 123862cd659SVeerasenareddy Burru }; 124862cd659SVeerasenareddy Burru } __packed; 125862cd659SVeerasenareddy Burru 126577f0d1bSVeerasenareddy Burru union octep_ctrl_net_resp_hdr { 127577f0d1bSVeerasenareddy Burru u64 words[1]; 128577f0d1bSVeerasenareddy Burru struct { 129862cd659SVeerasenareddy Burru /* sender id */ 130862cd659SVeerasenareddy Burru u16 sender; 131862cd659SVeerasenareddy Burru /* receiver id */ 132862cd659SVeerasenareddy Burru u16 receiver; 133862cd659SVeerasenareddy Burru /* octep_ctrl_net_h2t_cmd */ 134862cd659SVeerasenareddy Burru u16 cmd; 135862cd659SVeerasenareddy Burru /* octep_ctrl_net_reply */ 136862cd659SVeerasenareddy Burru u16 reply; 137577f0d1bSVeerasenareddy Burru } s; 138862cd659SVeerasenareddy Burru }; 139862cd659SVeerasenareddy Burru 140862cd659SVeerasenareddy Burru /* get mtu response */ 141862cd659SVeerasenareddy Burru struct octep_ctrl_net_h2f_resp_cmd_mtu { 142862cd659SVeerasenareddy Burru /* 0-65535 */ 143862cd659SVeerasenareddy Burru u16 val; 144862cd659SVeerasenareddy Burru }; 145862cd659SVeerasenareddy Burru 146862cd659SVeerasenareddy Burru /* get mac response */ 147862cd659SVeerasenareddy Burru struct octep_ctrl_net_h2f_resp_cmd_mac { 148862cd659SVeerasenareddy Burru /* xx:xx:xx:xx:xx:xx */ 149862cd659SVeerasenareddy Burru u8 addr[ETH_ALEN]; 150862cd659SVeerasenareddy Burru }; 151862cd659SVeerasenareddy Burru 1520718693fSVeerasenareddy Burru /* get if_stats, xstats, q_stats request */ 1530718693fSVeerasenareddy Burru struct octep_ctrl_net_h2f_resp_cmd_get_stats { 1540718693fSVeerasenareddy Burru struct octep_iface_rx_stats rx_stats; 1550718693fSVeerasenareddy Burru struct octep_iface_tx_stats tx_stats; 1560718693fSVeerasenareddy Burru }; 1570718693fSVeerasenareddy Burru 158862cd659SVeerasenareddy Burru /* get link state, rx state response */ 159862cd659SVeerasenareddy Burru struct octep_ctrl_net_h2f_resp_cmd_state { 160862cd659SVeerasenareddy Burru /* enum octep_ctrl_net_state */ 161862cd659SVeerasenareddy Burru u16 state; 162862cd659SVeerasenareddy Burru }; 163862cd659SVeerasenareddy Burru 164862cd659SVeerasenareddy Burru /* Host to fw response data */ 165862cd659SVeerasenareddy Burru struct octep_ctrl_net_h2f_resp { 166577f0d1bSVeerasenareddy Burru union octep_ctrl_net_resp_hdr hdr; 167862cd659SVeerasenareddy Burru union { 168862cd659SVeerasenareddy Burru struct octep_ctrl_net_h2f_resp_cmd_mtu mtu; 169862cd659SVeerasenareddy Burru struct octep_ctrl_net_h2f_resp_cmd_mac mac; 1700718693fSVeerasenareddy Burru struct octep_ctrl_net_h2f_resp_cmd_get_stats if_stats; 171862cd659SVeerasenareddy Burru struct octep_ctrl_net_h2f_resp_cmd_state link; 172862cd659SVeerasenareddy Burru struct octep_ctrl_net_h2f_resp_cmd_state rx; 173862cd659SVeerasenareddy Burru struct octep_ctrl_net_link_info link_info; 174862cd659SVeerasenareddy Burru }; 175862cd659SVeerasenareddy Burru } __packed; 176862cd659SVeerasenareddy Burru 177862cd659SVeerasenareddy Burru /* link state notofication */ 178862cd659SVeerasenareddy Burru struct octep_ctrl_net_f2h_req_cmd_state { 179862cd659SVeerasenareddy Burru /* enum octep_ctrl_net_state */ 180862cd659SVeerasenareddy Burru u16 state; 181862cd659SVeerasenareddy Burru }; 182862cd659SVeerasenareddy Burru 183862cd659SVeerasenareddy Burru /* Fw to host request data */ 184862cd659SVeerasenareddy Burru struct octep_ctrl_net_f2h_req { 185577f0d1bSVeerasenareddy Burru union octep_ctrl_net_req_hdr hdr; 186862cd659SVeerasenareddy Burru union { 187862cd659SVeerasenareddy Burru struct octep_ctrl_net_f2h_req_cmd_state link; 188862cd659SVeerasenareddy Burru }; 189862cd659SVeerasenareddy Burru }; 190862cd659SVeerasenareddy Burru 191862cd659SVeerasenareddy Burru /* Fw to host response data */ 192862cd659SVeerasenareddy Burru struct octep_ctrl_net_f2h_resp { 193577f0d1bSVeerasenareddy Burru union octep_ctrl_net_resp_hdr hdr; 194862cd659SVeerasenareddy Burru }; 195862cd659SVeerasenareddy Burru 196577f0d1bSVeerasenareddy Burru /* Max data size to be transferred over mbox */ 197577f0d1bSVeerasenareddy Burru union octep_ctrl_net_max_data { 198862cd659SVeerasenareddy Burru struct octep_ctrl_net_h2f_req h2f_req; 199862cd659SVeerasenareddy Burru struct octep_ctrl_net_h2f_resp h2f_resp; 200862cd659SVeerasenareddy Burru struct octep_ctrl_net_f2h_req f2h_req; 201862cd659SVeerasenareddy Burru struct octep_ctrl_net_f2h_resp f2h_resp; 202862cd659SVeerasenareddy Burru }; 203862cd659SVeerasenareddy Burru 204577f0d1bSVeerasenareddy Burru struct octep_ctrl_net_wait_data { 205577f0d1bSVeerasenareddy Burru struct list_head list; 206577f0d1bSVeerasenareddy Burru int done; 207577f0d1bSVeerasenareddy Burru struct octep_ctrl_mbox_msg msg; 208577f0d1bSVeerasenareddy Burru union { 209577f0d1bSVeerasenareddy Burru struct octep_ctrl_net_h2f_req req; 210577f0d1bSVeerasenareddy Burru struct octep_ctrl_net_h2f_resp resp; 211577f0d1bSVeerasenareddy Burru } data; 212577f0d1bSVeerasenareddy Burru }; 213862cd659SVeerasenareddy Burru 214577f0d1bSVeerasenareddy Burru /** Initialize data for ctrl net. 215577f0d1bSVeerasenareddy Burru * 216577f0d1bSVeerasenareddy Burru * @param oct: non-null pointer to struct octep_device. 217577f0d1bSVeerasenareddy Burru * 218577f0d1bSVeerasenareddy Burru * return value: 0 on success, -errno on error. 219577f0d1bSVeerasenareddy Burru */ 220577f0d1bSVeerasenareddy Burru int octep_ctrl_net_init(struct octep_device *oct); 221862cd659SVeerasenareddy Burru 222862cd659SVeerasenareddy Burru /** Get link status from firmware. 223862cd659SVeerasenareddy Burru * 224862cd659SVeerasenareddy Burru * @param oct: non-null pointer to struct octep_device. 225f25e5967SVeerasenareddy Burru * @param vfid: Index of virtual function. 226862cd659SVeerasenareddy Burru * 227862cd659SVeerasenareddy Burru * return value: link status 0=down, 1=up. 228862cd659SVeerasenareddy Burru */ 229f25e5967SVeerasenareddy Burru int octep_ctrl_net_get_link_status(struct octep_device *oct, int vfid); 230862cd659SVeerasenareddy Burru 231862cd659SVeerasenareddy Burru /** Set link status in firmware. 232862cd659SVeerasenareddy Burru * 233862cd659SVeerasenareddy Burru * @param oct: non-null pointer to struct octep_device. 234f25e5967SVeerasenareddy Burru * @param vfid: Index of virtual function. 235862cd659SVeerasenareddy Burru * @param up: boolean status. 236577f0d1bSVeerasenareddy Burru * @param wait_for_response: poll for response. 237577f0d1bSVeerasenareddy Burru * 238577f0d1bSVeerasenareddy Burru * return value: 0 on success, -errno on failure 239862cd659SVeerasenareddy Burru */ 240f25e5967SVeerasenareddy Burru int octep_ctrl_net_set_link_status(struct octep_device *oct, int vfid, bool up, 241577f0d1bSVeerasenareddy Burru bool wait_for_response); 242862cd659SVeerasenareddy Burru 243862cd659SVeerasenareddy Burru /** Set rx state in firmware. 244862cd659SVeerasenareddy Burru * 245862cd659SVeerasenareddy Burru * @param oct: non-null pointer to struct octep_device. 246f25e5967SVeerasenareddy Burru * @param vfid: Index of virtual function. 247862cd659SVeerasenareddy Burru * @param up: boolean status. 248577f0d1bSVeerasenareddy Burru * @param wait_for_response: poll for response. 249577f0d1bSVeerasenareddy Burru * 250577f0d1bSVeerasenareddy Burru * return value: 0 on success, -errno on failure. 251862cd659SVeerasenareddy Burru */ 252f25e5967SVeerasenareddy Burru int octep_ctrl_net_set_rx_state(struct octep_device *oct, int vfid, bool up, 253577f0d1bSVeerasenareddy Burru bool wait_for_response); 254862cd659SVeerasenareddy Burru 255862cd659SVeerasenareddy Burru /** Get mac address from firmware. 256862cd659SVeerasenareddy Burru * 257862cd659SVeerasenareddy Burru * @param oct: non-null pointer to struct octep_device. 258f25e5967SVeerasenareddy Burru * @param vfid: Index of virtual function. 259862cd659SVeerasenareddy Burru * @param addr: non-null pointer to mac address. 260862cd659SVeerasenareddy Burru * 261862cd659SVeerasenareddy Burru * return value: 0 on success, -errno on failure. 262862cd659SVeerasenareddy Burru */ 263f25e5967SVeerasenareddy Burru int octep_ctrl_net_get_mac_addr(struct octep_device *oct, int vfid, u8 *addr); 264862cd659SVeerasenareddy Burru 265862cd659SVeerasenareddy Burru /** Set mac address in firmware. 266862cd659SVeerasenareddy Burru * 267862cd659SVeerasenareddy Burru * @param oct: non-null pointer to struct octep_device. 268f25e5967SVeerasenareddy Burru * @param vfid: Index of virtual function. 269862cd659SVeerasenareddy Burru * @param addr: non-null pointer to mac address. 270577f0d1bSVeerasenareddy Burru * @param wait_for_response: poll for response. 271577f0d1bSVeerasenareddy Burru * 272577f0d1bSVeerasenareddy Burru * return value: 0 on success, -errno on failure. 273862cd659SVeerasenareddy Burru */ 274f25e5967SVeerasenareddy Burru int octep_ctrl_net_set_mac_addr(struct octep_device *oct, int vfid, u8 *addr, 275577f0d1bSVeerasenareddy Burru bool wait_for_response); 276862cd659SVeerasenareddy Burru 277862cd659SVeerasenareddy Burru /** Set mtu in firmware. 278862cd659SVeerasenareddy Burru * 279862cd659SVeerasenareddy Burru * @param oct: non-null pointer to struct octep_device. 280f25e5967SVeerasenareddy Burru * @param vfid: Index of virtual function. 281862cd659SVeerasenareddy Burru * @param mtu: mtu. 282577f0d1bSVeerasenareddy Burru * @param wait_for_response: poll for response. 283577f0d1bSVeerasenareddy Burru * 284577f0d1bSVeerasenareddy Burru * return value: 0 on success, -errno on failure. 285862cd659SVeerasenareddy Burru */ 286f25e5967SVeerasenareddy Burru int octep_ctrl_net_set_mtu(struct octep_device *oct, int vfid, int mtu, 287577f0d1bSVeerasenareddy Burru bool wait_for_response); 288862cd659SVeerasenareddy Burru 289862cd659SVeerasenareddy Burru /** Get interface statistics from firmware. 290862cd659SVeerasenareddy Burru * 291862cd659SVeerasenareddy Burru * @param oct: non-null pointer to struct octep_device. 292f25e5967SVeerasenareddy Burru * @param vfid: Index of virtual function. 2930718693fSVeerasenareddy Burru * @param rx_stats: non-null pointer struct octep_iface_rx_stats. 2940718693fSVeerasenareddy Burru * @param tx_stats: non-null pointer struct octep_iface_tx_stats. 295862cd659SVeerasenareddy Burru * 296862cd659SVeerasenareddy Burru * return value: 0 on success, -errno on failure. 297862cd659SVeerasenareddy Burru */ 2980718693fSVeerasenareddy Burru int octep_ctrl_net_get_if_stats(struct octep_device *oct, int vfid, 2990718693fSVeerasenareddy Burru struct octep_iface_rx_stats *rx_stats, 3000718693fSVeerasenareddy Burru struct octep_iface_tx_stats *tx_stats); 301862cd659SVeerasenareddy Burru 302862cd659SVeerasenareddy Burru /** Get link info from firmware. 303862cd659SVeerasenareddy Burru * 304862cd659SVeerasenareddy Burru * @param oct: non-null pointer to struct octep_device. 305f25e5967SVeerasenareddy Burru * @param vfid: Index of virtual function. 3060718693fSVeerasenareddy Burru * @param link_info: non-null pointer to struct octep_iface_link_info. 307862cd659SVeerasenareddy Burru * 308862cd659SVeerasenareddy Burru * return value: 0 on success, -errno on failure. 309862cd659SVeerasenareddy Burru */ 3100718693fSVeerasenareddy Burru int octep_ctrl_net_get_link_info(struct octep_device *oct, int vfid, 3110718693fSVeerasenareddy Burru struct octep_iface_link_info *link_info); 312862cd659SVeerasenareddy Burru 313862cd659SVeerasenareddy Burru /** Set link info in firmware. 314862cd659SVeerasenareddy Burru * 315862cd659SVeerasenareddy Burru * @param oct: non-null pointer to struct octep_device. 316f25e5967SVeerasenareddy Burru * @param vfid: Index of virtual function. 317577f0d1bSVeerasenareddy Burru * @param link_info: non-null pointer to struct octep_iface_link_info. 318577f0d1bSVeerasenareddy Burru * @param wait_for_response: poll for response. 319577f0d1bSVeerasenareddy Burru * 320577f0d1bSVeerasenareddy Burru * return value: 0 on success, -errno on failure. 321862cd659SVeerasenareddy Burru */ 322577f0d1bSVeerasenareddy Burru int octep_ctrl_net_set_link_info(struct octep_device *oct, 323f25e5967SVeerasenareddy Burru int vfid, 324577f0d1bSVeerasenareddy Burru struct octep_iface_link_info *link_info, 325577f0d1bSVeerasenareddy Burru bool wait_for_response); 326577f0d1bSVeerasenareddy Burru 327577f0d1bSVeerasenareddy Burru /** Poll for firmware messages and process them. 328577f0d1bSVeerasenareddy Burru * 329577f0d1bSVeerasenareddy Burru * @param oct: non-null pointer to struct octep_device. 330577f0d1bSVeerasenareddy Burru */ 331577f0d1bSVeerasenareddy Burru void octep_ctrl_net_recv_fw_messages(struct octep_device *oct); 332577f0d1bSVeerasenareddy Burru 333577f0d1bSVeerasenareddy Burru /** Uninitialize data for ctrl net. 334577f0d1bSVeerasenareddy Burru * 335577f0d1bSVeerasenareddy Burru * @param oct: non-null pointer to struct octep_device. 336577f0d1bSVeerasenareddy Burru * 337577f0d1bSVeerasenareddy Burru * return value: 0 on success, -errno on error. 338577f0d1bSVeerasenareddy Burru */ 339577f0d1bSVeerasenareddy Burru int octep_ctrl_net_uninit(struct octep_device *oct); 340862cd659SVeerasenareddy Burru 341862cd659SVeerasenareddy Burru #endif /* __OCTEP_CTRL_NET_H__ */ 342