Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci-2.6.23
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci-2.6.23
Commits
4e3ceac6
Commit
4e3ceac6
authored
May 20, 2006
by
Jeff Garzik
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'upstream-fixes' into upstream
parents
badc48e6
bb02aacc
Changes
8
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
131 additions
and
302 deletions
+131
-302
drivers/net/forcedeth.c
drivers/net/forcedeth.c
+84
-228
drivers/net/pcmcia/axnet_cs.c
drivers/net/pcmcia/axnet_cs.c
+2
-11
drivers/net/skge.c
drivers/net/skge.c
+3
-5
drivers/net/sky2.c
drivers/net/sky2.c
+32
-22
drivers/net/sky2.h
drivers/net/sky2.h
+2
-0
drivers/net/tulip/winbond-840.c
drivers/net/tulip/winbond-840.c
+2
-2
drivers/net/via-rhine.c
drivers/net/via-rhine.c
+3
-31
drivers/net/wireless/bcm43xx/bcm43xx_main.c
drivers/net/wireless/bcm43xx/bcm43xx_main.c
+3
-3
No files found.
drivers/net/forcedeth.c
View file @
4e3ceac6
This diff is collapsed.
Click to expand it.
drivers/net/pcmcia/axnet_cs.c
View file @
4e3ceac6
...
...
@@ -1691,17 +1691,6 @@ static void do_set_multicast_list(struct net_device *dev)
memset
(
ei_local
->
mcfilter
,
0xFF
,
8
);
}
/*
* DP8390 manuals don't specify any magic sequence for altering
* the multicast regs on an already running card. To be safe, we
* ensure multicast mode is off prior to loading up the new hash
* table. If this proves to be not enough, we can always resort
* to stopping the NIC, loading the table and then restarting.
*/
if
(
netif_running
(
dev
))
outb_p
(
E8390_RXCONFIG
,
e8390_base
+
EN0_RXCR
);
outb_p
(
E8390_NODMA
+
E8390_PAGE1
,
e8390_base
+
E8390_CMD
);
for
(
i
=
0
;
i
<
8
;
i
++
)
{
...
...
@@ -1715,6 +1704,8 @@ static void do_set_multicast_list(struct net_device *dev)
outb_p
(
E8390_RXCONFIG
|
0x48
,
e8390_base
+
EN0_RXCR
);
else
outb_p
(
E8390_RXCONFIG
|
0x40
,
e8390_base
+
EN0_RXCR
);
outb_p
(
E8390_NODMA
+
E8390_PAGE0
+
E8390_START
,
e8390_base
+
E8390_CMD
);
}
/*
...
...
drivers/net/skge.c
View file @
4e3ceac6
...
...
@@ -78,8 +78,7 @@ static const struct pci_device_id skge_id_table[] = {
{
PCI_DEVICE
(
PCI_VENDOR_ID_SYSKONNECT
,
PCI_DEVICE_ID_SYSKONNECT_GE
)
},
{
PCI_DEVICE
(
PCI_VENDOR_ID_SYSKONNECT
,
PCI_DEVICE_ID_SYSKONNECT_YU
)
},
{
PCI_DEVICE
(
PCI_VENDOR_ID_DLINK
,
PCI_DEVICE_ID_DLINK_DGE510T
),
},
{
PCI_DEVICE
(
PCI_VENDOR_ID_DLINK
,
0x4b00
)
},
{
PCI_DEVICE
(
PCI_VENDOR_ID_DLINK
,
0x4b01
)
},
{
PCI_DEVICE
(
PCI_VENDOR_ID_DLINK
,
0x4b01
)
},
/* DGE-530T */
{
PCI_DEVICE
(
PCI_VENDOR_ID_MARVELL
,
0x4320
)
},
{
PCI_DEVICE
(
PCI_VENDOR_ID_MARVELL
,
0x5005
)
},
/* Belkin */
{
PCI_DEVICE
(
PCI_VENDOR_ID_CNET
,
PCI_DEVICE_ID_CNET_GIGACARD
)
},
...
...
@@ -402,7 +401,7 @@ static int skge_set_ring_param(struct net_device *dev,
int
err
;
if
(
p
->
rx_pending
==
0
||
p
->
rx_pending
>
MAX_RX_RING_SIZE
||
p
->
tx_pending
==
0
||
p
->
tx_pending
>
MAX_TX_RING_SIZE
)
p
->
tx_pending
<
MAX_SKB_FRAGS
+
1
||
p
->
tx_pending
>
MAX_TX_RING_SIZE
)
return
-
EINVAL
;
skge
->
rx_ring
.
count
=
p
->
rx_pending
;
...
...
@@ -2717,8 +2716,7 @@ static int skge_poll(struct net_device *dev, int *budget)
if
(
control
&
BMU_OWN
)
break
;
skb
=
skge_rx_get
(
skge
,
e
,
control
,
rd
->
status
,
le16_to_cpu
(
rd
->
csum2
));
skb
=
skge_rx_get
(
skge
,
e
,
control
,
rd
->
status
,
rd
->
csum2
);
if
(
likely
(
skb
))
{
dev
->
last_rx
=
jiffies
;
netif_receive_skb
(
skb
);
...
...
drivers/net/sky2.c
View file @
4e3ceac6
...
...
@@ -51,7 +51,7 @@
#include "sky2.h"
#define DRV_NAME "sky2"
#define DRV_VERSION "1.
3
"
#define DRV_VERSION "1.
4
"
#define PFX DRV_NAME " "
/*
...
...
@@ -105,6 +105,7 @@ MODULE_PARM_DESC(idle_timeout, "Idle timeout workaround for lost interrupts (ms)
static
const
struct
pci_device_id
sky2_id_table
[]
=
{
{
PCI_DEVICE
(
PCI_VENDOR_ID_SYSKONNECT
,
0x9000
)
},
{
PCI_DEVICE
(
PCI_VENDOR_ID_SYSKONNECT
,
0x9E00
)
},
{
PCI_DEVICE
(
PCI_VENDOR_ID_DLINK
,
0x4b00
)
},
/* DGE-560T */
{
PCI_DEVICE
(
PCI_VENDOR_ID_MARVELL
,
0x4340
)
},
{
PCI_DEVICE
(
PCI_VENDOR_ID_MARVELL
,
0x4341
)
},
{
PCI_DEVICE
(
PCI_VENDOR_ID_MARVELL
,
0x4342
)
},
...
...
@@ -235,6 +236,7 @@ static int sky2_set_power_state(struct sky2_hw *hw, pci_power_t state)
}
if
(
hw
->
chip_id
==
CHIP_ID_YUKON_EC_U
)
{
sky2_write16
(
hw
,
B0_CTST
,
Y2_HW_WOL_ON
);
sky2_pci_write32
(
hw
,
PCI_DEV_REG3
,
0
);
reg1
=
sky2_pci_read32
(
hw
,
PCI_DEV_REG4
);
reg1
&=
P_ASPM_CONTROL_MSK
;
...
...
@@ -306,7 +308,7 @@ static void sky2_phy_init(struct sky2_hw *hw, unsigned port)
u16
ctrl
,
ct1000
,
adv
,
pg
,
ledctrl
,
ledover
;
if
(
sky2
->
autoneg
==
AUTONEG_ENABLE
&&
(
hw
->
chip_id
!
=
CHIP_ID_YUKON_XL
||
hw
->
chip_id
==
CHIP_ID_YUKON_EC_U
))
{
!
(
hw
->
chip_id
=
=
CHIP_ID_YUKON_XL
||
hw
->
chip_id
==
CHIP_ID_YUKON_EC_U
))
{
u16
ectrl
=
gm_phy_read
(
hw
,
port
,
PHY_MARV_EXT_CTRL
);
ectrl
&=
~
(
PHY_M_EC_M_DSC_MSK
|
PHY_M_EC_S_DSC_MSK
|
...
...
@@ -1020,19 +1022,26 @@ static int sky2_up(struct net_device *dev)
struct
sky2_hw
*
hw
=
sky2
->
hw
;
unsigned
port
=
sky2
->
port
;
u32
ramsize
,
rxspace
,
imask
;
int
err
;
int
cap
,
err
=
-
ENOMEM
;
struct
net_device
*
otherdev
=
hw
->
dev
[
sky2
->
port
^
1
];
/*
Block bringing up both ports at the same time on a dual port card.
* There is an unfixed bug where receiver gets confused and picks up
*
packets out of order. Until this is fixed, prevent data corruption.
/*
* On dual port PCI-X card, there is an problem where status
*
can be received out of order due to split transactions
*/
if
(
otherdev
&&
netif_running
(
otherdev
))
{
printk
(
KERN_INFO
PFX
"dual port support is disabled.
\n
"
);
return
-
EBUSY
;
if
(
otherdev
&&
netif_running
(
otherdev
)
&&
(
cap
=
pci_find_capability
(
hw
->
pdev
,
PCI_CAP_ID_PCIX
)))
{
struct
sky2_port
*
osky2
=
netdev_priv
(
otherdev
);
u16
cmd
;
cmd
=
sky2_pci_read16
(
hw
,
cap
+
PCI_X_CMD
);
cmd
&=
~
PCI_X_CMD_MAX_SPLIT
;
sky2_pci_write16
(
hw
,
cap
+
PCI_X_CMD
,
cmd
);
sky2
->
rx_csum
=
0
;
osky2
->
rx_csum
=
0
;
}
err
=
-
ENOMEM
;
if
(
netif_msg_ifup
(
sky2
))
printk
(
KERN_INFO
PFX
"%s: enabling interface
\n
"
,
dev
->
name
);
...
...
@@ -1910,6 +1919,12 @@ static inline void sky2_tx_done(struct net_device *dev, u16 last)
}
}
/* Is status ring empty or is there more to do? */
static
inline
int
sky2_more_work
(
const
struct
sky2_hw
*
hw
)
{
return
(
hw
->
st_idx
!=
sky2_read16
(
hw
,
STAT_PUT_IDX
));
}
/* Process status response ring */
static
int
sky2_status_intr
(
struct
sky2_hw
*
hw
,
int
to_do
)
{
...
...
@@ -2182,19 +2197,19 @@ static int sky2_poll(struct net_device *dev0, int *budget)
if
(
status
&
Y2_IS_CHK_TXA2
)
sky2_descriptor_error
(
hw
,
1
,
"transmit"
,
Y2_IS_CHK_TXA2
);
if
(
status
&
Y2_IS_STAT_BMU
)
sky2_write32
(
hw
,
STAT_CTRL
,
SC_STAT_CLR_IRQ
);
work_done
=
sky2_status_intr
(
hw
,
work_limit
);
*
budget
-=
work_done
;
dev0
->
quota
-=
work_done
;
if
(
work_done
>=
work_limit
)
if
(
status
&
Y2_IS_STAT_BMU
)
sky2_write32
(
hw
,
STAT_CTRL
,
SC_STAT_CLR_IRQ
);
if
(
sky2_more_work
(
hw
))
return
1
;
netif_rx_complete
(
dev0
);
s
tatus
=
s
ky2_read32
(
hw
,
B0_Y2_SP_LISR
);
sky2_read32
(
hw
,
B0_Y2_SP_LISR
);
return
0
;
}
...
...
@@ -3078,12 +3093,7 @@ static __devinit struct net_device *sky2_init_netdev(struct sky2_hw *hw,
sky2
->
duplex
=
-
1
;
sky2
->
speed
=
-
1
;
sky2
->
advertising
=
sky2_supported_modes
(
hw
);
/* Receive checksum disabled for Yukon XL
* because of observed problems with incorrect
* values when multiple packets are received in one interrupt
*/
sky2
->
rx_csum
=
(
hw
->
chip_id
!=
CHIP_ID_YUKON_XL
);
sky2
->
rx_csum
=
1
;
spin_lock_init
(
&
sky2
->
phy_lock
);
sky2
->
tx_pending
=
TX_DEF_PENDING
;
...
...
drivers/net/sky2.h
View file @
4e3ceac6
...
...
@@ -214,6 +214,8 @@ enum csr_regs {
enum
{
Y2_VMAIN_AVAIL
=
1
<<
17
,
/* VMAIN available (YUKON-2 only) */
Y2_VAUX_AVAIL
=
1
<<
16
,
/* VAUX available (YUKON-2 only) */
Y2_HW_WOL_ON
=
1
<<
15
,
/* HW WOL On (Yukon-EC Ultra A1 only) */
Y2_HW_WOL_OFF
=
1
<<
14
,
/* HW WOL On (Yukon-EC Ultra A1 only) */
Y2_ASF_ENABLE
=
1
<<
13
,
/* ASF Unit Enable (YUKON-2 only) */
Y2_ASF_DISABLE
=
1
<<
12
,
/* ASF Unit Disable (YUKON-2 only) */
Y2_CLK_RUN_ENA
=
1
<<
11
,
/* CLK_RUN Enable (YUKON-2 only) */
...
...
drivers/net/tulip/winbond-840.c
View file @
4e3ceac6
...
...
@@ -850,7 +850,7 @@ static void init_rxtx_rings(struct net_device *dev)
break
;
skb
->
dev
=
dev
;
/* Mark as being used by this device. */
np
->
rx_addr
[
i
]
=
pci_map_single
(
np
->
pci_dev
,
skb
->
data
,
skb
->
len
,
PCI_DMA_FROMDEVICE
);
np
->
rx_buf_sz
,
PCI_DMA_FROMDEVICE
);
np
->
rx_ring
[
i
].
buffer1
=
np
->
rx_addr
[
i
];
np
->
rx_ring
[
i
].
status
=
DescOwn
;
...
...
@@ -1316,7 +1316,7 @@ static int netdev_rx(struct net_device *dev)
skb
->
dev
=
dev
;
/* Mark as being used by this device. */
np
->
rx_addr
[
entry
]
=
pci_map_single
(
np
->
pci_dev
,
skb
->
data
,
skb
->
len
,
PCI_DMA_FROMDEVICE
);
np
->
rx_buf_sz
,
PCI_DMA_FROMDEVICE
);
np
->
rx_ring
[
entry
].
buffer1
=
np
->
rx_addr
[
entry
];
}
wmb
();
...
...
drivers/net/via-rhine.c
View file @
4e3ceac6
...
...
@@ -491,8 +491,6 @@ struct rhine_private {
u8
tx_thresh
,
rx_thresh
;
struct
mii_if_info
mii_if
;
struct
work_struct
tx_timeout_task
;
struct
work_struct
check_media_task
;
void
__iomem
*
base
;
};
...
...
@@ -500,8 +498,6 @@ static int mdio_read(struct net_device *dev, int phy_id, int location);
static
void
mdio_write
(
struct
net_device
*
dev
,
int
phy_id
,
int
location
,
int
value
);
static
int
rhine_open
(
struct
net_device
*
dev
);
static
void
rhine_tx_timeout
(
struct
net_device
*
dev
);
static
void
rhine_tx_timeout_task
(
struct
net_device
*
dev
);
static
void
rhine_check_media_task
(
struct
net_device
*
dev
);
static
int
rhine_start_tx
(
struct
sk_buff
*
skb
,
struct
net_device
*
dev
);
static
irqreturn_t
rhine_interrupt
(
int
irq
,
void
*
dev_instance
,
struct
pt_regs
*
regs
);
static
void
rhine_tx
(
struct
net_device
*
dev
);
...
...
@@ -856,12 +852,6 @@ static int __devinit rhine_init_one(struct pci_dev *pdev,
if
(
rp
->
quirks
&
rqRhineI
)
dev
->
features
|=
NETIF_F_SG
|
NETIF_F_HW_CSUM
;
INIT_WORK
(
&
rp
->
tx_timeout_task
,
(
void
(
*
)(
void
*
))
rhine_tx_timeout_task
,
dev
);
INIT_WORK
(
&
rp
->
check_media_task
,
(
void
(
*
)(
void
*
))
rhine_check_media_task
,
dev
);
/* dev->name not defined before register_netdev()! */
rc
=
register_netdev
(
dev
);
if
(
rc
)
...
...
@@ -1108,11 +1098,6 @@ static void rhine_set_carrier(struct mii_if_info *mii)
netif_carrier_ok
(
mii
->
dev
));
}
static
void
rhine_check_media_task
(
struct
net_device
*
dev
)
{
rhine_check_media
(
dev
,
0
);
}
static
void
init_registers
(
struct
net_device
*
dev
)
{
struct
rhine_private
*
rp
=
netdev_priv
(
dev
);
...
...
@@ -1166,8 +1151,8 @@ static void rhine_disable_linkmon(void __iomem *ioaddr, u32 quirks)
if
(
quirks
&
rqRhineI
)
{
iowrite8
(
0x01
,
ioaddr
+
MIIRegAddr
);
// MII_BMSR
/*
Do not call from ISR!
*/
m
sleep
(
1
);
/*
Can be called from ISR. Evil.
*/
m
delay
(
1
);
/* 0x80 must be set immediately before turning it off */
iowrite8
(
0x80
,
ioaddr
+
MIICmd
);
...
...
@@ -1255,16 +1240,6 @@ static int rhine_open(struct net_device *dev)
}
static
void
rhine_tx_timeout
(
struct
net_device
*
dev
)
{
struct
rhine_private
*
rp
=
netdev_priv
(
dev
);
/*
* Move bulk of work outside of interrupt context
*/
schedule_work
(
&
rp
->
tx_timeout_task
);
}
static
void
rhine_tx_timeout_task
(
struct
net_device
*
dev
)
{
struct
rhine_private
*
rp
=
netdev_priv
(
dev
);
void
__iomem
*
ioaddr
=
rp
->
base
;
...
...
@@ -1677,7 +1652,7 @@ static void rhine_error(struct net_device *dev, int intr_status)
spin_lock
(
&
rp
->
lock
);
if
(
intr_status
&
IntrLinkChange
)
schedule_work
(
&
rp
->
check_media_task
);
rhine_check_media
(
dev
,
0
);
if
(
intr_status
&
IntrStatsMax
)
{
rp
->
stats
.
rx_crc_errors
+=
ioread16
(
ioaddr
+
RxCRCErrs
);
rp
->
stats
.
rx_missed_errors
+=
ioread16
(
ioaddr
+
RxMissed
);
...
...
@@ -1927,9 +1902,6 @@ static int rhine_close(struct net_device *dev)
spin_unlock_irq
(
&
rp
->
lock
);
free_irq
(
rp
->
pdev
->
irq
,
dev
);
flush_scheduled_work
();
free_rbufs
(
dev
);
free_tbufs
(
dev
);
free_ring
(
dev
);
...
...
drivers/net/wireless/bcm43xx/bcm43xx_main.c
View file @
4e3ceac6
...
...
@@ -3271,6 +3271,9 @@ static int bcm43xx_init_board(struct bcm43xx_private *bcm)
bcm43xx_sysfs_register
(
bcm
);
//FIXME: check for bcm43xx_sysfs_register failure. This function is a bit messy regarding unwinding, though...
/*FIXME: This should be handled by softmac instead. */
schedule_work
(
&
bcm
->
softmac
->
associnfo
.
work
);
assert
(
err
==
0
);
out:
return
err
;
...
...
@@ -3931,9 +3934,6 @@ static int bcm43xx_resume(struct pci_dev *pdev)
netif_device_attach
(
net_dev
);
/*FIXME: This should be handled by softmac instead. */
schedule_work
(
&
bcm
->
softmac
->
associnfo
.
work
);
dprintk
(
KERN_INFO
PFX
"Device resumed.
\n
"
);
return
0
;
...
...
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