Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
net
ethernet
adi
bfin_mac.h
Go to the documentation of this file.
1
/*
2
* Blackfin On-Chip MAC Driver
3
*
4
* Copyright 2004-2007 Analog Devices Inc.
5
*
6
* Enter bugs at http://blackfin.uclinux.org/
7
*
8
* Licensed under the GPL-2 or later.
9
*/
10
#ifndef _BFIN_MAC_H_
11
#define _BFIN_MAC_H_
12
13
#include <
linux/net_tstamp.h
>
14
#include <
linux/clocksource.h
>
15
#include <
linux/timecompare.h
>
16
#include <
linux/timer.h
>
17
#include <
linux/etherdevice.h
>
18
#include <
linux/bfin_mac.h
>
19
20
/*
21
* Disable hardware checksum for bug #5600 if writeback cache is
22
* enabled. Otherwize, corrupted RX packet will be sent up stack
23
* without error mark.
24
*/
25
#ifndef CONFIG_BFIN_EXTMEM_WRITEBACK
26
#define BFIN_MAC_CSUM_OFFLOAD
27
#endif
28
29
#define TX_RECLAIM_JIFFIES (HZ / 5)
30
31
struct
dma_descriptor
{
32
struct
dma_descriptor
*
next_dma_desc
;
33
unsigned
long
start_addr
;
34
unsigned
short
config
;
35
unsigned
short
x_count
;
36
};
37
38
struct
status_area_rx
{
39
#if defined(BFIN_MAC_CSUM_OFFLOAD)
40
unsigned
short
ip_hdr_csum
;
/* ip header checksum */
41
/* ip payload(udp or tcp or others) checksum */
42
unsigned
short
ip_payload_csum
;
43
#endif
44
unsigned
long
status_word
;
/* the frame status word */
45
};
46
47
struct
status_area_tx
{
48
unsigned
long
status_word
;
/* the frame status word */
49
};
50
51
/* use two descriptors for a packet */
52
struct
net_dma_desc_rx
{
53
struct
net_dma_desc_rx
*
next
;
54
struct
sk_buff
*
skb
;
55
struct
dma_descriptor
desc_a
;
56
struct
dma_descriptor
desc_b
;
57
struct
status_area_rx
status
;
58
};
59
60
/* use two descriptors for a packet */
61
struct
net_dma_desc_tx
{
62
struct
net_dma_desc_tx
*
next
;
63
struct
sk_buff
*
skb
;
64
struct
dma_descriptor
desc_a
;
65
struct
dma_descriptor
desc_b
;
66
unsigned
char
packet
[1560];
67
struct
status_area_tx
status
;
68
};
69
70
struct
bfin_mac_local
{
71
/*
72
* these are things that the kernel wants me to keep, so users
73
* can find out semi-useless statistics of how well the card is
74
* performing
75
*/
76
struct
net_device_stats
stats
;
77
78
spinlock_t
lock
;
79
80
int
wol
;
/* Wake On Lan */
81
int
irq_wake_requested
;
82
struct
timer_list
tx_reclaim_timer
;
83
struct
net_device
*
ndev
;
84
85
/* Data for EMAC_VLAN1 regs */
86
u16
vlan1_mask
,
vlan2_mask
;
87
88
/* MII and PHY stuffs */
89
int
old_link
;
/* used by bf537_adjust_link */
90
int
old_speed
;
91
int
old_duplex
;
92
93
struct
phy_device
*
phydev
;
94
struct
mii_bus
*
mii_bus
;
95
96
#if defined(CONFIG_BFIN_MAC_USE_HWSTAMP)
97
struct
cyclecounter
cycles;
98
struct
timecounter
clock
;
99
struct
timecompare
compare;
100
struct
hwtstamp_config
stamp_cfg;
101
#endif
102
};
103
104
extern
int
bfin_get_ether_addr
(
char
*
addr
);
105
106
#endif
Generated on Thu Jan 10 2013 13:58:16 for Linux Kernel by
1.8.2