Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
e67b23c7
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
e67b23c7
编写于
11月 18, 2005
作者:
L
Linus Torvalds
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'upstream-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6
上级
d4bf2053
f7492f17
变更
17
隐藏空白更改
内联
并排
Showing
17 changed file
with
353 addition
and
62 deletion
+353
-62
drivers/net/au1000_eth.c
drivers/net/au1000_eth.c
+1
-0
drivers/net/e100.c
drivers/net/e100.c
+257
-18
drivers/net/fec_8xx/Kconfig
drivers/net/fec_8xx/Kconfig
+1
-1
drivers/net/ioc3-eth.c
drivers/net/ioc3-eth.c
+1
-1
drivers/net/r8169.c
drivers/net/r8169.c
+2
-4
drivers/net/saa9730.h
drivers/net/saa9730.h
+25
-11
drivers/net/smc91x.c
drivers/net/smc91x.c
+13
-4
drivers/net/wan/hdlc_cisco.c
drivers/net/wan/hdlc_cisco.c
+6
-0
drivers/net/wan/hdlc_fr.c
drivers/net/wan/hdlc_fr.c
+4
-0
drivers/net/wan/hdlc_generic.c
drivers/net/wan/hdlc_generic.c
+6
-0
drivers/net/wireless/hermes.c
drivers/net/wireless/hermes.c
+3
-3
drivers/net/wireless/hermes.h
drivers/net/wireless/hermes.h
+3
-3
drivers/net/wireless/i82593.h
drivers/net/wireless/i82593.h
+8
-3
drivers/net/wireless/ipw2100.c
drivers/net/wireless/ipw2100.c
+18
-11
drivers/net/wireless/ipw2100.h
drivers/net/wireless/ipw2100.h
+2
-0
drivers/net/wireless/prism54/isl_38xx.c
drivers/net/wireless/prism54/isl_38xx.c
+2
-2
include/net/ieee80211.h
include/net/ieee80211.h
+1
-1
未找到文件。
drivers/net/au1000_eth.c
浏览文件 @
e67b23c7
...
...
@@ -32,6 +32,7 @@
*
*/
#include <linux/config.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/sched.h>
...
...
drivers/net/e100.c
浏览文件 @
e67b23c7
...
...
@@ -156,7 +156,7 @@
#define DRV_NAME "e100"
#define DRV_EXT "-NAPI"
#define DRV_VERSION "3.4.14-k
2
"DRV_EXT
#define DRV_VERSION "3.4.14-k
4
"DRV_EXT
#define DRV_DESCRIPTION "Intel(R) PRO/100 Network Driver"
#define DRV_COPYRIGHT "Copyright(c) 1999-2005 Intel Corporation"
#define PFX DRV_NAME ": "
...
...
@@ -903,8 +903,8 @@ static void mdio_write(struct net_device *netdev, int addr, int reg, int data)
static
void
e100_get_defaults
(
struct
nic
*
nic
)
{
struct
param_range
rfds
=
{
.
min
=
16
,
.
max
=
256
,
.
count
=
64
};
struct
param_range
cbs
=
{
.
min
=
64
,
.
max
=
256
,
.
count
=
64
};
struct
param_range
rfds
=
{
.
min
=
16
,
.
max
=
256
,
.
count
=
256
};
struct
param_range
cbs
=
{
.
min
=
64
,
.
max
=
256
,
.
count
=
128
};
pci_read_config_byte
(
nic
->
pdev
,
PCI_REVISION_ID
,
&
nic
->
rev_id
);
/* MAC type is encoded as rev ID; exception: ICH is treated as 82559 */
...
...
@@ -1007,25 +1007,264 @@ static void e100_configure(struct nic *nic, struct cb *cb, struct sk_buff *skb)
c
[
16
],
c
[
17
],
c
[
18
],
c
[
19
],
c
[
20
],
c
[
21
],
c
[
22
],
c
[
23
]);
}
/********************************************************/
/* Micro code for 8086:1229 Rev 8 */
/********************************************************/
/* Parameter values for the D101M B-step */
#define D101M_CPUSAVER_TIMER_DWORD 78
#define D101M_CPUSAVER_BUNDLE_DWORD 65
#define D101M_CPUSAVER_MIN_SIZE_DWORD 126
#define D101M_B_RCVBUNDLE_UCODE \
{\
0x00550215, 0xFFFF0437, 0xFFFFFFFF, 0x06A70789, 0xFFFFFFFF, 0x0558FFFF, \
0x000C0001, 0x00101312, 0x000C0008, 0x00380216, \
0x0010009C, 0x00204056, 0x002380CC, 0x00380056, \
0x0010009C, 0x00244C0B, 0x00000800, 0x00124818, \
0x00380438, 0x00000000, 0x00140000, 0x00380555, \
0x00308000, 0x00100662, 0x00100561, 0x000E0408, \
0x00134861, 0x000C0002, 0x00103093, 0x00308000, \
0x00100624, 0x00100561, 0x000E0408, 0x00100861, \
0x000C007E, 0x00222C21, 0x000C0002, 0x00103093, \
0x00380C7A, 0x00080000, 0x00103090, 0x00380C7A, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
0x0010009C, 0x00244C2D, 0x00010004, 0x00041000, \
0x003A0437, 0x00044010, 0x0038078A, 0x00000000, \
0x00100099, 0x00206C7A, 0x0010009C, 0x00244C48, \
0x00130824, 0x000C0001, 0x00101213, 0x00260C75, \
0x00041000, 0x00010004, 0x00130826, 0x000C0006, \
0x002206A8, 0x0013C926, 0x00101313, 0x003806A8, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
0x00080600, 0x00101B10, 0x00050004, 0x00100826, \
0x00101210, 0x00380C34, 0x00000000, 0x00000000, \
0x0021155B, 0x00100099, 0x00206559, 0x0010009C, \
0x00244559, 0x00130836, 0x000C0000, 0x00220C62, \
0x000C0001, 0x00101B13, 0x00229C0E, 0x00210C0E, \
0x00226C0E, 0x00216C0E, 0x0022FC0E, 0x00215C0E, \
0x00214C0E, 0x00380555, 0x00010004, 0x00041000, \
0x00278C67, 0x00040800, 0x00018100, 0x003A0437, \
0x00130826, 0x000C0001, 0x00220559, 0x00101313, \
0x00380559, 0x00000000, 0x00000000, 0x00000000, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
0x00000000, 0x00130831, 0x0010090B, 0x00124813, \
0x000CFF80, 0x002606AB, 0x00041000, 0x00010004, \
0x003806A8, 0x00000000, 0x00000000, 0x00000000, \
}
/********************************************************/
/* Micro code for 8086:1229 Rev 9 */
/********************************************************/
/* Parameter values for the D101S */
#define D101S_CPUSAVER_TIMER_DWORD 78
#define D101S_CPUSAVER_BUNDLE_DWORD 67
#define D101S_CPUSAVER_MIN_SIZE_DWORD 128
#define D101S_RCVBUNDLE_UCODE \
{\
0x00550242, 0xFFFF047E, 0xFFFFFFFF, 0x06FF0818, 0xFFFFFFFF, 0x05A6FFFF, \
0x000C0001, 0x00101312, 0x000C0008, 0x00380243, \
0x0010009C, 0x00204056, 0x002380D0, 0x00380056, \
0x0010009C, 0x00244F8B, 0x00000800, 0x00124818, \
0x0038047F, 0x00000000, 0x00140000, 0x003805A3, \
0x00308000, 0x00100610, 0x00100561, 0x000E0408, \
0x00134861, 0x000C0002, 0x00103093, 0x00308000, \
0x00100624, 0x00100561, 0x000E0408, 0x00100861, \
0x000C007E, 0x00222FA1, 0x000C0002, 0x00103093, \
0x00380F90, 0x00080000, 0x00103090, 0x00380F90, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
0x0010009C, 0x00244FAD, 0x00010004, 0x00041000, \
0x003A047E, 0x00044010, 0x00380819, 0x00000000, \
0x00100099, 0x00206FFD, 0x0010009A, 0x0020AFFD, \
0x0010009C, 0x00244FC8, 0x00130824, 0x000C0001, \
0x00101213, 0x00260FF7, 0x00041000, 0x00010004, \
0x00130826, 0x000C0006, 0x00220700, 0x0013C926, \
0x00101313, 0x00380700, 0x00000000, 0x00000000, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
0x00080600, 0x00101B10, 0x00050004, 0x00100826, \
0x00101210, 0x00380FB6, 0x00000000, 0x00000000, \
0x002115A9, 0x00100099, 0x002065A7, 0x0010009A, \
0x0020A5A7, 0x0010009C, 0x002445A7, 0x00130836, \
0x000C0000, 0x00220FE4, 0x000C0001, 0x00101B13, \
0x00229F8E, 0x00210F8E, 0x00226F8E, 0x00216F8E, \
0x0022FF8E, 0x00215F8E, 0x00214F8E, 0x003805A3, \
0x00010004, 0x00041000, 0x00278FE9, 0x00040800, \
0x00018100, 0x003A047E, 0x00130826, 0x000C0001, \
0x002205A7, 0x00101313, 0x003805A7, 0x00000000, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
0x00000000, 0x00000000, 0x00000000, 0x00130831, \
0x0010090B, 0x00124813, 0x000CFF80, 0x00260703, \
0x00041000, 0x00010004, 0x00380700 \
}
/********************************************************/
/* Micro code for the 8086:1229 Rev F/10 */
/********************************************************/
/* Parameter values for the D102 E-step */
#define D102_E_CPUSAVER_TIMER_DWORD 42
#define D102_E_CPUSAVER_BUNDLE_DWORD 54
#define D102_E_CPUSAVER_MIN_SIZE_DWORD 46
#define D102_E_RCVBUNDLE_UCODE \
{\
0x007D028F, 0x0E4204F9, 0x14ED0C85, 0x14FA14E9, 0x0EF70E36, 0x1FFF1FFF, \
0x00E014B9, 0x00000000, 0x00000000, 0x00000000, \
0x00E014BD, 0x00000000, 0x00000000, 0x00000000, \
0x00E014D5, 0x00000000, 0x00000000, 0x00000000, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
0x00E014C1, 0x00000000, 0x00000000, 0x00000000, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
0x00E014C8, 0x00000000, 0x00000000, 0x00000000, \
0x00200600, 0x00E014EE, 0x00000000, 0x00000000, \
0x0030FF80, 0x00940E46, 0x00038200, 0x00102000, \
0x00E00E43, 0x00000000, 0x00000000, 0x00000000, \
0x00300006, 0x00E014FB, 0x00000000, 0x00000000, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
0x00906E41, 0x00800E3C, 0x00E00E39, 0x00000000, \
0x00906EFD, 0x00900EFD, 0x00E00EF8, 0x00000000, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
0x00000000, 0x00000000, 0x00000000, 0x00000000, \
}
static
void
e100_load_ucode
(
struct
nic
*
nic
,
struct
cb
*
cb
,
struct
sk_buff
*
skb
)
{
int
i
;
static
const
u32
ucode
[
UCODE_SIZE
]
=
{
/* NFS packets are misinterpreted as TCO packets and
* incorrectly routed to the BMC over SMBus. This
* microcode patch checks the fragmented IP bit in the
* NFS/UDP header to distinguish between NFS and TCO. */
0x0EF70E36
,
0x1FFF1FFF
,
0x1FFF1FFF
,
0x1FFF1FFF
,
0x1FFF1FFF
,
0x1FFF1FFF
,
0x00906E41
,
0x00800E3C
,
0x00E00E39
,
0x00000000
,
0x00906EFD
,
0x00900EFD
,
0x00E00EF8
,
};
if
(
nic
->
mac
==
mac_82551_F
||
nic
->
mac
==
mac_82551_10
)
{
for
(
i
=
0
;
i
<
UCODE_SIZE
;
i
++
)
/* *INDENT-OFF* */
static
struct
{
u32
ucode
[
UCODE_SIZE
+
1
];
u8
mac
;
u8
timer_dword
;
u8
bundle_dword
;
u8
min_size_dword
;
}
ucode_opts
[]
=
{
{
D101M_B_RCVBUNDLE_UCODE
,
mac_82559_D101M
,
D101M_CPUSAVER_TIMER_DWORD
,
D101M_CPUSAVER_BUNDLE_DWORD
,
D101M_CPUSAVER_MIN_SIZE_DWORD
},
{
D101S_RCVBUNDLE_UCODE
,
mac_82559_D101S
,
D101S_CPUSAVER_TIMER_DWORD
,
D101S_CPUSAVER_BUNDLE_DWORD
,
D101S_CPUSAVER_MIN_SIZE_DWORD
},
{
D102_E_RCVBUNDLE_UCODE
,
mac_82551_F
,
D102_E_CPUSAVER_TIMER_DWORD
,
D102_E_CPUSAVER_BUNDLE_DWORD
,
D102_E_CPUSAVER_MIN_SIZE_DWORD
},
{
D102_E_RCVBUNDLE_UCODE
,
mac_82551_10
,
D102_E_CPUSAVER_TIMER_DWORD
,
D102_E_CPUSAVER_BUNDLE_DWORD
,
D102_E_CPUSAVER_MIN_SIZE_DWORD
},
{
{
0
},
0
,
0
,
0
,
0
}
},
*
opts
;
/* *INDENT-ON* */
/*************************************************************************
* CPUSaver parameters
*
* All CPUSaver parameters are 16-bit literals that are part of a
* "move immediate value" instruction. By changing the value of
* the literal in the instruction before the code is loaded, the
* driver can change the algorithm.
*
* INTDELAY - This loads the dead-man timer with its inital value.
* When this timer expires the interrupt is asserted, and the
* timer is reset each time a new packet is received. (see
* BUNDLEMAX below to set the limit on number of chained packets)
* The current default is 0x600 or 1536. Experiments show that
* the value should probably stay within the 0x200 - 0x1000.
*
* BUNDLEMAX -
* This sets the maximum number of frames that will be bundled. In
* some situations, such as the TCP windowing algorithm, it may be
* better to limit the growth of the bundle size than let it go as
* high as it can, because that could cause too much added latency.
* The default is six, because this is the number of packets in the
* default TCP window size. A value of 1 would make CPUSaver indicate
* an interrupt for every frame received. If you do not want to put
* a limit on the bundle size, set this value to xFFFF.
*
* BUNDLESMALL -
* This contains a bit-mask describing the minimum size frame that
* will be bundled. The default masks the lower 7 bits, which means
* that any frame less than 128 bytes in length will not be bundled,
* but will instead immediately generate an interrupt. This does
* not affect the current bundle in any way. Any frame that is 128
* bytes or large will be bundled normally. This feature is meant
* to provide immediate indication of ACK frames in a TCP environment.
* Customers were seeing poor performance when a machine with CPUSaver
* enabled was sending but not receiving. The delay introduced when
* the ACKs were received was enough to reduce total throughput, because
* the sender would sit idle until the ACK was finally seen.
*
* The current default is 0xFF80, which masks out the lower 7 bits.
* This means that any frame which is x7F (127) bytes or smaller
* will cause an immediate interrupt. Because this value must be a
* bit mask, there are only a few valid values that can be used. To
* turn this feature off, the driver can write the value xFFFF to the
* lower word of this instruction (in the same way that the other
* parameters are used). Likewise, a value of 0xF800 (2047) would
* cause an interrupt to be generated for every frame, because all
* standard Ethernet frames are <= 2047 bytes in length.
*************************************************************************/
/* if you wish to disable the ucode functionality, while maintaining the
* workarounds it provides, set the following defines to:
* BUNDLESMALL 0
* BUNDLEMAX 1
* INTDELAY 1
*/
#define BUNDLESMALL 1
#define BUNDLEMAX (u16)6
#define INTDELAY (u16)1536
/* 0x600 */
/* do not load u-code for ICH devices */
if
(
nic
->
flags
&
ich
)
goto
noloaducode
;
/* Search for ucode match against h/w rev_id */
for
(
opts
=
ucode_opts
;
opts
->
mac
;
opts
++
)
{
int
i
;
u32
*
ucode
=
opts
->
ucode
;
if
(
nic
->
mac
!=
opts
->
mac
)
continue
;
/* Insert user-tunable settings */
ucode
[
opts
->
timer_dword
]
&=
0xFFFF0000
;
ucode
[
opts
->
timer_dword
]
|=
INTDELAY
;
ucode
[
opts
->
bundle_dword
]
&=
0xFFFF0000
;
ucode
[
opts
->
bundle_dword
]
|=
BUNDLEMAX
;
ucode
[
opts
->
min_size_dword
]
&=
0xFFFF0000
;
ucode
[
opts
->
min_size_dword
]
|=
(
BUNDLESMALL
)
?
0xFFFF
:
0xFF80
;
for
(
i
=
0
;
i
<
UCODE_SIZE
;
i
++
)
cb
->
u
.
ucode
[
i
]
=
cpu_to_le32
(
ucode
[
i
]);
cb
->
command
=
cpu_to_le16
(
cb_ucode
);
}
else
cb
->
command
=
cpu_to_le16
(
cb_nop
);
return
;
}
noloaducode:
cb
->
command
=
cpu_to_le16
(
cb_nop
);
}
static
void
e100_setup_iaaddr
(
struct
nic
*
nic
,
struct
cb
*
cb
,
...
...
drivers/net/fec_8xx/Kconfig
浏览文件 @
e67b23c7
config FEC_8XX
tristate "Motorola 8xx FEC driver"
depends on NET_ETHERNET &&
FEC
depends on NET_ETHERNET &&
8xx
select MII
config FEC_8XX_GENERIC_PHY
...
...
drivers/net/ioc3-eth.c
浏览文件 @
e67b23c7
...
...
@@ -1360,7 +1360,7 @@ static struct pci_driver ioc3_driver = {
static
int
__init
ioc3_init_module
(
void
)
{
return
pci_
module_init
(
&
ioc3_driver
);
return
pci_
register_driver
(
&
ioc3_driver
);
}
static
void
__exit
ioc3_cleanup_module
(
void
)
...
...
drivers/net/r8169.c
浏览文件 @
e67b23c7
...
...
@@ -1346,10 +1346,8 @@ rtl8169_init_board(struct pci_dev *pdev, struct net_device **dev_out,
}
else
{
if
(
netif_msg_probe
(
tp
))
{
printk
(
KERN_ERR
PFX
"Cannot find PowerManagement capability. "
"Aborting.
\n
"
);
"PowerManagement capability not found.
\n
"
);
}
goto
err_out_mwi
;
}
/* make sure PCI base addr 1 is MMIO */
...
...
@@ -2516,7 +2514,7 @@ rtl8169_interrupt(int irq, void *dev_instance, struct pt_regs *regs)
}
while
(
boguscnt
>
0
);
if
(
boguscnt
<=
0
)
{
if
(
net
_ratelimit
()
&&
netif_msg_intr
(
tp
)
)
{
if
(
net
if_msg_intr
(
tp
)
&&
net_ratelimit
()
)
{
printk
(
KERN_WARNING
"%s: Too much work at interrupt!
\n
"
,
dev
->
name
);
}
...
...
drivers/net/saa9730.h
浏览文件 @
e67b23c7
/*
* Carsten Langgaard, carstenl@mips.com
* Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved.
* Copyright (C) 2000, 2005 MIPS Technologies, Inc. All rights reserved.
* Authors: Carsten Langgaard <carstenl@mips.com>
* Maciej W. Rozycki <macro@mips.com>
*
* ########################################################################
*
...
...
@@ -265,6 +266,7 @@
/* The SAA9730 (LAN) controller register map, as seen via the PCI-bus. */
#define SAA9730_LAN_REGS_ADDR 0x20400
#define SAA9730_LAN_REGS_SIZE 0x00400
struct
lan_saa9730_regmap
{
volatile
unsigned
int
TxBuffA
;
/* 0x20400 */
...
...
@@ -309,6 +311,7 @@ typedef volatile struct lan_saa9730_regmap t_lan_saa9730_regmap;
/* The SAA9730 (EVM) controller register map, as seen via the PCI-bus. */
#define SAA9730_EVM_REGS_ADDR 0x02000
#define SAA9730_EVM_REGS_SIZE 0x00400
struct
evm_saa9730_regmap
{
volatile
unsigned
int
InterruptStatus1
;
/* 0x2000 */
...
...
@@ -329,16 +332,32 @@ typedef volatile struct evm_saa9730_regmap t_evm_saa9730_regmap;
struct
lan_saa9730_private
{
/*
* Rx/Tx packet buffers.
* The Rx and Tx packets must be PACKET_SIZE aligned.
*/
void
*
buffer_start
;
unsigned
int
buffer_size
;
/*
* DMA address of beginning of this object, returned
* by pci_alloc_consistent().
*/
dma_addr_t
dma_addr
;
/* Pointer to the associated pci device structure */
struct
pci_dev
*
pci_dev
;
/* Pointer for the SAA9730 LAN controller register set. */
t_lan_saa9730_regmap
*
lan_saa9730_regs
;
/* Pointer to the SAA9730 EVM register. */
t_evm_saa9730_regmap
*
evm_saa9730_regs
;
/* TRUE if the next buffer to write is RxBuffA, FALSE if RxBuffB. */
unsigned
char
NextRcvToUseIsA
;
/* Rcv buffer Index. */
unsigned
char
NextRcvPacketIndex
;
/* Next buffer index. */
unsigned
char
NextRcvBufferIndex
;
/* Index of next packet to use in that buffer. */
unsigned
char
NextTxmPacketIndex
;
...
...
@@ -353,13 +372,8 @@ struct lan_saa9730_private {
unsigned
char
DmaRcvPackets
;
unsigned
char
DmaTxmPackets
;
unsigned
char
RcvAIndex
;
/* index into RcvBufferSpace[] for Blk A */
unsigned
char
RcvBIndex
;
/* index into RcvBufferSpace[] for Blk B */
unsigned
int
TxmBuffer
[
LAN_SAA9730_BUFFERS
][
LAN_SAA9730_TXM_Q_SIZE
];
unsigned
int
RcvBuffer
[
LAN_SAA9730_BUFFERS
][
LAN_SAA9730_RCV_Q_SIZE
];
void
*
TxmBuffer
[
LAN_SAA9730_BUFFERS
][
LAN_SAA9730_TXM_Q_SIZE
];
void
*
RcvBuffer
[
LAN_SAA9730_BUFFERS
][
LAN_SAA9730_RCV_Q_SIZE
];
unsigned
int
TxBufferFree
[
LAN_SAA9730_BUFFERS
];
unsigned
char
PhysicalAddress
[
LAN_SAA9730_CAM_ENTRIES
][
6
];
...
...
drivers/net/smc91x.c
浏览文件 @
e67b23c7
...
...
@@ -154,6 +154,12 @@ MODULE_LICENSE("GPL");
*/
#define MEMORY_WAIT_TIME 16
/*
* The maximum number of processing loops allowed for each call to the
* IRQ handler.
*/
#define MAX_IRQ_LOOPS 8
/*
* This selects whether TX packets are sent one by one to the SMC91x internal
* memory and throttled until transmission completes. This may prevent
...
...
@@ -684,7 +690,6 @@ static void smc_hardware_send_pkt(unsigned long data)
/* queue the packet for TX */
SMC_SET_MMU_CMD
(
MC_ENQUEUE
);
SMC_ACK_INT
(
IM_TX_EMPTY_INT
);
smc_special_unlock
(
&
lp
->
lock
);
dev
->
trans_start
=
jiffies
;
...
...
@@ -1207,6 +1212,7 @@ static void smc_phy_configure(void *data)
smc_phy_check_media
(
dev
,
1
);
smc_phy_configure_exit:
SMC_SELECT_BANK
(
2
);
spin_unlock_irq
(
&
lp
->
lock
);
lp
->
work_pending
=
0
;
}
...
...
@@ -1305,7 +1311,7 @@ static irqreturn_t smc_interrupt(int irq, void *dev_id, struct pt_regs *regs)
SMC_SET_INT_MASK
(
0
);
/* set a timeout value, so I don't stay here forever */
timeout
=
8
;
timeout
=
MAX_IRQ_LOOPS
;
do
{
status
=
SMC_GET_INT
();
...
...
@@ -1372,10 +1378,13 @@ static irqreturn_t smc_interrupt(int irq, void *dev_id, struct pt_regs *regs)
/* restore register states */
SMC_SET_PTR
(
saved_pointer
);
SMC_SET_INT_MASK
(
mask
);
spin_unlock
(
&
lp
->
lock
);
DBG
(
3
,
"%s: Interrupt done (%d loops)
\n
"
,
dev
->
name
,
8
-
timeout
);
if
(
timeout
==
MAX_IRQ_LOOPS
)
PRINTK
(
"%s: spurious interrupt (mask = 0x%02x)
\n
"
,
dev
->
name
,
mask
);
DBG
(
3
,
"%s: Interrupt done (%d loops)
\n
"
,
dev
->
name
,
MAX_IRQ_LOOPS
-
timeout
);
/*
* We return IRQ_HANDLED unconditionally here even if there was
...
...
drivers/net/wan/hdlc_cisco.c
浏览文件 @
e67b23c7
...
...
@@ -192,7 +192,9 @@ static int cisco_rx(struct sk_buff *skb)
"uptime %ud%uh%um%us)
\n
"
,
dev
->
name
,
days
,
hrs
,
min
,
sec
);
#if 0
netif_carrier_on(dev);
#endif
hdlc
->
state
.
cisco
.
up
=
1
;
}
}
...
...
@@ -225,7 +227,9 @@ static void cisco_timer(unsigned long arg)
hdlc
->
state
.
cisco
.
settings
.
timeout
*
HZ
))
{
hdlc
->
state
.
cisco
.
up
=
0
;
printk
(
KERN_INFO
"%s: Link down
\n
"
,
dev
->
name
);
#if 0
netif_carrier_off(dev);
#endif
}
cisco_keepalive_send
(
dev
,
CISCO_KEEPALIVE_REQ
,
...
...
@@ -261,8 +265,10 @@ static void cisco_stop(struct net_device *dev)
{
hdlc_device
*
hdlc
=
dev_to_hdlc
(
dev
);
del_timer_sync
(
&
hdlc
->
state
.
cisco
.
timer
);
#if 0
if (netif_carrier_ok(dev))
netif_carrier_off(dev);
#endif
hdlc
->
state
.
cisco
.
up
=
0
;
hdlc
->
state
.
cisco
.
request_sent
=
0
;
}
...
...
drivers/net/wan/hdlc_fr.c
浏览文件 @
e67b23c7
...
...
@@ -545,8 +545,10 @@ static void fr_set_link_state(int reliable, struct net_device *dev)
hdlc
->
state
.
fr
.
reliable
=
reliable
;
if
(
reliable
)
{
#if 0
if (!netif_carrier_ok(dev))
netif_carrier_on(dev);
#endif
hdlc
->
state
.
fr
.
n391cnt
=
0
;
/* Request full status */
hdlc
->
state
.
fr
.
dce_changed
=
1
;
...
...
@@ -560,8 +562,10 @@ static void fr_set_link_state(int reliable, struct net_device *dev)
}
}
}
else
{
#if 0
if (netif_carrier_ok(dev))
netif_carrier_off(dev);
#endif
while
(
pvc
)
{
/* Deactivate all PVCs */
pvc_carrier
(
0
,
pvc
);
...
...
drivers/net/wan/hdlc_generic.c
浏览文件 @
e67b23c7
...
...
@@ -79,11 +79,13 @@ static void __hdlc_set_carrier_on(struct net_device *dev)
hdlc_device
*
hdlc
=
dev_to_hdlc
(
dev
);
if
(
hdlc
->
proto
.
start
)
return
hdlc
->
proto
.
start
(
dev
);
#if 0
#ifdef DEBUG_LINK
if (netif_carrier_ok(dev))
printk(KERN_ERR "hdlc_set_carrier_on(): already on\n");
#endif
netif_carrier_on(dev);
#endif
}
...
...
@@ -94,11 +96,13 @@ static void __hdlc_set_carrier_off(struct net_device *dev)
if
(
hdlc
->
proto
.
stop
)
return
hdlc
->
proto
.
stop
(
dev
);
#if 0
#ifdef DEBUG_LINK
if (!netif_carrier_ok(dev))
printk(KERN_ERR "hdlc_set_carrier_off(): already off\n");
#endif
netif_carrier_off(dev);
#endif
}
...
...
@@ -294,8 +298,10 @@ int register_hdlc_device(struct net_device *dev)
if
(
result
!=
0
)
return
-
EIO
;
#if 0
if (netif_carrier_ok(dev))
netif_carrier_off(dev); /* no carrier until DCD goes up */
#endif
return
0
;
}
...
...
drivers/net/wireless/hermes.c
浏览文件 @
e67b23c7
...
...
@@ -398,7 +398,7 @@ static int hermes_bap_seek(hermes_t *hw, int bap, u16 id, u16 offset)
*
* Returns: < 0 on internal failure (errno), 0 on success, > 0 on error from firmware
*/
int
hermes_bap_pread
(
hermes_t
*
hw
,
int
bap
,
void
*
buf
,
unsigned
len
,
int
hermes_bap_pread
(
hermes_t
*
hw
,
int
bap
,
void
*
buf
,
int
len
,
u16
id
,
u16
offset
)
{
int
dreg
=
bap
?
HERMES_DATA1
:
HERMES_DATA0
;
...
...
@@ -424,7 +424,7 @@ int hermes_bap_pread(hermes_t *hw, int bap, void *buf, unsigned len,
*
* Returns: < 0 on internal failure (errno), 0 on success, > 0 on error from firmware
*/
int
hermes_bap_pwrite
(
hermes_t
*
hw
,
int
bap
,
const
void
*
buf
,
unsigned
len
,
int
hermes_bap_pwrite
(
hermes_t
*
hw
,
int
bap
,
const
void
*
buf
,
int
len
,
u16
id
,
u16
offset
)
{
int
dreg
=
bap
?
HERMES_DATA1
:
HERMES_DATA0
;
...
...
@@ -450,7 +450,7 @@ int hermes_bap_pwrite(hermes_t *hw, int bap, const void *buf, unsigned len,
*
* Returns: < 0 on internal failure (errno), 0 on success, > 0 on error from firmware
*/
int
hermes_bap_pwrite_pad
(
hermes_t
*
hw
,
int
bap
,
const
void
*
buf
,
unsigned
data_len
,
unsigned
len
,
int
hermes_bap_pwrite_pad
(
hermes_t
*
hw
,
int
bap
,
const
void
*
buf
,
unsigned
data_len
,
int
len
,
u16
id
,
u16
offset
)
{
int
dreg
=
bap
?
HERMES_DATA1
:
HERMES_DATA0
;
...
...
drivers/net/wireless/hermes.h
浏览文件 @
e67b23c7
...
...
@@ -372,12 +372,12 @@ int hermes_docmd_wait(hermes_t *hw, u16 cmd, u16 parm0,
struct
hermes_response
*
resp
);
int
hermes_allocate
(
hermes_t
*
hw
,
u16
size
,
u16
*
fid
);
int
hermes_bap_pread
(
hermes_t
*
hw
,
int
bap
,
void
*
buf
,
unsigned
len
,
int
hermes_bap_pread
(
hermes_t
*
hw
,
int
bap
,
void
*
buf
,
int
len
,
u16
id
,
u16
offset
);
int
hermes_bap_pwrite
(
hermes_t
*
hw
,
int
bap
,
const
void
*
buf
,
unsigned
len
,
int
hermes_bap_pwrite
(
hermes_t
*
hw
,
int
bap
,
const
void
*
buf
,
int
len
,
u16
id
,
u16
offset
);
int
hermes_bap_pwrite_pad
(
hermes_t
*
hw
,
int
bap
,
const
void
*
buf
,
unsigned
data_len
,
unsigned
len
,
u16
id
,
u16
offset
);
unsigned
data_len
,
int
len
,
u16
id
,
u16
offset
);
int
hermes_read_ltv
(
hermes_t
*
hw
,
int
bap
,
u16
rid
,
unsigned
buflen
,
u16
*
length
,
void
*
buf
);
int
hermes_write_ltv
(
hermes_t
*
hw
,
int
bap
,
u16
rid
,
...
...
drivers/net/wireless/i82593.h
浏览文件 @
e67b23c7
...
...
@@ -7,11 +7,16 @@
*
* Copyright 1994, Anders Klemets <klemets@it.kth.se>
*
* This software may be freely distributed for noncommercial purposes
* as long as this notice is retained.
*
* HISTORY
* i82593.h,v
* Revision 1.4 2005/11/4 09:15:00 baroniunas
* Modified copyright with permission of author as follows:
*
* "If I82539.H is the only file with my copyright statement
* that is included in the Source Forge project, then you have
* my approval to change the copyright statement to be a GPL
* license, in the way you proposed on October 10."
*
* Revision 1.1 1996/07/17 15:23:12 root
* Initial revision
*
...
...
drivers/net/wireless/ipw2100.c
浏览文件 @
e67b23c7
...
...
@@ -6344,7 +6344,8 @@ static struct net_device *ipw2100_alloc_device(struct pci_dev *pci_dev,
dev
->
ethtool_ops
=
&
ipw2100_ethtool_ops
;
dev
->
tx_timeout
=
ipw2100_tx_timeout
;
dev
->
wireless_handlers
=
&
ipw2100_wx_handler_def
;
dev
->
get_wireless_stats
=
ipw2100_wx_wireless_stats
;
priv
->
wireless_data
.
ieee80211
=
priv
->
ieee
;
dev
->
wireless_data
=
&
priv
->
wireless_data
;
dev
->
set_mac_address
=
ipw2100_set_address
;
dev
->
watchdog_timeo
=
3
*
HZ
;
dev
->
irq
=
0
;
...
...
@@ -7178,6 +7179,11 @@ static int ipw2100_wx_get_range(struct net_device *dev,
}
range
->
num_frequency
=
val
;
/* Event capability (kernel + driver) */
range
->
event_capa
[
0
]
=
(
IW_EVENT_CAPA_K_0
|
IW_EVENT_CAPA_MASK
(
SIOCGIWAP
));
range
->
event_capa
[
1
]
=
IW_EVENT_CAPA_K_1
;
IPW_DEBUG_WX
(
"GET Range
\n
"
);
return
0
;
...
...
@@ -8446,16 +8452,6 @@ static iw_handler ipw2100_private_handler[] = {
#endif
/* CONFIG_IPW2100_MONITOR */
};
static
struct
iw_handler_def
ipw2100_wx_handler_def
=
{
.
standard
=
ipw2100_wx_handlers
,
.
num_standard
=
sizeof
(
ipw2100_wx_handlers
)
/
sizeof
(
iw_handler
),
.
num_private
=
sizeof
(
ipw2100_private_handler
)
/
sizeof
(
iw_handler
),
.
num_private_args
=
sizeof
(
ipw2100_private_args
)
/
sizeof
(
struct
iw_priv_args
),
.
private
=
(
iw_handler
*
)
ipw2100_private_handler
,
.
private_args
=
(
struct
iw_priv_args
*
)
ipw2100_private_args
,
};
/*
* Get wireless statistics.
* Called by /proc/net/wireless
...
...
@@ -8597,6 +8593,17 @@ static struct iw_statistics *ipw2100_wx_wireless_stats(struct net_device *dev)
return
(
struct
iw_statistics
*
)
NULL
;
}
static
struct
iw_handler_def
ipw2100_wx_handler_def
=
{
.
standard
=
ipw2100_wx_handlers
,
.
num_standard
=
sizeof
(
ipw2100_wx_handlers
)
/
sizeof
(
iw_handler
),
.
num_private
=
sizeof
(
ipw2100_private_handler
)
/
sizeof
(
iw_handler
),
.
num_private_args
=
sizeof
(
ipw2100_private_args
)
/
sizeof
(
struct
iw_priv_args
),
.
private
=
(
iw_handler
*
)
ipw2100_private_handler
,
.
private_args
=
(
struct
iw_priv_args
*
)
ipw2100_private_args
,
.
get_wireless_stats
=
ipw2100_wx_wireless_stats
,
};
static
void
ipw2100_wx_event_work
(
struct
ipw2100_priv
*
priv
)
{
union
iwreq_data
wrqu
;
...
...
drivers/net/wireless/ipw2100.h
浏览文件 @
e67b23c7
...
...
@@ -571,6 +571,8 @@ struct ipw2100_priv {
struct
net_device
*
net_dev
;
struct
iw_statistics
wstats
;
struct
iw_public_data
wireless_data
;
struct
tasklet_struct
irq_tasklet
;
struct
workqueue_struct
*
workqueue
;
...
...
drivers/net/wireless/prism54/isl_38xx.c
浏览文件 @
e67b23c7
...
...
@@ -164,12 +164,12 @@ isl38xx_trigger_device(int asleep, void __iomem *device_base)
/* assert the Wakeup interrupt in the Device Interrupt Register */
isl38xx_w32_flush
(
device_base
,
ISL38XX_DEV_INT_WAKEUP
,
ISL38XX_DEV_INT_REG
);
#if VERBOSE > SHOW_ERROR_MESSAGES
udelay
(
ISL38XX_WRITEIO_DELAY
);
/* perform another read on the Device Status Register */
reg
=
readl
(
device_base
+
ISL38XX_CTRL_STAT_REG
);
#if VERBOSE > SHOW_ERROR_MESSAGES
do_gettimeofday
(
&
current_time
);
DEBUG
(
SHOW_TRACING
,
"%08li.%08li Device register read %08x
\n
"
,
current_time
.
tv_sec
,
(
long
)
current_time
.
tv_usec
,
reg
);
...
...
include/net/ieee80211.h
浏览文件 @
e67b23c7
...
...
@@ -1042,7 +1042,7 @@ static inline u8 *ieee80211_get_payload(struct ieee80211_hdr *hdr)
case
IEEE80211_4ADDR_LEN
:
return
((
struct
ieee80211_hdr_4addr
*
)
hdr
)
->
payload
;
}
return
NULL
;
}
static
inline
int
ieee80211_is_ofdm_rate
(
u8
rate
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录