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
Show 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
...
...
@@ -277,7 +277,7 @@ static int init_shared_mem(struct s2io_nic *nic)
int
lst_size
,
lst_per_page
;
struct
net_device
*
dev
=
nic
->
dev
;
#ifdef CONFIG_2BUFF_MODE
u
64
tmp
;
u
nsigned
long
tmp
;
buffAdd_t
*
ba
;
#endif
...
...
@@ -448,22 +448,22 @@ static int init_shared_mem(struct s2io_nic *nic)
while
(
k
!=
MAX_RXDS_PER_BLOCK
)
{
ba
=
&
nic
->
ba
[
i
][
j
][
k
];
ba
->
ba_0_org
=
(
void
*
)
kmalloc
ba
->
ba_0_org
=
kmalloc
(
BUF0_LEN
+
ALIGN_SIZE
,
GFP_KERNEL
);
if
(
!
ba
->
ba_0_org
)
return
-
ENOMEM
;
tmp
=
(
u
64
)
ba
->
ba_0_org
;
tmp
=
(
u
nsigned
long
)
ba
->
ba_0_org
;
tmp
+=
ALIGN_SIZE
;
tmp
&=
~
((
u
64
)
ALIGN_SIZE
);
tmp
&=
~
((
u
nsigned
long
)
ALIGN_SIZE
);
ba
->
ba_0
=
(
void
*
)
tmp
;
ba
->
ba_1_org
=
(
void
*
)
kmalloc
ba
->
ba_1_org
=
kmalloc
(
BUF1_LEN
+
ALIGN_SIZE
,
GFP_KERNEL
);
if
(
!
ba
->
ba_1_org
)
return
-
ENOMEM
;
tmp
=
(
u
64
)
ba
->
ba_1_org
;
tmp
=
(
u
nsigned
long
)
ba
->
ba_1_org
;
tmp
+=
ALIGN_SIZE
;
tmp
&=
~
((
u
64
)
ALIGN_SIZE
);
tmp
&=
~
((
u
nsigned
long
)
ALIGN_SIZE
);
ba
->
ba_1
=
(
void
*
)
tmp
;
k
++
;
}
...
...
@@ -610,10 +610,10 @@ static void free_shared_mem(struct s2io_nic *nic)
static
int
init_nic
(
struct
s2io_nic
*
nic
)
{
XENA_dev_config_t
*
bar0
=
(
XENA_dev_config_t
*
)
nic
->
bar0
;
XENA_dev_config_t
__iomem
*
bar0
=
nic
->
bar0
;
struct
net_device
*
dev
=
nic
->
dev
;
register
u64
val64
=
0
;
void
*
add
;
void
__iomem
*
add
;
u32
time
;
int
i
,
j
;
mac_info_t
*
mac_control
;
...
...
@@ -702,7 +702,7 @@ static int init_nic(struct s2io_nic *nic)
schedule_timeout
(
HZ
/
2
);
/* Enable Receiving broadcasts */
add
=
(
void
*
)
&
bar0
->
mac_cfg
;
add
=
&
bar0
->
mac_cfg
;
val64
=
readq
(
&
bar0
->
mac_cfg
);
val64
|=
MAC_RMAC_BCAST_ENABLE
;
writeq
(
RMAC_CFG_KEY
(
0x4C0D
),
&
bar0
->
rmac_cfg_key
);
...
...
@@ -1003,7 +1003,7 @@ static int init_nic(struct s2io_nic *nic)
writeq
(
0xffbbffbbffbbffbbULL
,
&
bar0
->
mc_pause_thresh_q4q7
);
/* Disable RMAC PAD STRIPPING */
add
=
(
void
*
)
&
bar0
->
mac_cfg
;
add
=
&
bar0
->
mac_cfg
;
val64
=
readq
(
&
bar0
->
mac_cfg
);
val64
&=
~
(
MAC_CFG_RMAC_STRIP_PAD
);
writeq
(
RMAC_CFG_KEY
(
0x4C0D
),
&
bar0
->
rmac_cfg_key
);
...
...
@@ -1069,7 +1069,7 @@ static int init_nic(struct s2io_nic *nic)
static
void
en_dis_able_nic_intrs
(
struct
s2io_nic
*
nic
,
u16
mask
,
int
flag
)
{
XENA_dev_config_t
*
bar0
=
(
XENA_dev_config_t
*
)
nic
->
bar0
;
XENA_dev_config_t
__iomem
*
bar0
=
nic
->
bar0
;
register
u64
val64
=
0
,
temp64
=
0
;
/* Top level interrupt classification */
...
...
@@ -1354,7 +1354,7 @@ static int verify_xena_quiescence(u64 val64, int flag)
void
fix_mac_address
(
nic_t
*
sp
)
{
XENA_dev_config_t
*
bar0
=
(
XENA_dev_config_t
*
)
sp
->
bar0
;
XENA_dev_config_t
__iomem
*
bar0
=
sp
->
bar0
;
u64
val64
;
int
i
=
0
;
...
...
@@ -1379,7 +1379,7 @@ void fix_mac_address(nic_t * sp)
static
int
start_nic
(
struct
s2io_nic
*
nic
)
{
XENA_dev_config_t
*
bar0
=
(
XENA_dev_config_t
*
)
nic
->
bar0
;
XENA_dev_config_t
__iomem
*
bar0
=
nic
->
bar0
;
struct
net_device
*
dev
=
nic
->
dev
;
register
u64
val64
=
0
;
u16
interruptible
,
i
;
...
...
@@ -1474,7 +1474,7 @@ static int start_nic(struct s2io_nic *nic)
val64
|=
0x0000800000000000ULL
;
writeq
(
val64
,
&
bar0
->
gpio_control
);
val64
=
0x0411040400000000ULL
;
writeq
(
val64
,
(
void
*
)
((
u8
*
)
bar0
+
0x2700
)
);
writeq
(
val64
,
(
void
__iomem
*
)
bar0
+
0x2700
);
}
/*
...
...
@@ -1557,7 +1557,7 @@ void free_tx_buffers(struct s2io_nic *nic)
static
void
stop_nic
(
struct
s2io_nic
*
nic
)
{
XENA_dev_config_t
*
bar0
=
(
XENA_dev_config_t
*
)
nic
->
bar0
;
XENA_dev_config_t
__iomem
*
bar0
=
nic
->
bar0
;
register
u64
val64
=
0
;
u16
interruptible
,
i
;
mac_info_t
*
mac_control
;
...
...
@@ -1615,7 +1615,7 @@ int fill_rx_buffers(struct s2io_nic *nic, int ring_no)
#ifdef CONFIG_2BUFF_MODE
RxD_t
*
rxdpnext
;
int
nextblk
;
u
64
tmp
;
u
nsigned
long
tmp
;
buffAdd_t
*
ba
;
dma_addr_t
rxdpphys
;
#endif
...
...
@@ -1757,7 +1757,7 @@ int fill_rx_buffers(struct s2io_nic *nic, int ring_no)
#else
ba
=
&
nic
->
ba
[
ring_no
][
block_no
][
off
];
skb_reserve
(
skb
,
BUF0_LEN
);
tmp
=
(
u
64
)
skb
->
data
;
tmp
=
(
u
nsigned
long
)
skb
->
data
;
tmp
+=
ALIGN_SIZE
;
tmp
&=
~
ALIGN_SIZE
;
skb
->
data
=
(
void
*
)
tmp
;
...
...
@@ -1900,7 +1900,7 @@ static void free_rx_buffers(struct s2io_nic *sp)
static
int
s2io_poll
(
struct
net_device
*
dev
,
int
*
budget
)
{
nic_t
*
nic
=
dev
->
priv
;
XENA_dev_config_t
*
bar0
=
(
XENA_dev_config_t
*
)
nic
->
bar0
;
XENA_dev_config_t
__iomem
*
bar0
=
nic
->
bar0
;
int
pkts_to_process
=
*
budget
,
pkt_cnt
=
0
;
register
u64
val64
=
0
;
rx_curr_get_info_t
get_info
,
put_info
;
...
...
@@ -2269,7 +2269,7 @@ static void rx_intr_handler(struct s2io_nic *nic)
static
void
tx_intr_handler
(
struct
s2io_nic
*
nic
)
{
XENA_dev_config_t
*
bar0
=
(
XENA_dev_config_t
*
)
nic
->
bar0
;
XENA_dev_config_t
__iomem
*
bar0
=
nic
->
bar0
;
struct
net_device
*
dev
=
(
struct
net_device
*
)
nic
->
dev
;
tx_curr_get_info_t
get_info
,
put_info
;
struct
sk_buff
*
skb
;
...
...
@@ -2376,7 +2376,7 @@ static void tx_intr_handler(struct s2io_nic *nic)
static
void
alarm_intr_handler
(
struct
s2io_nic
*
nic
)
{
struct
net_device
*
dev
=
(
struct
net_device
*
)
nic
->
dev
;
XENA_dev_config_t
*
bar0
=
(
XENA_dev_config_t
*
)
nic
->
bar0
;
XENA_dev_config_t
__iomem
*
bar0
=
nic
->
bar0
;
register
u64
val64
=
0
,
err_reg
=
0
;
/* Handling link status change error Intr */
...
...
@@ -2427,7 +2427,7 @@ static void alarm_intr_handler(struct s2io_nic *nic)
int
wait_for_cmd_complete
(
nic_t
*
sp
)
{
XENA_dev_config_t
*
bar0
=
(
XENA_dev_config_t
*
)
sp
->
bar0
;
XENA_dev_config_t
__iomem
*
bar0
=
sp
->
bar0
;
int
ret
=
FAILURE
,
cnt
=
0
;
u64
val64
;
...
...
@@ -2458,7 +2458,7 @@ int wait_for_cmd_complete(nic_t * sp)
void
s2io_reset
(
nic_t
*
sp
)
{
XENA_dev_config_t
*
bar0
=
(
XENA_dev_config_t
*
)
sp
->
bar0
;
XENA_dev_config_t
__iomem
*
bar0
=
sp
->
bar0
;
u64
val64
;
u16
subid
;
...
...
@@ -2494,7 +2494,7 @@ void s2io_reset(nic_t * sp)
val64
|=
0x0000800000000000ULL
;
writeq
(
val64
,
&
bar0
->
gpio_control
);
val64
=
0x0411040400000000ULL
;
writeq
(
val64
,
(
void
*
)
((
u8
*
)
bar0
+
0x2700
)
);
writeq
(
val64
,
(
void
__iomem
*
)
bar0
+
0x2700
);
}
sp
->
device_enabled_once
=
FALSE
;
...
...
@@ -2513,7 +2513,7 @@ void s2io_reset(nic_t * sp)
int
s2io_set_swapper
(
nic_t
*
sp
)
{
struct
net_device
*
dev
=
sp
->
dev
;
XENA_dev_config_t
*
bar0
=
(
XENA_dev_config_t
*
)
sp
->
bar0
;
XENA_dev_config_t
__iomem
*
bar0
=
sp
->
bar0
;
u64
val64
;
/*
...
...
@@ -2689,14 +2689,14 @@ int s2io_xmit(struct sk_buff *skb, struct net_device *dev)
u16
frg_cnt
,
frg_len
,
i
,
queue
,
queue_len
,
put_off
,
get_off
;
register
u64
val64
;
TxD_t
*
txdp
;
TxFIFO_element_t
*
tx_fifo
;
TxFIFO_element_t
__iomem
*
tx_fifo
;
unsigned
long
flags
;
#ifdef NETIF_F_TSO
int
mss
;
#endif
mac_info_t
*
mac_control
;
struct
config_param
*
config
;
XENA_dev_config_t
*
bar0
=
(
XENA_dev_config_t
*
)
sp
->
bar0
;
XENA_dev_config_t
__iomem
*
bar0
=
sp
->
bar0
;
mac_control
=
&
sp
->
mac_control
;
config
=
&
sp
->
config
;
...
...
@@ -2813,7 +2813,7 @@ static irqreturn_t s2io_isr(int irq, void *dev_id, struct pt_regs *regs)
{
struct
net_device
*
dev
=
(
struct
net_device
*
)
dev_id
;
nic_t
*
sp
=
dev
->
priv
;
XENA_dev_config_t
*
bar0
=
(
XENA_dev_config_t
*
)
sp
->
bar0
;
XENA_dev_config_t
__iomem
*
bar0
=
sp
->
bar0
;
#ifndef CONFIG_S2IO_NAPI
int
i
,
ret
;
#endif
...
...
@@ -2939,11 +2939,11 @@ static void s2io_set_multicast(struct net_device *dev)
int
i
,
j
,
prev_cnt
;
struct
dev_mc_list
*
mclist
;
nic_t
*
sp
=
dev
->
priv
;
XENA_dev_config_t
*
bar0
=
(
XENA_dev_config_t
*
)
sp
->
bar0
;
XENA_dev_config_t
__iomem
*
bar0
=
sp
->
bar0
;
u64
val64
=
0
,
multi_mac
=
0x010203040506ULL
,
mask
=
0xfeffffffffffULL
;
u64
dis_addr
=
0xffffffffffffULL
,
mac_addr
=
0
;
void
*
add
;
void
__iomem
*
add
;
if
((
dev
->
flags
&
IFF_ALLMULTI
)
&&
(
!
sp
->
m_cast_flg
))
{
/* Enable all Multicast addresses */
...
...
@@ -2977,7 +2977,7 @@ static void s2io_set_multicast(struct net_device *dev)
if
((
dev
->
flags
&
IFF_PROMISC
)
&&
(
!
sp
->
promisc_flg
))
{
/* Put the NIC into promiscuous mode */
add
=
(
void
*
)
&
bar0
->
mac_cfg
;
add
=
&
bar0
->
mac_cfg
;
val64
=
readq
(
&
bar0
->
mac_cfg
);
val64
|=
MAC_CFG_RMAC_PROM_ENABLE
;
...
...
@@ -2992,7 +2992,7 @@ static void s2io_set_multicast(struct net_device *dev)
dev
->
name
);
}
else
if
(
!
(
dev
->
flags
&
IFF_PROMISC
)
&&
(
sp
->
promisc_flg
))
{
/* Remove the NIC from promiscuous mode */
add
=
(
void
*
)
&
bar0
->
mac_cfg
;
add
=
&
bar0
->
mac_cfg
;
val64
=
readq
(
&
bar0
->
mac_cfg
);
val64
&=
~
MAC_CFG_RMAC_PROM_ENABLE
;
...
...
@@ -3082,7 +3082,7 @@ static void s2io_set_multicast(struct net_device *dev)
int
s2io_set_mac_addr
(
struct
net_device
*
dev
,
u8
*
addr
)
{
nic_t
*
sp
=
dev
->
priv
;
XENA_dev_config_t
*
bar0
=
(
XENA_dev_config_t
*
)
sp
->
bar0
;
XENA_dev_config_t
__iomem
*
bar0
=
sp
->
bar0
;
register
u64
val64
,
mac_addr
=
0
;
int
i
;
...
...
@@ -3225,7 +3225,7 @@ static void s2io_ethtool_gregs(struct net_device *dev,
regs
->
version
=
sp
->
pdev
->
subsystem_device
;
for
(
i
=
0
;
i
<
regs
->
len
;
i
+=
8
)
{
reg
=
readq
(
(
void
*
)
(
sp
->
bar0
+
i
)
);
reg
=
readq
(
sp
->
bar0
+
i
);
memcpy
((
reg_space
+
i
),
&
reg
,
8
);
}
}
...
...
@@ -3242,7 +3242,7 @@ static void s2io_ethtool_gregs(struct net_device *dev,
static
void
s2io_phy_id
(
unsigned
long
data
)
{
nic_t
*
sp
=
(
nic_t
*
)
data
;
XENA_dev_config_t
*
bar0
=
(
XENA_dev_config_t
*
)
sp
->
bar0
;
XENA_dev_config_t
__iomem
*
bar0
=
sp
->
bar0
;
u64
val64
=
0
;
u16
subid
;
...
...
@@ -3279,7 +3279,7 @@ static int s2io_ethtool_idnic(struct net_device *dev, u32 data)
{
u64
val64
=
0
,
last_gpio_ctrl_val
;
nic_t
*
sp
=
dev
->
priv
;
XENA_dev_config_t
*
bar0
=
(
XENA_dev_config_t
*
)
sp
->
bar0
;
XENA_dev_config_t
__iomem
*
bar0
=
sp
->
bar0
;
u16
subid
;
subid
=
sp
->
pdev
->
subsystem_device
;
...
...
@@ -3327,7 +3327,7 @@ static void s2io_ethtool_getpause_data(struct net_device *dev,
{
u64
val64
;
nic_t
*
sp
=
dev
->
priv
;
XENA_dev_config_t
*
bar0
=
(
XENA_dev_config_t
*
)
sp
->
bar0
;
XENA_dev_config_t
__iomem
*
bar0
=
sp
->
bar0
;
val64
=
readq
(
&
bar0
->
rmac_pause_cfg
);
if
(
val64
&
RMAC_PAUSE_GEN_ENABLE
)
...
...
@@ -3354,7 +3354,7 @@ int s2io_ethtool_setpause_data(struct net_device *dev,
{
u64
val64
;
nic_t
*
sp
=
dev
->
priv
;
XENA_dev_config_t
*
bar0
=
(
XENA_dev_config_t
*
)
sp
->
bar0
;
XENA_dev_config_t
__iomem
*
bar0
=
sp
->
bar0
;
val64
=
readq
(
&
bar0
->
rmac_pause_cfg
);
if
(
ep
->
tx_pause
)
...
...
@@ -3391,7 +3391,7 @@ static int read_eeprom(nic_t * sp, int off, u32 * data)
int
ret
=
-
1
;
u32
exit_cnt
=
0
;
u64
val64
;
XENA_dev_config_t
*
bar0
=
(
XENA_dev_config_t
*
)
sp
->
bar0
;
XENA_dev_config_t
__iomem
*
bar0
=
sp
->
bar0
;
val64
=
I2C_CONTROL_DEV_ID
(
S2IO_DEV_ID
)
|
I2C_CONTROL_ADDR
(
off
)
|
I2C_CONTROL_BYTE_CNT
(
0x3
)
|
I2C_CONTROL_READ
|
...
...
@@ -3432,7 +3432,7 @@ static int write_eeprom(nic_t * sp, int off, u32 data, int cnt)
{
int
exit_cnt
=
0
,
ret
=
-
1
;
u64
val64
;
XENA_dev_config_t
*
bar0
=
(
XENA_dev_config_t
*
)
sp
->
bar0
;
XENA_dev_config_t
__iomem
*
bar0
=
sp
->
bar0
;
val64
=
I2C_CONTROL_DEV_ID
(
S2IO_DEV_ID
)
|
I2C_CONTROL_ADDR
(
off
)
|
I2C_CONTROL_BYTE_CNT
(
cnt
)
|
I2C_CONTROL_SET_DATA
(
data
)
|
...
...
@@ -3555,7 +3555,7 @@ static int s2io_ethtool_seeprom(struct net_device *dev,
static
int
s2io_register_test
(
nic_t
*
sp
,
uint64_t
*
data
)
{
XENA_dev_config_t
*
bar0
=
(
XENA_dev_config_t
*
)
sp
->
bar0
;
XENA_dev_config_t
__iomem
*
bar0
=
sp
->
bar0
;
u64
val64
=
0
;
int
fail
=
0
;
...
...
@@ -3726,7 +3726,7 @@ static int s2io_bist_test(nic_t * sp, uint64_t * data)
static
int
s2io_link_test
(
nic_t
*
sp
,
uint64_t
*
data
)
{
XENA_dev_config_t
*
bar0
=
(
XENA_dev_config_t
*
)
sp
->
bar0
;
XENA_dev_config_t
__iomem
*
bar0
=
sp
->
bar0
;
u64
val64
;
val64
=
readq
(
&
bar0
->
adapter_status
);
...
...
@@ -3751,7 +3751,7 @@ static int s2io_link_test(nic_t * sp, uint64_t * data)
static
int
s2io_rldram_test
(
nic_t
*
sp
,
uint64_t
*
data
)
{
XENA_dev_config_t
*
bar0
=
(
XENA_dev_config_t
*
)
sp
->
bar0
;
XENA_dev_config_t
__iomem
*
bar0
=
sp
->
bar0
;
u64
val64
;
int
cnt
,
iteration
=
0
,
test_pass
=
0
;
...
...
@@ -4092,7 +4092,7 @@ int s2io_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
int
s2io_change_mtu
(
struct
net_device
*
dev
,
int
new_mtu
)
{
nic_t
*
sp
=
dev
->
priv
;
XENA_dev_config_t
*
bar0
=
(
XENA_dev_config_t
*
)
sp
->
bar0
;
XENA_dev_config_t
__iomem
*
bar0
=
sp
->
bar0
;
register
u64
val64
;
if
(
netif_running
(
dev
))
{
...
...
@@ -4169,7 +4169,7 @@ static void s2io_set_link(unsigned long data)
{
nic_t
*
nic
=
(
nic_t
*
)
data
;
struct
net_device
*
dev
=
nic
->
dev
;
XENA_dev_config_t
*
bar0
=
(
XENA_dev_config_t
*
)
nic
->
bar0
;
XENA_dev_config_t
__iomem
*
bar0
=
nic
->
bar0
;
register
u64
val64
;
u16
subid
;
...
...
@@ -4233,7 +4233,7 @@ static void s2io_set_link(unsigned long data)
static
void
s2io_card_down
(
nic_t
*
sp
)
{
int
cnt
=
0
;
XENA_dev_config_t
*
bar0
=
(
XENA_dev_config_t
*
)
sp
->
bar0
;
XENA_dev_config_t
__iomem
*
bar0
=
sp
->
bar0
;
unsigned
long
flags
;
register
u64
val64
=
0
;
...
...
@@ -4611,7 +4611,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
int
dma_flag
=
FALSE
;
u32
mac_up
,
mac_down
;
u64
val64
=
0
,
tmp64
=
0
;
XENA_dev_config_t
*
bar0
=
NULL
;
XENA_dev_config_t
__iomem
*
bar0
=
NULL
;
u16
subid
;
mac_info_t
*
mac_control
;
struct
config_param
*
config
;
...
...
@@ -4741,7 +4741,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
goto
mem_alloc_failed
;
}
sp
->
bar0
=
(
caddr_t
)
ioremap
(
pci_resource_start
(
pdev
,
0
),
sp
->
bar0
=
ioremap
(
pci_resource_start
(
pdev
,
0
),
pci_resource_len
(
pdev
,
0
));
if
(
!
sp
->
bar0
)
{
DBG_PRINT
(
ERR_DBG
,
"%s: S2IO: cannot remap io mem1
\n
"
,
...
...
@@ -4750,7 +4750,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
goto
bar0_remap_failed
;
}
sp
->
bar1
=
(
caddr_t
)
ioremap
(
pci_resource_start
(
pdev
,
2
),
sp
->
bar1
=
ioremap
(
pci_resource_start
(
pdev
,
2
),
pci_resource_len
(
pdev
,
2
));
if
(
!
sp
->
bar1
)
{
DBG_PRINT
(
ERR_DBG
,
"%s: S2IO: cannot remap io mem2
\n
"
,
...
...
@@ -4764,7 +4764,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
/* Initializing the BAR1 address as the start of the FIFO pointer. */
for
(
j
=
0
;
j
<
MAX_TX_FIFOS
;
j
++
)
{
mac_control
->
tx_FIFO_start
[
j
]
=
(
TxFIFO_element_t
*
)
mac_control
->
tx_FIFO_start
[
j
]
=
(
TxFIFO_element_t
__iomem
*
)
(
sp
->
bar1
+
(
j
*
0x00020000
));
}
...
...
@@ -4829,7 +4829,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
* MAC address initialization.
* For now only one mac address will be read and used.
*/
bar0
=
(
XENA_dev_config_t
*
)
sp
->
bar0
;
bar0
=
sp
->
bar0
;
val64
=
RMAC_ADDR_CMD_MEM_RD
|
RMAC_ADDR_CMD_MEM_STROBE_NEW_CMD
|
RMAC_ADDR_CMD_MEM_OFFSET
(
0
+
MAC_MAC_ADDR_START_OFFSET
);
writeq
(
val64
,
&
bar0
->
rmac_addr_cmd_mem
);
...
...
@@ -4886,7 +4886,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
val64
|=
0x0000800000000000ULL
;
writeq
(
val64
,
&
bar0
->
gpio_control
);
val64
=
0x0411040400000000ULL
;
writeq
(
val64
,
(
u64
*
)
((
u8
*
)
bar0
+
0x2700
)
);
writeq
(
val64
,
(
void
__iomem
*
)
bar0
+
0x2700
);
val64
=
readq
(
&
bar0
->
gpio_control
);
}
...
...
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