Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
2d095b6c
Commit
2d095b6c
authored
Apr 25, 2004
by
Jeff Garzik
Browse files
Options
Browse Files
Download
Plain Diff
Merge redhat.com:/spare/repo/netdev-2.6/e100
into redhat.com:/spare/repo/net-drivers-2.6
parents
7789650f
5e18a111
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
23 additions
and
5 deletions
+23
-5
drivers/net/e100.c
drivers/net/e100.c
+23
-5
No files found.
drivers/net/e100.c
View file @
2d095b6c
...
...
@@ -287,6 +287,7 @@ enum scb_cmd_hi {
};
enum
scb_cmd_lo
{
cuc_nop
=
0x00
,
ruc_start
=
0x01
,
ruc_load_base
=
0x06
,
cuc_start
=
0x10
,
...
...
@@ -514,10 +515,11 @@ struct nic {
/* End: frequently used values: keep adjacent for cache effect */
enum
{
ich
=
(
1
<<
0
),
promiscuous
=
(
1
<<
1
),
multicast_all
=
(
1
<<
2
),
wol_magic
=
(
1
<<
3
),
ich
=
(
1
<<
0
),
promiscuous
=
(
1
<<
1
),
multicast_all
=
(
1
<<
2
),
wol_magic
=
(
1
<<
3
),
ich_10h_workaround
=
(
1
<<
4
),
}
flags
____cacheline_aligned
;
enum
mac
mac
;
...
...
@@ -1225,6 +1227,12 @@ static void e100_watchdog(unsigned long data)
/* Issue a multicast command to workaround a 557 lock up */
e100_set_multicast_list
(
nic
->
netdev
);
if
(
nic
->
flags
&
ich
&&
cmd
.
speed
==
SPEED_10
&&
cmd
.
duplex
==
DUPLEX_HALF
)
/* Need SW workaround for ICH[x] 10Mbps/half duplex Tx hang. */
nic
->
flags
|=
ich_10h_workaround
;
else
nic
->
flags
&=
~
ich_10h_workaround
;
mod_timer
(
&
nic
->
watchdog
,
jiffies
+
E100_WATCHDOG_PERIOD
);
}
...
...
@@ -1244,7 +1252,17 @@ static inline void e100_xmit_prepare(struct nic *nic, struct cb *cb,
static
int
e100_xmit_frame
(
struct
sk_buff
*
skb
,
struct
net_device
*
netdev
)
{
struct
nic
*
nic
=
netdev
->
priv
;
int
err
=
e100_exec_cb
(
nic
,
skb
,
e100_xmit_prepare
);
int
err
;
if
(
nic
->
flags
&
ich_10h_workaround
)
{
/* SW workaround for ICH[x] 10Mbps/half duplex Tx hang.
Issue a NOP command followed by a 1us delay before
issuing the Tx command. */
e100_exec_cmd
(
nic
,
cuc_nop
,
0
);
udelay
(
1
);
}
err
=
e100_exec_cb
(
nic
,
skb
,
e100_xmit_prepare
);
switch
(
err
)
{
case
-
ENOSPC
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment