![Greg Kroah-Hartman](/assets/img/avatar_default.png)
Now that the SPDX tag is in all drivers/staging/octeon/ files, that identifies the license in a specific and legally-defined manner. So the extra GPL text wording can be removed as it is no longer needed at all. This is done on a quest to remove the 700+ different ways that files in the kernel describe the GPL license text. And there's unneeded stuff like the address (sometimes incorrect) for the FSF which is never needed. No copyright headers or other non-license-description text was removed. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
79 lines
2.1 KiB
C
79 lines
2.1 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* This file is based on code from OCTEON SDK by Cavium Networks.
|
|
*
|
|
* Copyright (c) 2003-2010 Cavium Networks
|
|
*/
|
|
|
|
/*
|
|
* External interface for the Cavium Octeon ethernet driver.
|
|
*/
|
|
#ifndef OCTEON_ETHERNET_H
|
|
#define OCTEON_ETHERNET_H
|
|
|
|
#include <linux/of.h>
|
|
|
|
#include <asm/octeon/cvmx-helper-board.h>
|
|
|
|
/**
|
|
* This is the definition of the Ethernet driver's private
|
|
* driver state stored in netdev_priv(dev).
|
|
*/
|
|
struct octeon_ethernet {
|
|
/* PKO hardware output port */
|
|
int port;
|
|
/* PKO hardware queue for the port */
|
|
int queue;
|
|
/* Hardware fetch and add to count outstanding tx buffers */
|
|
int fau;
|
|
/* My netdev. */
|
|
struct net_device *netdev;
|
|
/*
|
|
* Type of port. This is one of the enums in
|
|
* cvmx_helper_interface_mode_t
|
|
*/
|
|
int imode;
|
|
/* List of outstanding tx buffers per queue */
|
|
struct sk_buff_head tx_free_list[16];
|
|
unsigned int last_speed;
|
|
unsigned int last_link;
|
|
/* Last negotiated link state */
|
|
u64 link_info;
|
|
/* Called periodically to check link status */
|
|
void (*poll)(struct net_device *dev);
|
|
struct delayed_work port_periodic_work;
|
|
struct device_node *of_node;
|
|
};
|
|
|
|
int cvm_oct_free_work(void *work_queue_entry);
|
|
|
|
int cvm_oct_rgmii_open(struct net_device *dev);
|
|
|
|
int cvm_oct_sgmii_init(struct net_device *dev);
|
|
int cvm_oct_sgmii_open(struct net_device *dev);
|
|
|
|
int cvm_oct_spi_init(struct net_device *dev);
|
|
void cvm_oct_spi_uninit(struct net_device *dev);
|
|
|
|
int cvm_oct_common_init(struct net_device *dev);
|
|
void cvm_oct_common_uninit(struct net_device *dev);
|
|
void cvm_oct_adjust_link(struct net_device *dev);
|
|
int cvm_oct_common_stop(struct net_device *dev);
|
|
int cvm_oct_common_open(struct net_device *dev,
|
|
void (*link_poll)(struct net_device *));
|
|
void cvm_oct_note_carrier(struct octeon_ethernet *priv,
|
|
cvmx_helper_link_info_t li);
|
|
void cvm_oct_link_poll(struct net_device *dev);
|
|
|
|
extern int always_use_pow;
|
|
extern int pow_send_group;
|
|
extern int pow_receive_groups;
|
|
extern char pow_send_list[];
|
|
extern struct net_device *cvm_oct_device[];
|
|
extern atomic_t cvm_oct_poll_queue_stopping;
|
|
extern u64 cvm_oct_tx_poll_interval;
|
|
|
|
extern int rx_napi_weight;
|
|
|
|
#endif
|