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
bdad69b2
Commit
bdad69b2
authored
May 23, 2006
by
Jeff Garzik
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'e1000-7.0.38-k4' of
git://lost.foo-projects.org/~ahkok/git/netdev-2.6
into upstream
parents
9528454f
440c052d
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
104 additions
and
135 deletions
+104
-135
drivers/net/e1000/Makefile
drivers/net/e1000/Makefile
+1
-1
drivers/net/e1000/e1000_ethtool.c
drivers/net/e1000/e1000_ethtool.c
+22
-22
drivers/net/e1000/e1000_hw.c
drivers/net/e1000/e1000_hw.c
+56
-56
drivers/net/e1000/e1000_hw.h
drivers/net/e1000/e1000_hw.h
+2
-2
drivers/net/e1000/e1000_main.c
drivers/net/e1000/e1000_main.c
+23
-54
No files found.
drivers/net/e1000/Makefile
View file @
bdad69b2
################################################################################
################################################################################
#
#
#
#
# Copyright(c) 1999 - 200
3
Intel Corporation. All rights reserved.
# Copyright(c) 1999 - 200
6
Intel Corporation. All rights reserved.
#
#
# This program is free software; you can redistribute it and/or modify it
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# under the terms of the GNU General Public License as published by the Free
...
...
drivers/net/e1000/e1000_ethtool.c
View file @
bdad69b2
...
@@ -865,15 +865,15 @@ static int
...
@@ -865,15 +865,15 @@ static int
e1000_intr_test
(
struct
e1000_adapter
*
adapter
,
uint64_t
*
data
)
e1000_intr_test
(
struct
e1000_adapter
*
adapter
,
uint64_t
*
data
)
{
{
struct
net_device
*
netdev
=
adapter
->
netdev
;
struct
net_device
*
netdev
=
adapter
->
netdev
;
uint32_t
mask
,
i
=
0
,
shared_int
=
TRUE
;
uint32_t
mask
,
i
=
0
,
shared_int
=
TRUE
;
uint32_t
irq
=
adapter
->
pdev
->
irq
;
uint32_t
irq
=
adapter
->
pdev
->
irq
;
*
data
=
0
;
*
data
=
0
;
/* Hook up test interrupt handler just for this test */
/* Hook up test interrupt handler just for this test */
if
(
!
request_irq
(
irq
,
&
e1000_test_intr
,
0
,
netdev
->
name
,
netdev
))
{
if
(
!
request_irq
(
irq
,
&
e1000_test_intr
,
0
,
netdev
->
name
,
netdev
))
{
shared_int
=
FALSE
;
shared_int
=
FALSE
;
}
else
if
(
request_irq
(
irq
,
&
e1000_test_intr
,
SA_SHIRQ
,
}
else
if
(
request_irq
(
irq
,
&
e1000_test_intr
,
SA_SHIRQ
,
netdev
->
name
,
netdev
)){
netdev
->
name
,
netdev
)){
*
data
=
1
;
*
data
=
1
;
return
-
1
;
return
-
1
;
...
@@ -889,22 +889,22 @@ e1000_intr_test(struct e1000_adapter *adapter, uint64_t *data)
...
@@ -889,22 +889,22 @@ e1000_intr_test(struct e1000_adapter *adapter, uint64_t *data)
/* Interrupt to test */
/* Interrupt to test */
mask
=
1
<<
i
;
mask
=
1
<<
i
;
if
(
!
shared_int
)
{
if
(
!
shared_int
)
{
/* Disable the interrupt to be reported in
/* Disable the interrupt to be reported in
* the cause register and then force the same
* the cause register and then force the same
* interrupt and see if one gets posted. If
* interrupt and see if one gets posted. If
* an interrupt was posted to the bus, the
* an interrupt was posted to the bus, the
* test failed.
* test failed.
*/
*/
adapter
->
test_icr
=
0
;
adapter
->
test_icr
=
0
;
E1000_WRITE_REG
(
&
adapter
->
hw
,
IMC
,
mask
);
E1000_WRITE_REG
(
&
adapter
->
hw
,
IMC
,
mask
);
E1000_WRITE_REG
(
&
adapter
->
hw
,
ICS
,
mask
);
E1000_WRITE_REG
(
&
adapter
->
hw
,
ICS
,
mask
);
msec_delay
(
10
);
msec_delay
(
10
);
if
(
adapter
->
test_icr
&
mask
)
{
if
(
adapter
->
test_icr
&
mask
)
{
*
data
=
3
;
*
data
=
3
;
break
;
break
;
}
}
}
}
/* Enable the interrupt to be reported in
/* Enable the interrupt to be reported in
...
@@ -923,7 +923,7 @@ e1000_intr_test(struct e1000_adapter *adapter, uint64_t *data)
...
@@ -923,7 +923,7 @@ e1000_intr_test(struct e1000_adapter *adapter, uint64_t *data)
break
;
break
;
}
}
if
(
!
shared_int
)
{
if
(
!
shared_int
)
{
/* Disable the other interrupts to be reported in
/* Disable the other interrupts to be reported in
* the cause register and then force the other
* the cause register and then force the other
* interrupts and see if any get posted. If
* interrupts and see if any get posted. If
...
...
drivers/net/e1000/e1000_hw.c
View file @
bdad69b2
This diff is collapsed.
Click to expand it.
drivers/net/e1000/e1000_hw.h
View file @
bdad69b2
...
@@ -375,7 +375,7 @@ struct e1000_host_mng_dhcp_cookie{
...
@@ -375,7 +375,7 @@ struct e1000_host_mng_dhcp_cookie{
};
};
#endif
#endif
int32_t
e1000_mng_write_dhcp_info
(
struct
e1000_hw
*
hw
,
uint8_t
*
buffer
,
int32_t
e1000_mng_write_dhcp_info
(
struct
e1000_hw
*
hw
,
uint8_t
*
buffer
,
uint16_t
length
);
uint16_t
length
);
boolean_t
e1000_check_mng_mode
(
struct
e1000_hw
*
hw
);
boolean_t
e1000_check_mng_mode
(
struct
e1000_hw
*
hw
);
boolean_t
e1000_enable_tx_pkt_filtering
(
struct
e1000_hw
*
hw
);
boolean_t
e1000_enable_tx_pkt_filtering
(
struct
e1000_hw
*
hw
);
...
@@ -1802,7 +1802,7 @@ struct e1000_hw {
...
@@ -1802,7 +1802,7 @@ struct e1000_hw {
* value2 = [0..64512], default=4096
* value2 = [0..64512], default=4096
* value3 = [0..64512], default=0
* value3 = [0..64512], default=0
*/
*/
#define E1000_PSRCTL_BSIZE0_MASK 0x0000007F
#define E1000_PSRCTL_BSIZE0_MASK 0x0000007F
#define E1000_PSRCTL_BSIZE1_MASK 0x00003F00
#define E1000_PSRCTL_BSIZE1_MASK 0x00003F00
#define E1000_PSRCTL_BSIZE2_MASK 0x003F0000
#define E1000_PSRCTL_BSIZE2_MASK 0x003F0000
...
...
drivers/net/e1000/e1000_main.c
View file @
bdad69b2
...
@@ -29,45 +29,6 @@
...
@@ -29,45 +29,6 @@
#include "e1000.h"
#include "e1000.h"
/* Change Log
* 7.0.33 3-Feb-2006
* o Added another fix for the pass false carrier bit
* 7.0.32 24-Jan-2006
* o Need to rebuild with noew version number for the pass false carrier
* fix in e1000_hw.c
* 7.0.30 18-Jan-2006
* o fixup for tso workaround to disable it for pci-x
* o fix mem leak on 82542
* o fixes for 10 Mb/s connections and incorrect stats
* 7.0.28 01/06/2006
* o hardware workaround to only set "speed mode" bit for 1G link.
* 7.0.26 12/23/2005
* o wake on lan support modified for device ID 10B5
* o fix dhcp + vlan issue not making it to the iAMT firmware
* 7.0.24 12/9/2005
* o New hardware support for the Gigabit NIC embedded in the south bridge
* o Fixes to the recycling logic (skb->tail) from IBM LTC
* 6.3.9 12/16/2005
* o incorporate fix for recycled skbs from IBM LTC
* 6.3.7 11/18/2005
* o Honor eeprom setting for enabling/disabling Wake On Lan
* 6.3.5 11/17/2005
* o Fix memory leak in rx ring handling for PCI Express adapters
* 6.3.4 11/8/05
* o Patch from Jesper Juhl to remove redundant NULL checks for kfree
* 6.3.2 9/20/05
* o Render logic that sets/resets DRV_LOAD as inline functions to
* avoid code replication. If f/w is AMT then set DRV_LOAD only when
* network interface is open.
* o Handle DRV_LOAD set/reset in cases where AMT uses VLANs.
* o Adjust PBA partioning for Jumbo frames using MTU size and not
* rx_buffer_len
* 6.3.1 9/19/05
* o Use adapter->tx_timeout_factor in Tx Hung Detect logic
* (e1000_clean_tx_irq)
* o Support for 8086:10B5 device (Quad Port)
*/
char
e1000_driver_name
[]
=
"e1000"
;
char
e1000_driver_name
[]
=
"e1000"
;
static
char
e1000_driver_string
[]
=
"Intel(R) PRO/1000 Network Driver"
;
static
char
e1000_driver_string
[]
=
"Intel(R) PRO/1000 Network Driver"
;
#ifndef CONFIG_E1000_NAPI
#ifndef CONFIG_E1000_NAPI
...
@@ -75,7 +36,7 @@ static char e1000_driver_string[] = "Intel(R) PRO/1000 Network Driver";
...
@@ -75,7 +36,7 @@ static char e1000_driver_string[] = "Intel(R) PRO/1000 Network Driver";
#else
#else
#define DRIVERNAPI "-NAPI"
#define DRIVERNAPI "-NAPI"
#endif
#endif
#define DRV_VERSION "7.0.38-k
2
"DRIVERNAPI
#define DRV_VERSION "7.0.38-k
4
"DRIVERNAPI
char
e1000_driver_version
[]
=
DRV_VERSION
;
char
e1000_driver_version
[]
=
DRV_VERSION
;
static
char
e1000_copyright
[]
=
"Copyright (c) 1999-2006 Intel Corporation."
;
static
char
e1000_copyright
[]
=
"Copyright (c) 1999-2006 Intel Corporation."
;
...
@@ -221,6 +182,7 @@ static void e1000_restore_vlan(struct e1000_adapter *adapter);
...
@@ -221,6 +182,7 @@ static void e1000_restore_vlan(struct e1000_adapter *adapter);
static
int
e1000_suspend
(
struct
pci_dev
*
pdev
,
pm_message_t
state
);
static
int
e1000_suspend
(
struct
pci_dev
*
pdev
,
pm_message_t
state
);
static
int
e1000_resume
(
struct
pci_dev
*
pdev
);
static
int
e1000_resume
(
struct
pci_dev
*
pdev
);
#endif
#endif
static
void
e1000_shutdown
(
struct
pci_dev
*
pdev
);
#ifdef CONFIG_NET_POLL_CONTROLLER
#ifdef CONFIG_NET_POLL_CONTROLLER
/* for netdump / net console */
/* for netdump / net console */
...
@@ -236,8 +198,9 @@ static struct pci_driver e1000_driver = {
...
@@ -236,8 +198,9 @@ static struct pci_driver e1000_driver = {
/* Power Managment Hooks */
/* Power Managment Hooks */
#ifdef CONFIG_PM
#ifdef CONFIG_PM
.
suspend
=
e1000_suspend
,
.
suspend
=
e1000_suspend
,
.
resume
=
e1000_resume
.
resume
=
e1000_resume
,
#endif
#endif
.
shutdown
=
e1000_shutdown
};
};
MODULE_AUTHOR
(
"Intel Corporation, <linux.nics@intel.com>"
);
MODULE_AUTHOR
(
"Intel Corporation, <linux.nics@intel.com>"
);
...
@@ -347,7 +310,7 @@ e1000_update_mng_vlan(struct e1000_adapter *adapter)
...
@@ -347,7 +310,7 @@ e1000_update_mng_vlan(struct e1000_adapter *adapter)
* For ASF and Pass Through versions of f/w this means that the
* For ASF and Pass Through versions of f/w this means that the
* driver is no longer loaded. For AMT version (only with 82573) i
* driver is no longer loaded. For AMT version (only with 82573) i
* of the f/w this means that the netowrk i/f is closed.
* of the f/w this means that the netowrk i/f is closed.
*
*
**/
**/
static
void
static
void
...
@@ -379,10 +342,10 @@ e1000_release_hw_control(struct e1000_adapter *adapter)
...
@@ -379,10 +342,10 @@ e1000_release_hw_control(struct e1000_adapter *adapter)
* @adapter: address of board private structure
* @adapter: address of board private structure
*
*
* e1000_get_hw_control sets {CTRL_EXT|FWSM}:DRV_LOAD bit.
* e1000_get_hw_control sets {CTRL_EXT|FWSM}:DRV_LOAD bit.
* For ASF and Pass Through versions of f/w this means that
* For ASF and Pass Through versions of f/w this means that
* the driver is loaded. For AMT version (only with 82573)
* the driver is loaded. For AMT version (only with 82573)
* of the f/w this means that the netowrk i/f is open.
* of the f/w this means that the netowrk i/f is open.
*
*
**/
**/
static
void
static
void
...
@@ -712,8 +675,8 @@ e1000_probe(struct pci_dev *pdev,
...
@@ -712,8 +675,8 @@ e1000_probe(struct pci_dev *pdev,
DPRINTK
(
PROBE
,
INFO
,
"PHY reset is blocked due to SOL/IDER session.
\n
"
);
DPRINTK
(
PROBE
,
INFO
,
"PHY reset is blocked due to SOL/IDER session.
\n
"
);
/* if ksp3, indicate if it's port a being setup */
/* if ksp3, indicate if it's port a being setup */
if
(
pdev
->
device
==
E1000_DEV_ID_82546GB_QUAD_COPPER_KSP3
&&
if
(
pdev
->
device
==
E1000_DEV_ID_82546GB_QUAD_COPPER_KSP3
&&
e1000_ksp3_port_a
==
0
)
e1000_ksp3_port_a
==
0
)
adapter
->
ksp3_port_a
=
1
;
adapter
->
ksp3_port_a
=
1
;
e1000_ksp3_port_a
++
;
e1000_ksp3_port_a
++
;
/* Reset for multiple KP3 adapters */
/* Reset for multiple KP3 adapters */
...
@@ -741,9 +704,9 @@ e1000_probe(struct pci_dev *pdev,
...
@@ -741,9 +704,9 @@ e1000_probe(struct pci_dev *pdev,
if
(
pci_using_dac
)
if
(
pci_using_dac
)
netdev
->
features
|=
NETIF_F_HIGHDMA
;
netdev
->
features
|=
NETIF_F_HIGHDMA
;
/* hard_start_xmit is safe against parallel locking */
/* hard_start_xmit is safe against parallel locking */
netdev
->
features
|=
NETIF_F_LLTX
;
netdev
->
features
|=
NETIF_F_LLTX
;
adapter
->
en_mng_pt
=
e1000_enable_mng_pass_thru
(
&
adapter
->
hw
);
adapter
->
en_mng_pt
=
e1000_enable_mng_pass_thru
(
&
adapter
->
hw
);
/* before reading the EEPROM, reset the controller to
/* before reading the EEPROM, reset the controller to
...
@@ -2771,7 +2734,7 @@ e1000_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
...
@@ -2771,7 +2734,7 @@ e1000_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
unsigned
int
nr_frags
=
0
;
unsigned
int
nr_frags
=
0
;
unsigned
int
mss
=
0
;
unsigned
int
mss
=
0
;
int
count
=
0
;
int
count
=
0
;
int
tso
;
int
tso
;
unsigned
int
f
;
unsigned
int
f
;
len
-=
skb
->
data_len
;
len
-=
skb
->
data_len
;
...
@@ -2784,7 +2747,7 @@ e1000_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
...
@@ -2784,7 +2747,7 @@ e1000_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
#ifdef NETIF_F_TSO
#ifdef NETIF_F_TSO
mss
=
skb_shinfo
(
skb
)
->
tso_size
;
mss
=
skb_shinfo
(
skb
)
->
tso_size
;
/* The controller does a simple calculation to
/* The controller does a simple calculation to
* make sure there is enough room in the FIFO before
* make sure there is enough room in the FIFO before
* initiating the DMA for each buffer. The calc is:
* initiating the DMA for each buffer. The calc is:
* 4 = ceil(buffer len/mss). To make sure we don't
* 4 = ceil(buffer len/mss). To make sure we don't
...
@@ -2807,7 +2770,7 @@ e1000_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
...
@@ -2807,7 +2770,7 @@ e1000_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
case
e1000_82573
:
case
e1000_82573
:
pull_size
=
min
((
unsigned
int
)
4
,
skb
->
data_len
);
pull_size
=
min
((
unsigned
int
)
4
,
skb
->
data_len
);
if
(
!
__pskb_pull_tail
(
skb
,
pull_size
))
{
if
(
!
__pskb_pull_tail
(
skb
,
pull_size
))
{
printk
(
KERN_ERR
printk
(
KERN_ERR
"__pskb_pull_tail failed.
\n
"
);
"__pskb_pull_tail failed.
\n
"
);
dev_kfree_skb_any
(
skb
);
dev_kfree_skb_any
(
skb
);
return
NETDEV_TX_OK
;
return
NETDEV_TX_OK
;
...
@@ -3753,7 +3716,7 @@ e1000_clean_rx_irq_ps(struct e1000_adapter *adapter,
...
@@ -3753,7 +3716,7 @@ e1000_clean_rx_irq_ps(struct e1000_adapter *adapter,
* throughput, so unsplit small packets and save the alloc/put*/
* throughput, so unsplit small packets and save the alloc/put*/
if
(
l1
&&
((
length
+
l1
)
<=
adapter
->
rx_ps_bsize0
))
{
if
(
l1
&&
((
length
+
l1
)
<=
adapter
->
rx_ps_bsize0
))
{
u8
*
vaddr
;
u8
*
vaddr
;
/* there is no documentation about how to call
/* there is no documentation about how to call
* kmap_atomic, so we can't hold the mapping
* kmap_atomic, so we can't hold the mapping
* very long */
* very long */
pci_dma_sync_single_for_cpu
(
pdev
,
pci_dma_sync_single_for_cpu
(
pdev
,
...
@@ -4605,6 +4568,12 @@ e1000_resume(struct pci_dev *pdev)
...
@@ -4605,6 +4568,12 @@ e1000_resume(struct pci_dev *pdev)
return
0
;
return
0
;
}
}
#endif
#endif
static
void
e1000_shutdown
(
struct
pci_dev
*
pdev
)
{
e1000_suspend
(
pdev
,
PMSG_SUSPEND
);
}
#ifdef CONFIG_NET_POLL_CONTROLLER
#ifdef CONFIG_NET_POLL_CONTROLLER
/*
/*
* Polling 'interrupt' - used by things like netconsole to send skbs
* Polling 'interrupt' - used by things like netconsole to send skbs
...
...
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