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
661e5f8d
Commit
661e5f8d
authored
Jan 17, 2005
by
Jeff Garzik
Browse files
Options
Browse Files
Download
Plain Diff
Merge pobox.com:/garz/repo/netdev-2.6/viro-iomem
into pobox.com:/garz/repo/net-drivers-2.6
parents
1568cc8f
b4a8e614
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 @
661e5f8d
...
...
@@ -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 @
661e5f8d
...
...
@@ -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 @
661e5f8d
...
...
@@ -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 @
661e5f8d
This diff is collapsed.
Click to expand it.
drivers/net/s2io.h
View file @
661e5f8d
...
...
@@ -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