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
Kirill Smelkov
linux
Commits
b4a8e614
Commit
b4a8e614
authored
Jan 17, 2005
by
Jeff Garzik
Browse files
Options
Browse Files
Download
Plain Diff
Manual merge of s2io.
parents
11ab9af3
7cb26959
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
140 additions
and
138 deletions
+140
-138
drivers/net/bmac.c
drivers/net/bmac.c
+33
-35
drivers/net/hamachi.c
drivers/net/hamachi.c
+43
-38
drivers/net/myri_sbus.c
drivers/net/myri_sbus.c
+5
-5
drivers/net/s2io.c
drivers/net/s2io.c
+52
-52
drivers/net/s2io.h
drivers/net/s2io.h
+7
-8
No files found.
drivers/net/bmac.c
View file @
b4a8e614
...
...
@@ -59,9 +59,9 @@
struct
bmac_data
{
/* volatile struct bmac *bmac; */
struct
sk_buff_head
*
queue
;
volatile
struct
dbdma_regs
*
tx_dma
;
volatile
struct
dbdma_regs
__iomem
*
tx_dma
;
int
tx_dma_intr
;
volatile
struct
dbdma_regs
*
rx_dma
;
volatile
struct
dbdma_regs
__iomem
*
rx_dma
;
int
rx_dma_intr
;
volatile
struct
dbdma_cmd
*
tx_cmds
;
/* xmit dma command list */
volatile
struct
dbdma_cmd
*
rx_cmds
;
/* recv dma command list */
...
...
@@ -165,35 +165,35 @@ static void bmac_start(struct net_device *dev);
#define DBDMA_CLEAR(x) ( (x) << 16)
static
inline
void
dbdma_st32
(
volatile
unsigned
long
*
a
,
unsigned
long
x
)
dbdma_st32
(
volatile
__u32
__iomem
*
a
,
unsigned
long
x
)
{
__asm__
volatile
(
"stwbrx %0,0,%1"
:
:
"r"
(
x
),
"r"
(
a
)
:
"memory"
);
return
;
}
static
inline
unsigned
long
dbdma_ld32
(
volatile
unsigned
long
*
a
)
dbdma_ld32
(
volatile
__u32
__iomem
*
a
)
{
unsigned
long
swap
;
__u32
swap
;
__asm__
volatile
(
"lwbrx %0,0,%1"
:
"=r"
(
swap
)
:
"r"
(
a
));
return
swap
;
}
static
void
dbdma_continue
(
volatile
struct
dbdma_regs
*
dmap
)
dbdma_continue
(
volatile
struct
dbdma_regs
__iomem
*
dmap
)
{
dbdma_st32
(
(
volatile
unsigned
long
*
)
&
dmap
->
control
,
dbdma_st32
(
&
dmap
->
control
,
DBDMA_SET
(
RUN
|
WAKE
)
|
DBDMA_CLEAR
(
PAUSE
|
DEAD
));
eieio
();
}
static
void
dbdma_reset
(
volatile
struct
dbdma_regs
*
dmap
)
dbdma_reset
(
volatile
struct
dbdma_regs
__iomem
*
dmap
)
{
dbdma_st32
(
(
volatile
unsigned
long
*
)
&
dmap
->
control
,
dbdma_st32
(
&
dmap
->
control
,
DBDMA_CLEAR
(
ACTIVE
|
DEAD
|
WAKE
|
FLUSH
|
PAUSE
|
RUN
));
eieio
();
while
(
dbdma_ld32
(
(
volatile
unsigned
long
*
)
&
dmap
->
status
)
&
RUN
)
while
(
dbdma_ld32
(
&
dmap
->
status
)
&
RUN
)
eieio
();
}
...
...
@@ -213,22 +213,22 @@ dbdma_setcmd(volatile struct dbdma_cmd *cp,
static
inline
void
bmwrite
(
struct
net_device
*
dev
,
unsigned
long
reg_offset
,
unsigned
data
)
{
out_le16
((
void
*
)
dev
->
base_addr
+
reg_offset
,
data
);
out_le16
((
void
__iomem
*
)
dev
->
base_addr
+
reg_offset
,
data
);
}
static
inline
volatile
unsigned
short
bmread
(
struct
net_device
*
dev
,
unsigned
long
reg_offset
)
{
return
in_le16
((
void
*
)
dev
->
base_addr
+
reg_offset
);
return
in_le16
((
void
__iomem
*
)
dev
->
base_addr
+
reg_offset
);
}
static
void
bmac_enable_and_reset_chip
(
struct
net_device
*
dev
)
{
struct
bmac_data
*
bp
=
netdev_priv
(
dev
);
volatile
struct
dbdma_regs
*
rd
=
bp
->
rx_dma
;
volatile
struct
dbdma_regs
*
td
=
bp
->
tx_dma
;
volatile
struct
dbdma_regs
__iomem
*
rd
=
bp
->
rx_dma
;
volatile
struct
dbdma_regs
__iomem
*
td
=
bp
->
tx_dma
;
if
(
rd
)
dbdma_reset
(
rd
);
...
...
@@ -406,7 +406,7 @@ static void
bmac_start_chip
(
struct
net_device
*
dev
)
{
struct
bmac_data
*
bp
=
netdev_priv
(
dev
);
volatile
struct
dbdma_regs
*
rd
=
bp
->
rx_dma
;
volatile
struct
dbdma_regs
__iomem
*
rd
=
bp
->
rx_dma
;
unsigned
short
oldConfig
;
/* enable rx dma channel */
...
...
@@ -476,8 +476,8 @@ static int bmac_suspend(struct macio_dev *mdev, u32 state)
bp
->
sleeping
=
1
;
spin_unlock_irqrestore
(
&
bp
->
lock
,
flags
);
if
(
bp
->
opened
)
{
volatile
struct
dbdma_regs
*
rd
=
bp
->
rx_dma
;
volatile
struct
dbdma_regs
*
td
=
bp
->
tx_dma
;
volatile
struct
dbdma_regs
__iomem
*
rd
=
bp
->
rx_dma
;
volatile
struct
dbdma_regs
__iomem
*
td
=
bp
->
tx_dma
;
config
=
bmread
(
dev
,
RXCFG
);
bmwrite
(
dev
,
RXCFG
,
(
config
&
~
RxMACEnable
));
...
...
@@ -602,7 +602,7 @@ bitrev(unsigned char b)
static
void
bmac_init_tx_ring
(
struct
bmac_data
*
bp
)
{
volatile
struct
dbdma_regs
*
td
=
bp
->
tx_dma
;
volatile
struct
dbdma_regs
__iomem
*
td
=
bp
->
tx_dma
;
memset
((
char
*
)
bp
->
tx_cmds
,
0
,
(
N_TX_RING
+
1
)
*
sizeof
(
struct
dbdma_cmd
));
...
...
@@ -623,7 +623,7 @@ bmac_init_tx_ring(struct bmac_data *bp)
static
int
bmac_init_rx_ring
(
struct
bmac_data
*
bp
)
{
volatile
struct
dbdma_regs
*
rd
=
bp
->
rx_dma
;
volatile
struct
dbdma_regs
__iomem
*
rd
=
bp
->
rx_dma
;
int
i
;
struct
sk_buff
*
skb
;
...
...
@@ -657,7 +657,7 @@ bmac_init_rx_ring(struct bmac_data *bp)
static
int
bmac_transmit_packet
(
struct
sk_buff
*
skb
,
struct
net_device
*
dev
)
{
struct
bmac_data
*
bp
=
netdev_priv
(
dev
);
volatile
struct
dbdma_regs
*
td
=
bp
->
tx_dma
;
volatile
struct
dbdma_regs
__iomem
*
td
=
bp
->
tx_dma
;
int
i
;
/* see if there's a free slot in the tx ring */
...
...
@@ -693,7 +693,7 @@ static irqreturn_t bmac_rxdma_intr(int irq, void *dev_id, struct pt_regs *regs)
{
struct
net_device
*
dev
=
(
struct
net_device
*
)
dev_id
;
struct
bmac_data
*
bp
=
netdev_priv
(
dev
);
volatile
struct
dbdma_regs
*
rd
=
bp
->
rx_dma
;
volatile
struct
dbdma_regs
__iomem
*
rd
=
bp
->
rx_dma
;
volatile
struct
dbdma_cmd
*
cp
;
int
i
,
nb
,
stat
;
struct
sk_buff
*
skb
;
...
...
@@ -1331,13 +1331,11 @@ static int __devinit bmac_probe(struct macio_dev *mdev, const struct of_match *m
goto
err_out_iounmap
;
bp
->
is_bmac_plus
=
is_bmac_plus
;
bp
->
tx_dma
=
(
volatile
struct
dbdma_regs
*
)
ioremap
(
macio_resource_start
(
mdev
,
1
),
macio_resource_len
(
mdev
,
1
));
bp
->
tx_dma
=
ioremap
(
macio_resource_start
(
mdev
,
1
),
macio_resource_len
(
mdev
,
1
));
if
(
!
bp
->
tx_dma
)
goto
err_out_iounmap
;
bp
->
tx_dma_intr
=
macio_irq
(
mdev
,
1
);
bp
->
rx_dma
=
(
volatile
struct
dbdma_regs
*
)
ioremap
(
macio_resource_start
(
mdev
,
2
),
macio_resource_len
(
mdev
,
2
));
bp
->
rx_dma
=
ioremap
(
macio_resource_start
(
mdev
,
2
),
macio_resource_len
(
mdev
,
2
));
if
(
!
bp
->
rx_dma
)
goto
err_out_iounmap_tx
;
bp
->
rx_dma_intr
=
macio_irq
(
mdev
,
2
);
...
...
@@ -1392,11 +1390,11 @@ static int __devinit bmac_probe(struct macio_dev *mdev, const struct of_match *m
err_out_irq0:
free_irq
(
dev
->
irq
,
dev
);
err_out_iounmap_rx:
iounmap
(
(
void
*
)
bp
->
rx_dma
);
iounmap
(
bp
->
rx_dma
);
err_out_iounmap_tx:
iounmap
(
(
void
*
)
bp
->
tx_dma
);
iounmap
(
bp
->
tx_dma
);
err_out_iounmap:
iounmap
((
void
*
)
dev
->
base_addr
);
iounmap
((
void
__iomem
*
)
dev
->
base_addr
);
out_release:
macio_release_resources
(
mdev
);
out_free:
...
...
@@ -1421,8 +1419,8 @@ static int bmac_open(struct net_device *dev)
static
int
bmac_close
(
struct
net_device
*
dev
)
{
struct
bmac_data
*
bp
=
netdev_priv
(
dev
);
volatile
struct
dbdma_regs
*
rd
=
bp
->
rx_dma
;
volatile
struct
dbdma_regs
*
td
=
bp
->
tx_dma
;
volatile
struct
dbdma_regs
__iomem
*
rd
=
bp
->
rx_dma
;
volatile
struct
dbdma_regs
__iomem
*
td
=
bp
->
tx_dma
;
unsigned
short
config
;
int
i
;
...
...
@@ -1505,8 +1503,8 @@ static void bmac_tx_timeout(unsigned long data)
{
struct
net_device
*
dev
=
(
struct
net_device
*
)
data
;
struct
bmac_data
*
bp
=
netdev_priv
(
dev
);
volatile
struct
dbdma_regs
*
td
=
bp
->
tx_dma
;
volatile
struct
dbdma_regs
*
rd
=
bp
->
rx_dma
;
volatile
struct
dbdma_regs
__iomem
*
td
=
bp
->
tx_dma
;
volatile
struct
dbdma_regs
__iomem
*
rd
=
bp
->
rx_dma
;
volatile
struct
dbdma_cmd
*
cp
;
unsigned
long
flags
;
unsigned
short
config
,
oldConfig
;
...
...
@@ -1638,9 +1636,9 @@ static int __devexit bmac_remove(struct macio_dev *mdev)
free_irq
(
bp
->
tx_dma_intr
,
dev
);
free_irq
(
bp
->
rx_dma_intr
,
dev
);
iounmap
((
void
*
)
dev
->
base_addr
);
iounmap
(
(
void
*
)
bp
->
tx_dma
);
iounmap
(
(
void
*
)
bp
->
rx_dma
);
iounmap
((
void
__iomem
*
)
dev
->
base_addr
);
iounmap
(
bp
->
tx_dma
);
iounmap
(
bp
->
rx_dma
);
macio_release_resources
(
mdev
);
...
...
drivers/net/hamachi.c
View file @
b4a8e614
...
...
@@ -512,6 +512,7 @@ struct hamachi_private {
u32
rx_int_var
,
tx_int_var
;
/* interrupt control variables */
u32
option
;
/* Hold on to a copy of the options */
struct
pci_dev
*
pci_dev
;
void
__iomem
*
base
;
};
MODULE_AUTHOR
(
"Donald Becker <becker@scyld.com>, Eric Kasten <kasten@nscl.msu.edu>, Keith Underwood <keithu@parl.clemson.edu>"
);
...
...
@@ -549,7 +550,7 @@ MODULE_PARM_DESC(options, "GNIC-II Bits 0-3: media type, bits 4-6: as force32, b
MODULE_PARM_DESC
(
full_duplex
,
"GNIC-II full duplex setting(s) (1)"
);
MODULE_PARM_DESC
(
force32
,
"GNIC-II: Bit 0: 32 bit PCI, bit 1: disable parity, bit 2: 64 bit PCI (all boards)"
);
static
int
read_eeprom
(
long
ioaddr
,
int
location
);
static
int
read_eeprom
(
void
__iomem
*
ioaddr
,
int
location
);
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
hamachi_open
(
struct
net_device
*
dev
);
...
...
@@ -575,7 +576,8 @@ static int __devinit hamachi_init_one (struct pci_dev *pdev,
int
option
,
i
,
rx_int_var
,
tx_int_var
,
boguscnt
;
int
chip_id
=
ent
->
driver_data
;
int
irq
;
long
ioaddr
;
void
__iomem
*
ioaddr
;
unsigned
long
base
;
static
int
card_idx
;
struct
net_device
*
dev
;
void
*
ring_space
;
...
...
@@ -594,9 +596,9 @@ static int __devinit hamachi_init_one (struct pci_dev *pdev,
goto
err_out
;
}
ioaddr
=
pci_resource_start
(
pdev
,
0
);
base
=
pci_resource_start
(
pdev
,
0
);
#ifdef __alpha__
/* Really "64 bit addrs" */
ioaddr
|=
(
pci_resource_start
(
pdev
,
1
)
<<
32
);
base
|=
(
pci_resource_start
(
pdev
,
1
)
<<
32
);
#endif
pci_set_master
(
pdev
);
...
...
@@ -605,7 +607,7 @@ static int __devinit hamachi_init_one (struct pci_dev *pdev,
if
(
i
)
return
i
;
irq
=
pdev
->
irq
;
ioaddr
=
(
long
)
ioremap
(
ioaddr
,
0x400
);
ioaddr
=
ioremap
(
base
,
0x400
);
if
(
!
ioaddr
)
goto
err_out_release
;
...
...
@@ -678,7 +680,8 @@ static int __devinit hamachi_init_one (struct pci_dev *pdev,
i
=
readb
(
ioaddr
+
PCIClkMeas
);
}
dev
->
base_addr
=
ioaddr
;
hmp
->
base
=
ioaddr
;
dev
->
base_addr
=
(
unsigned
long
)
ioaddr
;
dev
->
irq
=
irq
;
pci_set_drvdata
(
pdev
,
dev
);
...
...
@@ -741,7 +744,7 @@ static int __devinit hamachi_init_one (struct pci_dev *pdev,
goto
err_out_unmap_rx
;
}
printk
(
KERN_INFO
"%s: %s type %x at
0x%lx
, "
,
printk
(
KERN_INFO
"%s: %s type %x at
%p
, "
,
dev
->
name
,
chip_tbl
[
chip_id
].
name
,
readl
(
ioaddr
+
ChipRev
),
ioaddr
);
for
(
i
=
0
;
i
<
5
;
i
++
)
...
...
@@ -790,14 +793,14 @@ static int __devinit hamachi_init_one (struct pci_dev *pdev,
err_out_cleardev:
free_netdev
(
dev
);
err_out_iounmap:
iounmap
(
(
char
*
)
ioaddr
);
iounmap
(
ioaddr
);
err_out_release:
pci_release_regions
(
pdev
);
err_out:
return
ret
;
}
static
int
__devinit
read_eeprom
(
long
ioaddr
,
int
location
)
static
int
__devinit
read_eeprom
(
void
__iomem
*
ioaddr
,
int
location
)
{
int
bogus_cnt
=
1000
;
...
...
@@ -819,7 +822,8 @@ static int __devinit read_eeprom(long ioaddr, int location)
static
int
mdio_read
(
struct
net_device
*
dev
,
int
phy_id
,
int
location
)
{
long
ioaddr
=
dev
->
base_addr
;
struct
hamachi_private
*
hmp
=
netdev_priv
(
dev
);
void
__iomem
*
ioaddr
=
hmp
->
base
;
int
i
;
/* We should check busy first - per docs -KDU */
...
...
@@ -836,7 +840,8 @@ 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
)
{
long
ioaddr
=
dev
->
base_addr
;
struct
hamachi_private
*
hmp
=
netdev_priv
(
dev
);
void
__iomem
*
ioaddr
=
hmp
->
base
;
int
i
;
/* We should check busy first - per docs -KDU */
...
...
@@ -857,7 +862,7 @@ static void mdio_write(struct net_device *dev, int phy_id, int location, int val
static
int
hamachi_open
(
struct
net_device
*
dev
)
{
struct
hamachi_private
*
hmp
=
netdev_priv
(
dev
);
long
ioaddr
=
dev
->
base_addr
;
void
__iomem
*
ioaddr
=
hmp
->
base
;
int
i
;
u32
rx_int_var
,
tx_int_var
;
u16
fifo_info
;
...
...
@@ -987,7 +992,7 @@ static int hamachi_open(struct net_device *dev)
writew
(
0x001D
,
ioaddr
+
RxDMACtrl
);
writew
(
0x001D
,
ioaddr
+
TxDMACtrl
);
#endif
writew
(
0x0001
,
dev
->
base_
addr
+
RxCmd
);
writew
(
0x0001
,
io
addr
+
RxCmd
);
if
(
hamachi_debug
>
2
)
{
printk
(
KERN_DEBUG
"%s: Done hamachi_open(), status: Rx %x Tx %x.
\n
"
,
...
...
@@ -1038,7 +1043,7 @@ static void hamachi_timer(unsigned long data)
{
struct
net_device
*
dev
=
(
struct
net_device
*
)
data
;
struct
hamachi_private
*
hmp
=
netdev_priv
(
dev
);
long
ioaddr
=
dev
->
base_addr
;
void
__iomem
*
ioaddr
=
hmp
->
base
;
int
next_tick
=
10
*
HZ
;
if
(
hamachi_debug
>
2
)
{
...
...
@@ -1063,7 +1068,7 @@ static void hamachi_tx_timeout(struct net_device *dev)
{
int
i
;
struct
hamachi_private
*
hmp
=
netdev_priv
(
dev
);
long
ioaddr
=
dev
->
base_addr
;
void
__iomem
*
ioaddr
=
hmp
->
base
;
printk
(
KERN_WARNING
"%s: Hamachi transmit timed out, status %8.8x,"
" resetting...
\n
"
,
dev
->
name
,
(
int
)
readw
(
ioaddr
+
TxStatus
));
...
...
@@ -1115,7 +1120,7 @@ static void hamachi_tx_timeout(struct net_device *dev)
}
udelay
(
60
);
/* Sleep 60 us just for safety sake */
writew
(
0x0002
,
dev
->
base_
addr
+
RxCmd
);
/* STOP Rx */
writew
(
0x0002
,
io
addr
+
RxCmd
);
/* STOP Rx */
writeb
(
0x01
,
ioaddr
+
ChipReset
);
/* Reinit the hardware */
...
...
@@ -1157,9 +1162,9 @@ static void hamachi_tx_timeout(struct net_device *dev)
hmp
->
stats
.
tx_errors
++
;
/* Restart the chip's Tx/Rx processes . */
writew
(
0x0002
,
dev
->
base_
addr
+
TxCmd
);
/* STOP Tx */
writew
(
0x0001
,
dev
->
base_
addr
+
TxCmd
);
/* START Tx */
writew
(
0x0001
,
dev
->
base_
addr
+
RxCmd
);
/* START Rx */
writew
(
0x0002
,
io
addr
+
TxCmd
);
/* STOP Tx */
writew
(
0x0001
,
io
addr
+
TxCmd
);
/* START Tx */
writew
(
0x0001
,
io
addr
+
RxCmd
);
/* START Rx */
netif_wake_queue
(
dev
);
}
...
...
@@ -1275,9 +1280,9 @@ static int hamachi_start_xmit(struct sk_buff *skb, struct net_device *dev)
/* Wake the potentially-idle transmit channel. */
/* If we don't need to read status, DON'T -KDU */
status
=
readw
(
dev
->
base_addr
+
TxStatus
);
status
=
readw
(
hmp
->
base
+
TxStatus
);
if
(
!
(
status
&
0x0001
)
||
(
status
&
0x0002
))
writew
(
0x0001
,
dev
->
base_addr
+
TxCmd
);
writew
(
0x0001
,
hmp
->
base
+
TxCmd
);
return
1
;
}
...
...
@@ -1343,9 +1348,9 @@ static int hamachi_start_xmit(struct sk_buff *skb, struct net_device *dev)
/* Wake the potentially-idle transmit channel. */
/* If we don't need to read status, DON'T -KDU */
status
=
readw
(
dev
->
base_addr
+
TxStatus
);
status
=
readw
(
hmp
->
base
+
TxStatus
);
if
(
!
(
status
&
0x0001
)
||
(
status
&
0x0002
))
writew
(
0x0001
,
dev
->
base_addr
+
TxCmd
);
writew
(
0x0001
,
hmp
->
base
+
TxCmd
);
/* Immediately before returning, let's clear as many entries as we can. */
hamachi_tx
(
dev
);
...
...
@@ -1376,8 +1381,9 @@ static int hamachi_start_xmit(struct sk_buff *skb, struct net_device *dev)
static
irqreturn_t
hamachi_interrupt
(
int
irq
,
void
*
dev_instance
,
struct
pt_regs
*
rgs
)
{
struct
net_device
*
dev
=
dev_instance
;
struct
hamachi_private
*
hmp
;
long
ioaddr
,
boguscnt
=
max_interrupt_work
;
struct
hamachi_private
*
hmp
=
netdev_priv
(
dev
);
void
__iomem
*
ioaddr
=
hmp
->
base
;
long
boguscnt
=
max_interrupt_work
;
int
handled
=
0
;
#ifndef final_version
/* Can never occur. */
...
...
@@ -1387,8 +1393,6 @@ static irqreturn_t hamachi_interrupt(int irq, void *dev_instance, struct pt_regs
}
#endif
ioaddr
=
dev
->
base_addr
;
hmp
=
netdev_priv
(
dev
);
spin_lock
(
&
hmp
->
lock
);
do
{
...
...
@@ -1687,8 +1691,8 @@ static int hamachi_rx(struct net_device *dev)
/* Restart Rx engine if stopped. */
/* If we don't need to check status, don't. -KDU */
if
(
readw
(
dev
->
base_addr
+
RxStatus
)
&
0x0002
)
writew
(
0x0001
,
dev
->
base_addr
+
RxCmd
);
if
(
readw
(
hmp
->
base
+
RxStatus
)
&
0x0002
)
writew
(
0x0001
,
hmp
->
base
+
RxCmd
);
return
0
;
}
...
...
@@ -1697,8 +1701,8 @@ static int hamachi_rx(struct net_device *dev)
than just errors. */
static
void
hamachi_error
(
struct
net_device
*
dev
,
int
intr_status
)
{
long
ioaddr
=
dev
->
base_addr
;
struct
hamachi_private
*
hmp
=
netdev_priv
(
dev
);
void
__iomem
*
ioaddr
=
hmp
->
base
;
if
(
intr_status
&
(
LinkChange
|
NegotiationChange
))
{
if
(
hamachi_debug
>
1
)
...
...
@@ -1731,8 +1735,8 @@ static void hamachi_error(struct net_device *dev, int intr_status)
static
int
hamachi_close
(
struct
net_device
*
dev
)
{
long
ioaddr
=
dev
->
base_addr
;
struct
hamachi_private
*
hmp
=
netdev_priv
(
dev
);
void
__iomem
*
ioaddr
=
hmp
->
base
;
struct
sk_buff
*
skb
;
int
i
;
...
...
@@ -1817,8 +1821,8 @@ static int hamachi_close(struct net_device *dev)
static
struct
net_device_stats
*
hamachi_get_stats
(
struct
net_device
*
dev
)
{
long
ioaddr
=
dev
->
base_addr
;
struct
hamachi_private
*
hmp
=
netdev_priv
(
dev
);
void
__iomem
*
ioaddr
=
hmp
->
base
;
/* We should lock this segment of code for SMP eventually, although
the vulnerability window is very small and statistics are
...
...
@@ -1845,7 +1849,8 @@ static struct net_device_stats *hamachi_get_stats(struct net_device *dev)
static
void
set_rx_mode
(
struct
net_device
*
dev
)
{
long
ioaddr
=
dev
->
base_addr
;
struct
hamachi_private
*
hmp
=
netdev_priv
(
dev
);
void
__iomem
*
ioaddr
=
hmp
->
base
;
if
(
dev
->
flags
&
IFF_PROMISC
)
{
/* Set promiscuous. */
/* Unconditionally log net taps. */
...
...
@@ -1950,11 +1955,11 @@ static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
*/
if
(
!
capable
(
CAP_NET_ADMIN
))
return
-
EPERM
;
writel
(
d
[
0
],
dev
->
base_addr
+
TxIntrCtrl
);
writel
(
d
[
1
],
dev
->
base_addr
+
RxIntrCtrl
);
writel
(
d
[
0
],
np
->
base
+
TxIntrCtrl
);
writel
(
d
[
1
],
np
->
base
+
RxIntrCtrl
);
printk
(
KERN_NOTICE
"%s: tx %08x, rx %08x intr
\n
"
,
dev
->
name
,
(
u32
)
readl
(
dev
->
base_addr
+
TxIntrCtrl
),
(
u32
)
readl
(
dev
->
base_addr
+
RxIntrCtrl
));
(
u32
)
readl
(
np
->
base
+
TxIntrCtrl
),
(
u32
)
readl
(
np
->
base
+
RxIntrCtrl
));
rc
=
0
;
}
...
...
@@ -1980,7 +1985,7 @@ static void __devexit hamachi_remove_one (struct pci_dev *pdev)
pci_free_consistent
(
pdev
,
TX_TOTAL_SIZE
,
hmp
->
tx_ring
,
hmp
->
tx_ring_dma
);
unregister_netdev
(
dev
);
iounmap
(
(
char
*
)
dev
->
base_addr
);
iounmap
(
hmp
->
base
);
free_netdev
(
dev
);
pci_release_regions
(
pdev
);
pci_set_drvdata
(
pdev
,
NULL
);
...
...
drivers/net/myri_sbus.c
View file @
b4a8e614
...
...
@@ -118,7 +118,7 @@ static void myri_enable_irq(void __iomem *lp, void __iomem *cregs)
static
inline
void
bang_the_chip
(
struct
myri_eth
*
mp
)
{
struct
myri_shmem
*
shmem
=
mp
->
shmem
;
struct
myri_shmem
__iomem
*
shmem
=
mp
->
shmem
;
void
__iomem
*
cregs
=
mp
->
cregs
;
sbus_writel
(
1
,
&
shmem
->
send
);
...
...
@@ -127,9 +127,9 @@ static inline void bang_the_chip(struct myri_eth *mp)
static
int
myri_do_handshake
(
struct
myri_eth
*
mp
)
{
struct
myri_shmem
*
shmem
=
mp
->
shmem
;
struct
myri_shmem
__iomem
*
shmem
=
mp
->
shmem
;
void
__iomem
*
cregs
=
mp
->
cregs
;
struct
myri_channel
*
chan
=
&
shmem
->
channel
;
struct
myri_channel
__iomem
*
chan
=
&
shmem
->
channel
;
int
tick
=
0
;
DET
((
"myri_do_handshake: "
));
...
...
@@ -427,7 +427,7 @@ static void myri_rx(struct myri_eth *mp, struct net_device *dev)
u32
csum
=
sbus_readl
(
&
rxdack
->
csum
);
int
len
=
sbus_readl
(
&
rxdack
->
myri_scatters
[
0
].
len
);
int
index
=
sbus_readl
(
&
rxdack
->
ctx
);
struct
myri_rxd
__iomem
*
rxd
=
&
rq
->
myri_rxd
[
rq
->
tail
];
struct
myri_rxd
__iomem
*
rxd
=
&
rq
->
myri_rxd
[
sbus_readl
(
&
rq
->
tail
)
];
struct
sk_buff
*
skb
=
mp
->
rx_skbs
[
index
];
/* Ack it. */
...
...
@@ -546,7 +546,7 @@ static irqreturn_t myri_interrupt(int irq, void *dev_id, struct pt_regs *regs)
struct
net_device
*
dev
=
(
struct
net_device
*
)
dev_id
;
struct
myri_eth
*
mp
=
(
struct
myri_eth
*
)
dev
->
priv
;
void
__iomem
*
lregs
=
mp
->
lregs
;
struct
myri_channel
*
chan
=
&
mp
->
shmem
->
channel
;
struct
myri_channel
__iomem
*
chan
=
&
mp
->
shmem
->
channel
;
unsigned
long
flags
;
u32
status
;
int
handled
=
0
;
...
...
drivers/net/s2io.c
View file @
b4a8e614
This diff is collapsed.
Click to expand it.
drivers/net/s2io.h
View file @
b4a8e614
...
...
@@ -583,7 +583,7 @@ typedef struct mac_info {
/* tx side stuff */
/* logical pointer of start of each Tx FIFO */
TxFIFO_element_t
*
tx_FIFO_start
[
MAX_TX_FIFOS
];
TxFIFO_element_t
__iomem
*
tx_FIFO_start
[
MAX_TX_FIFOS
];
/* Current offset within tx_FIFO_start, where driver would write new Tx frame*/
tx_curr_put_info_t
tx_curr_put_info
[
MAX_TX_FIFOS
];
...
...
@@ -623,8 +623,8 @@ typedef struct s2io_nic {
macaddr_t
pre_mac_addr
[
MAX_MAC_SUPPORTED
];
struct
net_device_stats
stats
;
caddr_t
bar0
;
caddr_t
bar1
;
void
__iomem
*
bar0
;
void
__iomem
*
bar1
;
struct
config_param
config
;
mac_info_t
mac_control
;
int
high_dma_flag
;
...
...
@@ -736,10 +736,9 @@ typedef struct s2io_nic {
/* OS related system calls */
#ifndef readq
static
inline
u64
readq
(
void
*
addr
)
static
inline
u64
readq
(
void
__iomem
*
addr
)
{
u64
ret
=
0
;
ret
=
readl
(
addr
+
4
);
u64
ret
=
readl
(
addr
+
4
);
ret
<<=
32
;
ret
|=
readl
(
addr
);
...
...
@@ -748,7 +747,7 @@ static inline u64 readq(void *addr)
#endif
#ifndef writeq
static
inline
void
writeq
(
u64
val
,
void
*
addr
)
static
inline
void
writeq
(
u64
val
,
void
__iomem
*
addr
)
{
writel
((
u32
)
(
val
),
addr
);
writel
((
u32
)
(
val
>>
32
),
(
addr
+
4
));
...
...
@@ -762,7 +761,7 @@ static inline void writeq(u64 val, void *addr)
*/
#define UF 1
#define LF 2
static
inline
void
SPECIAL_REG_WRITE
(
u64
val
,
void
*
addr
,
int
order
)
static
inline
void
SPECIAL_REG_WRITE
(
u64
val
,
void
__iomem
*
addr
,
int
order
)
{
if
(
order
==
LF
)
{
writel
((
u32
)
(
val
),
addr
);
...
...
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