Files
linux-nv-oot/drivers/net/ethernet/marvell/oak/oak_net.h
Sheetal Tigadoli be8bd94e28 ethernet:marvell:Fix compilation errors in K5.15
Fix compilation errors in K5.15
  1. signature of netif_napi_add has changed,
     use netif_napi_add_weight instead
  2. addr issues arising due to constifying
     *dev_addr varable defined in net_device struct

Jira ESDP-16549
Bug 3882239

Change-Id: Id644925d2e1cee71d7fc8f97e9c1982897a744ef
Signed-off-by: Sheetal Tigadoli <stigadoli@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2858625
Reviewed-by: Sumeet Gupta <sumeetg@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-03-21 02:27:29 -07:00

197 lines
5.8 KiB
C

/*
*
* If you received this File from Marvell, you may opt to use, redistribute and/or
* modify this File in accordance with the terms and conditions of the General
* Public License Version 2, June 1991 (the "GPL License"), a copy of which is
* available along with the File in the license.txt file or by writing to the Free
* Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 or
* on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
* THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE IMPLIED
* WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY
* DISCLAIMED. The GPL License provides additional details about this warranty
* disclaimer.
*
*/
#ifndef H_OAK_NET
#define H_OAK_NET
/* Include for relation to classifier oak_unimac */
#include "oak_unimac.h"
#ifdef CMDTOOL
/* Include for relation to classifier oak_ctl */
#include "oak_ctl.h"
#endif
/* Include for relation to classifier linux/ip.h */
#include "linux/ip.h"
/* Include for relation to classifier linux/ipv6.h */
#include "linux/ipv6.h"
/* Include for relation to classifier linux/if_vlan.h */
#include "linux/if_vlan.h"
#include <linux/version.h>
#define OAK_ONEBYTE 1
extern u32 rxs;
extern u32 txs;
extern int chan;
extern int rto;
extern int mhdr;
extern u32 port_speed;
extern int napi_wt;
/* Name : esu_set_mtu
* Returns : int
* Parameters: struct net_device * net_dev = net_dev, int new_mtu = new_mtu
* Description: This function set the MTU size of the Ethernet interface.
*/
int oak_net_esu_set_mtu(struct net_device *net_dev, int new_mtu);
/* Name : oak_set_mtu_config
* Returns : void
* Parameters: struct net_device *netdev
* Description: This function sets the min and max MTU size in the linux netdev.
*/
void oak_set_mtu_config(struct net_device *netdev);
/* Name : esu_ena_speed
* Returns : void
* Parameters: int gbit = gbit, oak_t * np = np
*/
void oak_net_esu_ena_speed(u32 gbit, oak_t *np);
/* Name : oak_net_open
* Returns : int
* Parameters : struct net_device * net_dev
* Description : This function initialize the interface
*/
int oak_net_open(struct net_device *net_dev);
/* Name : oak_net_close
* Returns : int
* Parameters : struct net_device *net_dev
* Description : This function close the interface
*/
int oak_net_close(struct net_device *net_dev);
/* Name : oak_net_ioctl
* Returns : int
* Parameters : struct net_device *net_dev, struct ifreq *ifr, int cmd
* Description : This function handles IOCTL request
*/
int oak_net_ioctl(struct net_device *net_dev, struct ifreq *ifr, int cmd);
/* Name : add_napi
* Returns : void
* Parameters: struct net_device * netdev
*/
void oak_net_add_napi(struct net_device *netdev);
/* Name : del_napi
* Returns : void
* Parameters: struct net_device * netdev
*/
void oak_net_del_napi(struct net_device *netdev);
/* Name : set_mac_addr
* Returns : int
* Parameters: struct net_device * dev = dev, void * p_addr = addr
*/
int oak_net_set_mac_addr(struct net_device *dev, void *p_addr);
/* Name : alloc_page
* Returns : struct page *
* Parameters : oak_t *np, dma_addr_t * dma, nt direction
* Description : This function allocate page
*/
struct page *oak_net_alloc_page(oak_t *np, dma_addr_t *dma,
enum dma_data_direction dir);
/* Name : oak_net_select_queue
* Returns : u16
* Parameters : struct net_device *dev, struct sk_buff *skb,
* struct net_device *sb_dev
* Description : This function pre-seed the SKB by recording the RX queue
*/
u16 oak_net_select_queue(struct net_device *dev, struct sk_buff *skb,
struct net_device *sb_dev);
/* Name : xmit_frame
* Returns : int
* Parameters: struct sk_buff * skb, struct net_device * net_dev
*/
netdev_tx_t oak_net_xmit_frame(struct sk_buff *skb, struct net_device *net_dev);
/* Name : start_all
* Returns : int
* Parameters: oak_t * np = np
*/
int oak_net_start_all(oak_t *np);
/* Name : stop_all
* Returns : void
* Parameters: oak_t * np = np
*/
void oak_net_stop_all(oak_t *np);
/* Name : tbr_free
* Returns : void
* Parameters: oak_tx_chan_t * txp = txp
*/
void oak_net_tbr_free(oak_tx_chan_t *txp);
/* Name : oak_net_rbr_free
* Returns : void
* Parameters : oak_rx_chan_t *rxp = rxp
* Description : This function free the receive buffer ring
*/
void oak_net_rbr_free(oak_rx_chan_t *rxp);
/* Name : add_txd_length
* Returns : void
* Parameters: oak_tx_chan_t * txc, u16 len
*/
void oak_net_add_txd_length(oak_tx_chan_t *txc, u16 len);
/* Name : oak_net_set_txd_first
* Returns : void
* Parameters : oak_tx_chan_t *txc, u16 len, u32 g3, u32 g4,
* dma_addr_t map, u32 sz, int flags
* Description : This function set the transmit descriptor
*/
void oak_net_set_txd_first(oak_tx_chan_t *txc, u16 len, u32 g3,
u32 g4, dma_addr_t map, u32 sz, u32 flags);
/* Name : set_txd_page
* Returns : void
* Parameters: oak_tx_chan_t * txc, u16 len, dma_addr_t map, u32
* sz, int flags
*/
void oak_net_set_txd_page(oak_tx_chan_t *txc, u16 len, dma_addr_t map,
u32 sz, u32 flags);
/* Name : set_txd_last
* Returns : void
* Parameters: oak_tx_chan_t * txc, struct sk_buff * skb, struct page * page
*/
void oak_net_set_txd_last(oak_tx_chan_t *txc, struct sk_buff *skb,
struct page *page);
/* Name : oak_net_pcie_get_width_cap
* Returns : enum pcie_link_width
* Parameters: struct pci_dev *
*/
enum pcie_link_width oak_net_pcie_get_width_cap(struct pci_dev *dev);
/* Name : oak_net_skb_tx_protocol_type
* Returns : int
* Parameters : struct sk_buff *skb
* Description : This function returns the transmit frames protocol type for
* deciding the checksum offload configuration.
*/
int oak_net_skb_tx_protocol_type(struct sk_buff *skb);
#endif /* #ifndef H_OAK_NET */