drivers/staging/octeon/octeon-ethernet.h
Source file repositories/reference/linux-study-clean/drivers/staging/octeon/octeon-ethernet.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/staging/octeon/octeon-ethernet.h- Extension
.h- Size
- 2889 bytes
- Lines
- 108
- Domain
- Driver Families
- Bucket
- drivers/staging
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/of.hlinux/phy.hasm/octeon/octeon.hasm/octeon/cvmx-asxx-defs.hasm/octeon/cvmx-config.hasm/octeon/cvmx-fau.hasm/octeon/cvmx-gmxx-defs.hasm/octeon/cvmx-helper.hasm/octeon/cvmx-helper-util.hasm/octeon/cvmx-ipd.hasm/octeon/cvmx-ipd-defs.hasm/octeon/cvmx-npi-defs.hasm/octeon/cvmx-pip.hasm/octeon/cvmx-pko.hasm/octeon/cvmx-pow.hasm/octeon/cvmx-scratch.hasm/octeon/cvmx-spi.hasm/octeon/cvmx-spxx-defs.hasm/octeon/cvmx-stxx-defs.hasm/octeon/cvmx-wqe.hocteon-stubs.h
Detected Declarations
struct octeon_ethernet
Annotated Snippet
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;
/* PHY mode */
phy_interface_t phy_mode;
/* 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,
union cvmx_helper_link_info 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
Annotation
- Immediate include surface: `linux/of.h`, `linux/phy.h`, `asm/octeon/octeon.h`, `asm/octeon/cvmx-asxx-defs.h`, `asm/octeon/cvmx-config.h`, `asm/octeon/cvmx-fau.h`, `asm/octeon/cvmx-gmxx-defs.h`, `asm/octeon/cvmx-helper.h`.
- Detected declarations: `struct octeon_ethernet`.
- Atlas domain: Driver Families / drivers/staging.
- Implementation status: source implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.