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
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 @@
...
@@ -59,9 +59,9 @@
struct
bmac_data
{
struct
bmac_data
{
/* volatile struct bmac *bmac; */
/* volatile struct bmac *bmac; */
struct
sk_buff_head
*
queue
;
struct
sk_buff_head
*
queue
;
volatile
struct
dbdma_regs
*
tx_dma
;
volatile
struct
dbdma_regs
__iomem
*
tx_dma
;
int
tx_dma_intr
;
int
tx_dma_intr
;
volatile
struct
dbdma_regs
*
rx_dma
;
volatile
struct
dbdma_regs
__iomem
*
rx_dma
;
int
rx_dma_intr
;
int
rx_dma_intr
;
volatile
struct
dbdma_cmd
*
tx_cmds
;
/* xmit dma command list */
volatile
struct
dbdma_cmd
*
tx_cmds
;
/* xmit dma command list */
volatile
struct
dbdma_cmd
*
rx_cmds
;
/* recv 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);
...
@@ -165,35 +165,35 @@ static void bmac_start(struct net_device *dev);
#define DBDMA_CLEAR(x) ( (x) << 16)
#define DBDMA_CLEAR(x) ( (x) << 16)
static
inline
void
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"
);
__asm__
volatile
(
"stwbrx %0,0,%1"
:
:
"r"
(
x
),
"r"
(
a
)
:
"memory"
);
return
;
return
;
}
}
static
inline
unsigned
long
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
));
__asm__
volatile
(
"lwbrx %0,0,%1"
:
"=r"
(
swap
)
:
"r"
(
a
));
return
swap
;
return
swap
;
}
}
static
void
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
));
DBDMA_SET
(
RUN
|
WAKE
)
|
DBDMA_CLEAR
(
PAUSE
|
DEAD
));
eieio
();
eieio
();
}
}
static
void
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
));
DBDMA_CLEAR
(
ACTIVE
|
DEAD
|
WAKE
|
FLUSH
|
PAUSE
|
RUN
));
eieio
();
eieio
();
while
(
dbdma_ld32
(
(
volatile
unsigned
long
*
)
&
dmap
->
status
)
&
RUN
)
while
(
dbdma_ld32
(
&
dmap
->
status
)
&
RUN
)
eieio
();
eieio
();
}
}
...
@@ -213,22 +213,22 @@ dbdma_setcmd(volatile struct dbdma_cmd *cp,
...
@@ -213,22 +213,22 @@ dbdma_setcmd(volatile struct dbdma_cmd *cp,
static
inline
static
inline
void
bmwrite
(
struct
net_device
*
dev
,
unsigned
long
reg_offset
,
unsigned
data
)
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
static
inline
volatile
unsigned
short
bmread
(
struct
net_device
*
dev
,
unsigned
long
reg_offset
)
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
static
void
bmac_enable_and_reset_chip
(
struct
net_device
*
dev
)
bmac_enable_and_reset_chip
(
struct
net_device
*
dev
)
{
{
struct
bmac_data
*
bp
=
netdev_priv
(
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
;
volatile
struct
dbdma_regs
*
td
=
bp
->
tx_dma
;
volatile
struct
dbdma_regs
__iomem
*
td
=
bp
->
tx_dma
;
if
(
rd
)
if
(
rd
)
dbdma_reset
(
rd
);
dbdma_reset
(
rd
);
...
@@ -406,7 +406,7 @@ static void
...
@@ -406,7 +406,7 @@ static void
bmac_start_chip
(
struct
net_device
*
dev
)
bmac_start_chip
(
struct
net_device
*
dev
)
{
{
struct
bmac_data
*
bp
=
netdev_priv
(
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
;
unsigned
short
oldConfig
;
/* enable rx dma channel */
/* enable rx dma channel */
...
@@ -476,8 +476,8 @@ static int bmac_suspend(struct macio_dev *mdev, u32 state)
...
@@ -476,8 +476,8 @@ static int bmac_suspend(struct macio_dev *mdev, u32 state)
bp
->
sleeping
=
1
;
bp
->
sleeping
=
1
;
spin_unlock_irqrestore
(
&
bp
->
lock
,
flags
);
spin_unlock_irqrestore
(
&
bp
->
lock
,
flags
);
if
(
bp
->
opened
)
{
if
(
bp
->
opened
)
{
volatile
struct
dbdma_regs
*
rd
=
bp
->
rx_dma
;
volatile
struct
dbdma_regs
__iomem
*
rd
=
bp
->
rx_dma
;
volatile
struct
dbdma_regs
*
td
=
bp
->
tx_dma
;
volatile
struct
dbdma_regs
__iomem
*
td
=
bp
->
tx_dma
;
config
=
bmread
(
dev
,
RXCFG
);
config
=
bmread
(
dev
,
RXCFG
);
bmwrite
(
dev
,
RXCFG
,
(
config
&
~
RxMACEnable
));
bmwrite
(
dev
,
RXCFG
,
(
config
&
~
RxMACEnable
));
...
@@ -602,7 +602,7 @@ bitrev(unsigned char b)
...
@@ -602,7 +602,7 @@ bitrev(unsigned char b)
static
void
static
void
bmac_init_tx_ring
(
struct
bmac_data
*
bp
)
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
));
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)
...
@@ -623,7 +623,7 @@ bmac_init_tx_ring(struct bmac_data *bp)
static
int
static
int
bmac_init_rx_ring
(
struct
bmac_data
*
bp
)
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
;
int
i
;
struct
sk_buff
*
skb
;
struct
sk_buff
*
skb
;
...
@@ -657,7 +657,7 @@ bmac_init_rx_ring(struct bmac_data *bp)
...
@@ -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
)
static
int
bmac_transmit_packet
(
struct
sk_buff
*
skb
,
struct
net_device
*
dev
)
{
{
struct
bmac_data
*
bp
=
netdev_priv
(
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
;
int
i
;
/* see if there's a free slot in the tx ring */
/* 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)
...
@@ -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
net_device
*
dev
=
(
struct
net_device
*
)
dev_id
;
struct
bmac_data
*
bp
=
netdev_priv
(
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
;
volatile
struct
dbdma_cmd
*
cp
;
volatile
struct
dbdma_cmd
*
cp
;
int
i
,
nb
,
stat
;
int
i
,
nb
,
stat
;
struct
sk_buff
*
skb
;
struct
sk_buff
*
skb
;
...
@@ -1331,13 +1331,11 @@ static int __devinit bmac_probe(struct macio_dev *mdev, const struct of_match *m
...
@@ -1331,13 +1331,11 @@ static int __devinit bmac_probe(struct macio_dev *mdev, const struct of_match *m
goto
err_out_iounmap
;
goto
err_out_iounmap
;
bp
->
is_bmac_plus
=
is_bmac_plus
;
bp
->
is_bmac_plus
=
is_bmac_plus
;
bp
->
tx_dma
=
(
volatile
struct
dbdma_regs
*
)
bp
->
tx_dma
=
ioremap
(
macio_resource_start
(
mdev
,
1
),
macio_resource_len
(
mdev
,
1
));
ioremap
(
macio_resource_start
(
mdev
,
1
),
macio_resource_len
(
mdev
,
1
));
if
(
!
bp
->
tx_dma
)
if
(
!
bp
->
tx_dma
)
goto
err_out_iounmap
;
goto
err_out_iounmap
;
bp
->
tx_dma_intr
=
macio_irq
(
mdev
,
1
);
bp
->
tx_dma_intr
=
macio_irq
(
mdev
,
1
);
bp
->
rx_dma
=
(
volatile
struct
dbdma_regs
*
)
bp
->
rx_dma
=
ioremap
(
macio_resource_start
(
mdev
,
2
),
macio_resource_len
(
mdev
,
2
));
ioremap
(
macio_resource_start
(
mdev
,
2
),
macio_resource_len
(
mdev
,
2
));
if
(
!
bp
->
rx_dma
)
if
(
!
bp
->
rx_dma
)
goto
err_out_iounmap_tx
;
goto
err_out_iounmap_tx
;
bp
->
rx_dma_intr
=
macio_irq
(
mdev
,
2
);
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
...
@@ -1392,11 +1390,11 @@ static int __devinit bmac_probe(struct macio_dev *mdev, const struct of_match *m
err_out_irq0:
err_out_irq0:
free_irq
(
dev
->
irq
,
dev
);
free_irq
(
dev
->
irq
,
dev
);
err_out_iounmap_rx:
err_out_iounmap_rx:
iounmap
(
(
void
*
)
bp
->
rx_dma
);
iounmap
(
bp
->
rx_dma
);
err_out_iounmap_tx:
err_out_iounmap_tx:
iounmap
(
(
void
*
)
bp
->
tx_dma
);
iounmap
(
bp
->
tx_dma
);
err_out_iounmap:
err_out_iounmap:
iounmap
((
void
*
)
dev
->
base_addr
);
iounmap
((
void
__iomem
*
)
dev
->
base_addr
);
out_release:
out_release:
macio_release_resources
(
mdev
);
macio_release_resources
(
mdev
);
out_free:
out_free:
...
@@ -1421,8 +1419,8 @@ static int bmac_open(struct net_device *dev)
...
@@ -1421,8 +1419,8 @@ static int bmac_open(struct net_device *dev)
static
int
bmac_close
(
struct
net_device
*
dev
)
static
int
bmac_close
(
struct
net_device
*
dev
)
{
{
struct
bmac_data
*
bp
=
netdev_priv
(
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
;
volatile
struct
dbdma_regs
*
td
=
bp
->
tx_dma
;
volatile
struct
dbdma_regs
__iomem
*
td
=
bp
->
tx_dma
;
unsigned
short
config
;
unsigned
short
config
;
int
i
;
int
i
;
...
@@ -1505,8 +1503,8 @@ static void bmac_tx_timeout(unsigned long data)
...
@@ -1505,8 +1503,8 @@ static void bmac_tx_timeout(unsigned long data)
{
{
struct
net_device
*
dev
=
(
struct
net_device
*
)
data
;
struct
net_device
*
dev
=
(
struct
net_device
*
)
data
;
struct
bmac_data
*
bp
=
netdev_priv
(
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
;
volatile
struct
dbdma_regs
*
rd
=
bp
->
rx_dma
;
volatile
struct
dbdma_regs
__iomem
*
rd
=
bp
->
rx_dma
;
volatile
struct
dbdma_cmd
*
cp
;
volatile
struct
dbdma_cmd
*
cp
;
unsigned
long
flags
;
unsigned
long
flags
;
unsigned
short
config
,
oldConfig
;
unsigned
short
config
,
oldConfig
;
...
@@ -1638,9 +1636,9 @@ static int __devexit bmac_remove(struct macio_dev *mdev)
...
@@ -1638,9 +1636,9 @@ static int __devexit bmac_remove(struct macio_dev *mdev)
free_irq
(
bp
->
tx_dma_intr
,
dev
);
free_irq
(
bp
->
tx_dma_intr
,
dev
);
free_irq
(
bp
->
rx_dma_intr
,
dev
);
free_irq
(
bp
->
rx_dma_intr
,
dev
);
iounmap
((
void
*
)
dev
->
base_addr
);
iounmap
((
void
__iomem
*
)
dev
->
base_addr
);
iounmap
(
(
void
*
)
bp
->
tx_dma
);
iounmap
(
bp
->
tx_dma
);
iounmap
(
(
void
*
)
bp
->
rx_dma
);
iounmap
(
bp
->
rx_dma
);
macio_release_resources
(
mdev
);
macio_release_resources
(
mdev
);
...
...
drivers/net/hamachi.c
View file @
661e5f8d
...
@@ -512,6 +512,7 @@ struct hamachi_private {
...
@@ -512,6 +512,7 @@ struct hamachi_private {
u32
rx_int_var
,
tx_int_var
;
/* interrupt control variables */
u32
rx_int_var
,
tx_int_var
;
/* interrupt control variables */
u32
option
;
/* Hold on to a copy of the options */
u32
option
;
/* Hold on to a copy of the options */
struct
pci_dev
*
pci_dev
;
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>"
);
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
...
@@ -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
(
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)"
);
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
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
void
mdio_write
(
struct
net_device
*
dev
,
int
phy_id
,
int
location
,
int
value
);
static
int
hamachi_open
(
struct
net_device
*
dev
);
static
int
hamachi_open
(
struct
net_device
*
dev
);
...
@@ -575,7 +576,8 @@ static int __devinit hamachi_init_one (struct pci_dev *pdev,
...
@@ -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
option
,
i
,
rx_int_var
,
tx_int_var
,
boguscnt
;
int
chip_id
=
ent
->
driver_data
;
int
chip_id
=
ent
->
driver_data
;
int
irq
;
int
irq
;
long
ioaddr
;
void
__iomem
*
ioaddr
;
unsigned
long
base
;
static
int
card_idx
;
static
int
card_idx
;
struct
net_device
*
dev
;
struct
net_device
*
dev
;
void
*
ring_space
;
void
*
ring_space
;
...
@@ -594,9 +596,9 @@ static int __devinit hamachi_init_one (struct pci_dev *pdev,
...
@@ -594,9 +596,9 @@ static int __devinit hamachi_init_one (struct pci_dev *pdev,
goto
err_out
;
goto
err_out
;
}
}
ioaddr
=
pci_resource_start
(
pdev
,
0
);
base
=
pci_resource_start
(
pdev
,
0
);
#ifdef __alpha__
/* Really "64 bit addrs" */
#ifdef __alpha__
/* Really "64 bit addrs" */
ioaddr
|=
(
pci_resource_start
(
pdev
,
1
)
<<
32
);
base
|=
(
pci_resource_start
(
pdev
,
1
)
<<
32
);
#endif
#endif
pci_set_master
(
pdev
);
pci_set_master
(
pdev
);
...
@@ -605,7 +607,7 @@ static int __devinit hamachi_init_one (struct pci_dev *pdev,
...
@@ -605,7 +607,7 @@ static int __devinit hamachi_init_one (struct pci_dev *pdev,
if
(
i
)
return
i
;
if
(
i
)
return
i
;
irq
=
pdev
->
irq
;
irq
=
pdev
->
irq
;
ioaddr
=
(
long
)
ioremap
(
ioaddr
,
0x400
);
ioaddr
=
ioremap
(
base
,
0x400
);
if
(
!
ioaddr
)
if
(
!
ioaddr
)
goto
err_out_release
;
goto
err_out_release
;
...
@@ -678,7 +680,8 @@ static int __devinit hamachi_init_one (struct pci_dev *pdev,
...
@@ -678,7 +680,8 @@ static int __devinit hamachi_init_one (struct pci_dev *pdev,
i
=
readb
(
ioaddr
+
PCIClkMeas
);
i
=
readb
(
ioaddr
+
PCIClkMeas
);
}
}
dev
->
base_addr
=
ioaddr
;
hmp
->
base
=
ioaddr
;
dev
->
base_addr
=
(
unsigned
long
)
ioaddr
;
dev
->
irq
=
irq
;
dev
->
irq
=
irq
;
pci_set_drvdata
(
pdev
,
dev
);
pci_set_drvdata
(
pdev
,
dev
);
...
@@ -741,7 +744,7 @@ static int __devinit hamachi_init_one (struct pci_dev *pdev,
...
@@ -741,7 +744,7 @@ static int __devinit hamachi_init_one (struct pci_dev *pdev,
goto
err_out_unmap_rx
;
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
),
dev
->
name
,
chip_tbl
[
chip_id
].
name
,
readl
(
ioaddr
+
ChipRev
),
ioaddr
);
ioaddr
);
for
(
i
=
0
;
i
<
5
;
i
++
)
for
(
i
=
0
;
i
<
5
;
i
++
)
...
@@ -790,14 +793,14 @@ static int __devinit hamachi_init_one (struct pci_dev *pdev,
...
@@ -790,14 +793,14 @@ static int __devinit hamachi_init_one (struct pci_dev *pdev,
err_out_cleardev:
err_out_cleardev:
free_netdev
(
dev
);
free_netdev
(
dev
);
err_out_iounmap:
err_out_iounmap:
iounmap
(
(
char
*
)
ioaddr
);
iounmap
(
ioaddr
);
err_out_release:
err_out_release:
pci_release_regions
(
pdev
);
pci_release_regions
(
pdev
);
err_out:
err_out:
return
ret
;
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
;
int
bogus_cnt
=
1000
;
...
@@ -819,7 +822,8 @@ static int __devinit read_eeprom(long ioaddr, int location)
...
@@ -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
)
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
;
int
i
;
/* We should check busy first - per docs -KDU */
/* 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)
...
@@ -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
)
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
;
int
i
;
/* We should check busy first - per docs -KDU */
/* 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
...
@@ -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
)
static
int
hamachi_open
(
struct
net_device
*
dev
)
{
{
struct
hamachi_private
*
hmp
=
netdev_priv
(
dev
);
struct
hamachi_private
*
hmp
=
netdev_priv
(
dev
);
long
ioaddr
=
dev
->
base_addr
;
void
__iomem
*
ioaddr
=
hmp
->
base
;
int
i
;
int
i
;
u32
rx_int_var
,
tx_int_var
;
u32
rx_int_var
,
tx_int_var
;
u16
fifo_info
;
u16
fifo_info
;
...
@@ -987,7 +992,7 @@ static int hamachi_open(struct net_device *dev)
...
@@ -987,7 +992,7 @@ static int hamachi_open(struct net_device *dev)
writew
(
0x001D
,
ioaddr
+
RxDMACtrl
);
writew
(
0x001D
,
ioaddr
+
RxDMACtrl
);
writew
(
0x001D
,
ioaddr
+
TxDMACtrl
);
writew
(
0x001D
,
ioaddr
+
TxDMACtrl
);
#endif
#endif
writew
(
0x0001
,
dev
->
base_
addr
+
RxCmd
);
writew
(
0x0001
,
io
addr
+
RxCmd
);
if
(
hamachi_debug
>
2
)
{
if
(
hamachi_debug
>
2
)
{
printk
(
KERN_DEBUG
"%s: Done hamachi_open(), status: Rx %x Tx %x.
\n
"
,
printk
(
KERN_DEBUG
"%s: Done hamachi_open(), status: Rx %x Tx %x.
\n
"
,
...
@@ -1038,7 +1043,7 @@ static void hamachi_timer(unsigned long data)
...
@@ -1038,7 +1043,7 @@ static void hamachi_timer(unsigned long data)
{
{
struct
net_device
*
dev
=
(
struct
net_device
*
)
data
;
struct
net_device
*
dev
=
(
struct
net_device
*
)
data
;
struct
hamachi_private
*
hmp
=
netdev_priv
(
dev
);
struct
hamachi_private
*
hmp
=
netdev_priv
(
dev
);
long
ioaddr
=
dev
->
base_addr
;
void
__iomem
*
ioaddr
=
hmp
->
base
;
int
next_tick
=
10
*
HZ
;
int
next_tick
=
10
*
HZ
;
if
(
hamachi_debug
>
2
)
{
if
(
hamachi_debug
>
2
)
{
...
@@ -1063,7 +1068,7 @@ static void hamachi_tx_timeout(struct net_device *dev)
...
@@ -1063,7 +1068,7 @@ static void hamachi_tx_timeout(struct net_device *dev)
{
{
int
i
;
int
i
;
struct
hamachi_private
*
hmp
=
netdev_priv
(
dev
);
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,"
printk
(
KERN_WARNING
"%s: Hamachi transmit timed out, status %8.8x,"
" resetting...
\n
"
,
dev
->
name
,
(
int
)
readw
(
ioaddr
+
TxStatus
));
" resetting...
\n
"
,
dev
->
name
,
(
int
)
readw
(
ioaddr
+
TxStatus
));
...
@@ -1115,7 +1120,7 @@ static void hamachi_tx_timeout(struct net_device *dev)
...
@@ -1115,7 +1120,7 @@ static void hamachi_tx_timeout(struct net_device *dev)
}
}
udelay
(
60
);
/* Sleep 60 us just for safety sake */
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 */
writeb
(
0x01
,
ioaddr
+
ChipReset
);
/* Reinit the hardware */
...
@@ -1157,9 +1162,9 @@ static void hamachi_tx_timeout(struct net_device *dev)
...
@@ -1157,9 +1162,9 @@ static void hamachi_tx_timeout(struct net_device *dev)
hmp
->
stats
.
tx_errors
++
;
hmp
->
stats
.
tx_errors
++
;
/* Restart the chip's Tx/Rx processes . */
/* Restart the chip's Tx/Rx processes . */
writew
(
0x0002
,
dev
->
base_
addr
+
TxCmd
);
/* STOP Tx */
writew
(
0x0002
,
io
addr
+
TxCmd
);
/* STOP Tx */
writew
(
0x0001
,
dev
->
base_
addr
+
TxCmd
);
/* START Tx */
writew
(
0x0001
,
io
addr
+
TxCmd
);
/* START Tx */
writew
(
0x0001
,
dev
->
base_
addr
+
RxCmd
);
/* START Rx */
writew
(
0x0001
,
io
addr
+
RxCmd
);
/* START Rx */
netif_wake_queue
(
dev
);
netif_wake_queue
(
dev
);
}
}
...
@@ -1275,9 +1280,9 @@ static int hamachi_start_xmit(struct sk_buff *skb, struct net_device *dev)
...
@@ -1275,9 +1280,9 @@ static int hamachi_start_xmit(struct sk_buff *skb, struct net_device *dev)
/* Wake the potentially-idle transmit channel. */
/* Wake the potentially-idle transmit channel. */
/* If we don't need to read status, DON'T -KDU */
/* 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
))
if
(
!
(
status
&
0x0001
)
||
(
status
&
0x0002
))
writew
(
0x0001
,
dev
->
base_addr
+
TxCmd
);
writew
(
0x0001
,
hmp
->
base
+
TxCmd
);
return
1
;
return
1
;
}
}
...
@@ -1343,9 +1348,9 @@ static int hamachi_start_xmit(struct sk_buff *skb, struct net_device *dev)
...
@@ -1343,9 +1348,9 @@ static int hamachi_start_xmit(struct sk_buff *skb, struct net_device *dev)
/* Wake the potentially-idle transmit channel. */
/* Wake the potentially-idle transmit channel. */
/* If we don't need to read status, DON'T -KDU */
/* 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
))
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. */
/* Immediately before returning, let's clear as many entries as we can. */
hamachi_tx
(
dev
);
hamachi_tx
(
dev
);
...
@@ -1376,8 +1381,9 @@ static int hamachi_start_xmit(struct sk_buff *skb, struct net_device *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
)
static
irqreturn_t
hamachi_interrupt
(
int
irq
,
void
*
dev_instance
,
struct
pt_regs
*
rgs
)
{
{
struct
net_device
*
dev
=
dev_instance
;
struct
net_device
*
dev
=
dev_instance
;
struct
hamachi_private
*
hmp
;
struct
hamachi_private
*
hmp
=
netdev_priv
(
dev
);
long
ioaddr
,
boguscnt
=
max_interrupt_work
;
void
__iomem
*
ioaddr
=
hmp
->
base
;
long
boguscnt
=
max_interrupt_work
;
int
handled
=
0
;
int
handled
=
0
;
#ifndef final_version
/* Can never occur. */
#ifndef final_version
/* Can never occur. */
...
@@ -1387,8 +1393,6 @@ static irqreturn_t hamachi_interrupt(int irq, void *dev_instance, struct pt_regs
...
@@ -1387,8 +1393,6 @@ static irqreturn_t hamachi_interrupt(int irq, void *dev_instance, struct pt_regs
}
}
#endif
#endif
ioaddr
=
dev
->
base_addr
;
hmp
=
netdev_priv
(
dev
);
spin_lock
(
&
hmp
->
lock
);
spin_lock
(
&
hmp
->
lock
);
do
{
do
{
...
@@ -1687,8 +1691,8 @@ static int hamachi_rx(struct net_device *dev)
...
@@ -1687,8 +1691,8 @@ static int hamachi_rx(struct net_device *dev)
/* Restart Rx engine if stopped. */
/* Restart Rx engine if stopped. */
/* If we don't need to check status, don't. -KDU */
/* If we don't need to check status, don't. -KDU */
if
(
readw
(
dev
->
base_addr
+
RxStatus
)
&
0x0002
)
if
(
readw
(
hmp
->
base
+
RxStatus
)
&
0x0002
)
writew
(
0x0001
,
dev
->
base_addr
+
RxCmd
);
writew
(
0x0001
,
hmp
->
base
+
RxCmd
);
return
0
;
return
0
;
}
}
...
@@ -1697,8 +1701,8 @@ static int hamachi_rx(struct net_device *dev)
...
@@ -1697,8 +1701,8 @@ static int hamachi_rx(struct net_device *dev)
than just errors. */
than just errors. */
static
void
hamachi_error
(
struct
net_device
*
dev
,
int
intr_status
)
static
void
hamachi_error
(
struct
net_device
*
dev
,
int
intr_status
)
{
{
long
ioaddr
=
dev
->
base_addr
;
struct
hamachi_private
*
hmp
=
netdev_priv
(
dev
);
struct
hamachi_private
*
hmp
=
netdev_priv
(
dev
);
void
__iomem
*
ioaddr
=
hmp
->
base
;
if
(
intr_status
&
(
LinkChange
|
NegotiationChange
))
{
if
(
intr_status
&
(
LinkChange
|
NegotiationChange
))
{
if
(
hamachi_debug
>
1
)
if
(
hamachi_debug
>
1
)
...
@@ -1731,8 +1735,8 @@ static void hamachi_error(struct net_device *dev, int intr_status)
...
@@ -1731,8 +1735,8 @@ static void hamachi_error(struct net_device *dev, int intr_status)
static
int
hamachi_close
(
struct
net_device
*
dev
)
static
int
hamachi_close
(
struct
net_device
*
dev
)
{
{
long
ioaddr
=
dev
->
base_addr
;
struct
hamachi_private
*
hmp
=
netdev_priv
(
dev
);
struct
hamachi_private
*
hmp
=
netdev_priv
(
dev
);
void
__iomem
*
ioaddr
=
hmp
->
base
;
struct
sk_buff
*
skb
;
struct
sk_buff
*
skb
;
int
i
;
int
i
;
...
@@ -1817,8 +1821,8 @@ static int hamachi_close(struct net_device *dev)
...
@@ -1817,8 +1821,8 @@ static int hamachi_close(struct net_device *dev)
static
struct
net_device_stats
*
hamachi_get_stats
(
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
);
struct
hamachi_private
*
hmp
=
netdev_priv
(
dev
);
void
__iomem
*
ioaddr
=
hmp
->
base
;
/* We should lock this segment of code for SMP eventually, although
/* We should lock this segment of code for SMP eventually, although
the vulnerability window is very small and statistics are
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)
...
@@ -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
)
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. */
if
(
dev
->
flags
&
IFF_PROMISC
)
{
/* Set promiscuous. */
/* Unconditionally log net taps. */
/* Unconditionally log net taps. */
...
@@ -1950,11 +1955,11 @@ static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
...
@@ -1950,11 +1955,11 @@ static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
*/
*/
if
(
!
capable
(
CAP_NET_ADMIN
))
if
(
!
capable
(
CAP_NET_ADMIN
))
return
-
EPERM
;
return
-
EPERM
;
writel
(
d
[
0
],
dev
->
base_addr
+
TxIntrCtrl
);
writel
(
d
[
0
],
np
->
base
+
TxIntrCtrl
);
writel
(
d
[
1
],
dev
->
base_addr
+
RxIntrCtrl
);
writel
(
d
[
1
],
np
->
base
+
RxIntrCtrl
);
printk
(
KERN_NOTICE
"%s: tx %08x, rx %08x intr
\n
"
,
dev
->
name
,
printk
(
KERN_NOTICE
"%s: tx %08x, rx %08x intr
\n
"
,
dev
->
name
,
(
u32
)
readl
(
dev
->
base_addr
+
TxIntrCtrl
),
(
u32
)
readl
(
np
->
base
+
TxIntrCtrl
),
(
u32
)
readl
(
dev
->
base_addr
+
RxIntrCtrl
));
(
u32
)
readl
(
np
->
base
+
RxIntrCtrl
));
rc
=
0
;
rc
=
0
;
}
}
...
@@ -1980,7 +1985,7 @@ static void __devexit hamachi_remove_one (struct pci_dev *pdev)
...
@@ -1980,7 +1985,7 @@ static void __devexit hamachi_remove_one (struct pci_dev *pdev)
pci_free_consistent
(
pdev
,
TX_TOTAL_SIZE
,
hmp
->
tx_ring
,
pci_free_consistent
(
pdev
,
TX_TOTAL_SIZE
,
hmp
->
tx_ring
,
hmp
->
tx_ring_dma
);
hmp
->
tx_ring_dma
);
unregister_netdev
(
dev
);
unregister_netdev
(
dev
);
iounmap
(
(
char
*
)
dev
->
base_addr
);
iounmap
(
hmp
->
base
);
free_netdev
(
dev
);
free_netdev
(
dev
);
pci_release_regions
(
pdev
);
pci_release_regions
(
pdev
);
pci_set_drvdata
(
pdev
,
NULL
);
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)
...
@@ -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
)
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
;
void
__iomem
*
cregs
=
mp
->
cregs
;
sbus_writel
(
1
,
&
shmem
->
send
);
sbus_writel
(
1
,
&
shmem
->
send
);
...
@@ -127,9 +127,9 @@ static inline void bang_the_chip(struct myri_eth *mp)
...
@@ -127,9 +127,9 @@ static inline void bang_the_chip(struct myri_eth *mp)
static
int
myri_do_handshake
(
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
;
void
__iomem
*
cregs
=
mp
->
cregs
;
struct
myri_channel
*
chan
=
&
shmem
->
channel
;
struct
myri_channel
__iomem
*
chan
=
&
shmem
->
channel
;
int
tick
=
0
;
int
tick
=
0
;
DET
((
"myri_do_handshake: "
));
DET
((
"myri_do_handshake: "
));
...
@@ -427,7 +427,7 @@ static void myri_rx(struct myri_eth *mp, struct net_device *dev)
...
@@ -427,7 +427,7 @@ static void myri_rx(struct myri_eth *mp, struct net_device *dev)
u32
csum
=
sbus_readl
(
&
rxdack
->
csum
);
u32
csum
=
sbus_readl
(
&
rxdack
->
csum
);
int
len
=
sbus_readl
(
&
rxdack
->
myri_scatters
[
0
].
len
);
int
len
=
sbus_readl
(
&
rxdack
->
myri_scatters
[
0
].
len
);
int
index
=
sbus_readl
(
&
rxdack
->
ctx
);
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
];
struct
sk_buff
*
skb
=
mp
->
rx_skbs
[
index
];
/* Ack it. */
/* Ack it. */
...
@@ -546,7 +546,7 @@ static irqreturn_t myri_interrupt(int irq, void *dev_id, struct pt_regs *regs)
...
@@ -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
net_device
*
dev
=
(
struct
net_device
*
)
dev_id
;
struct
myri_eth
*
mp
=
(
struct
myri_eth
*
)
dev
->
priv
;
struct
myri_eth
*
mp
=
(
struct
myri_eth
*
)
dev
->
priv
;
void
__iomem
*
lregs
=
mp
->
lregs
;
void
__iomem
*
lregs
=
mp
->
lregs
;
struct
myri_channel
*
chan
=
&
mp
->
shmem
->
channel
;
struct
myri_channel
__iomem
*
chan
=
&
mp
->
shmem
->
channel
;
unsigned
long
flags
;
unsigned
long
flags
;
u32
status
;
u32
status
;
int
handled
=
0
;
int
handled
=
0
;
...
...
drivers/net/s2io.c
View file @
661e5f8d
...
@@ -277,7 +277,7 @@ static int init_shared_mem(struct s2io_nic *nic)
...
@@ -277,7 +277,7 @@ static int init_shared_mem(struct s2io_nic *nic)
int
lst_size
,
lst_per_page
;
int
lst_size
,
lst_per_page
;
struct
net_device
*
dev
=
nic
->
dev
;
struct
net_device
*
dev
=
nic
->
dev
;
#ifdef CONFIG_2BUFF_MODE
#ifdef CONFIG_2BUFF_MODE
u
64
tmp
;
u
nsigned
long
tmp
;
buffAdd_t
*
ba
;
buffAdd_t
*
ba
;
#endif
#endif
...
@@ -448,22 +448,22 @@ static int init_shared_mem(struct s2io_nic *nic)
...
@@ -448,22 +448,22 @@ static int init_shared_mem(struct s2io_nic *nic)
while
(
k
!=
MAX_RXDS_PER_BLOCK
)
{
while
(
k
!=
MAX_RXDS_PER_BLOCK
)
{
ba
=
&
nic
->
ba
[
i
][
j
][
k
];
ba
=
&
nic
->
ba
[
i
][
j
][
k
];
ba
->
ba_0_org
=
(
void
*
)
kmalloc
ba
->
ba_0_org
=
kmalloc
(
BUF0_LEN
+
ALIGN_SIZE
,
GFP_KERNEL
);
(
BUF0_LEN
+
ALIGN_SIZE
,
GFP_KERNEL
);
if
(
!
ba
->
ba_0_org
)
if
(
!
ba
->
ba_0_org
)
return
-
ENOMEM
;
return
-
ENOMEM
;
tmp
=
(
u
64
)
ba
->
ba_0_org
;
tmp
=
(
u
nsigned
long
)
ba
->
ba_0_org
;
tmp
+=
ALIGN_SIZE
;
tmp
+=
ALIGN_SIZE
;
tmp
&=
~
((
u
64
)
ALIGN_SIZE
);
tmp
&=
~
((
u
nsigned
long
)
ALIGN_SIZE
);
ba
->
ba_0
=
(
void
*
)
tmp
;
ba
->
ba_0
=
(
void
*
)
tmp
;
ba
->
ba_1_org
=
(
void
*
)
kmalloc
ba
->
ba_1_org
=
kmalloc
(
BUF1_LEN
+
ALIGN_SIZE
,
GFP_KERNEL
);
(
BUF1_LEN
+
ALIGN_SIZE
,
GFP_KERNEL
);
if
(
!
ba
->
ba_1_org
)
if
(
!
ba
->
ba_1_org
)
return
-
ENOMEM
;
return
-
ENOMEM
;
tmp
=
(
u
64
)
ba
->
ba_1_org
;
tmp
=
(
u
nsigned
long
)
ba
->
ba_1_org
;
tmp
+=
ALIGN_SIZE
;
tmp
+=
ALIGN_SIZE
;
tmp
&=
~
((
u
64
)
ALIGN_SIZE
);
tmp
&=
~
((
u
nsigned
long
)
ALIGN_SIZE
);
ba
->
ba_1
=
(
void
*
)
tmp
;
ba
->
ba_1
=
(
void
*
)
tmp
;
k
++
;
k
++
;
}
}
...
@@ -610,10 +610,10 @@ static void free_shared_mem(struct s2io_nic *nic)
...
@@ -610,10 +610,10 @@ static void free_shared_mem(struct s2io_nic *nic)
static
int
init_nic
(
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
;
struct
net_device
*
dev
=
nic
->
dev
;
register
u64
val64
=
0
;
register
u64
val64
=
0
;
void
*
add
;
void
__iomem
*
add
;
u32
time
;
u32
time
;
int
i
,
j
;
int
i
,
j
;
mac_info_t
*
mac_control
;
mac_info_t
*
mac_control
;
...
@@ -702,7 +702,7 @@ static int init_nic(struct s2io_nic *nic)
...
@@ -702,7 +702,7 @@ static int init_nic(struct s2io_nic *nic)
schedule_timeout
(
HZ
/
2
);
schedule_timeout
(
HZ
/
2
);
/* Enable Receiving broadcasts */
/* Enable Receiving broadcasts */
add
=
(
void
*
)
&
bar0
->
mac_cfg
;
add
=
&
bar0
->
mac_cfg
;
val64
=
readq
(
&
bar0
->
mac_cfg
);
val64
=
readq
(
&
bar0
->
mac_cfg
);
val64
|=
MAC_RMAC_BCAST_ENABLE
;
val64
|=
MAC_RMAC_BCAST_ENABLE
;
writeq
(
RMAC_CFG_KEY
(
0x4C0D
),
&
bar0
->
rmac_cfg_key
);
writeq
(
RMAC_CFG_KEY
(
0x4C0D
),
&
bar0
->
rmac_cfg_key
);
...
@@ -1003,7 +1003,7 @@ static int init_nic(struct s2io_nic *nic)
...
@@ -1003,7 +1003,7 @@ static int init_nic(struct s2io_nic *nic)
writeq
(
0xffbbffbbffbbffbbULL
,
&
bar0
->
mc_pause_thresh_q4q7
);
writeq
(
0xffbbffbbffbbffbbULL
,
&
bar0
->
mc_pause_thresh_q4q7
);
/* Disable RMAC PAD STRIPPING */
/* Disable RMAC PAD STRIPPING */
add
=
(
void
*
)
&
bar0
->
mac_cfg
;
add
=
&
bar0
->
mac_cfg
;
val64
=
readq
(
&
bar0
->
mac_cfg
);
val64
=
readq
(
&
bar0
->
mac_cfg
);
val64
&=
~
(
MAC_CFG_RMAC_STRIP_PAD
);
val64
&=
~
(
MAC_CFG_RMAC_STRIP_PAD
);
writeq
(
RMAC_CFG_KEY
(
0x4C0D
),
&
bar0
->
rmac_cfg_key
);
writeq
(
RMAC_CFG_KEY
(
0x4C0D
),
&
bar0
->
rmac_cfg_key
);
...
@@ -1069,7 +1069,7 @@ static int init_nic(struct s2io_nic *nic)
...
@@ -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
)
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
;
register
u64
val64
=
0
,
temp64
=
0
;
/* Top level interrupt classification */
/* Top level interrupt classification */
...
@@ -1354,7 +1354,7 @@ static int verify_xena_quiescence(u64 val64, int flag)
...
@@ -1354,7 +1354,7 @@ static int verify_xena_quiescence(u64 val64, int flag)
void
fix_mac_address
(
nic_t
*
sp
)
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
;
u64
val64
;
int
i
=
0
;
int
i
=
0
;
...
@@ -1379,7 +1379,7 @@ void fix_mac_address(nic_t * sp)
...
@@ -1379,7 +1379,7 @@ void fix_mac_address(nic_t * sp)
static
int
start_nic
(
struct
s2io_nic
*
nic
)
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
;
struct
net_device
*
dev
=
nic
->
dev
;
register
u64
val64
=
0
;
register
u64
val64
=
0
;
u16
interruptible
,
i
;
u16
interruptible
,
i
;
...
@@ -1474,7 +1474,7 @@ static int start_nic(struct s2io_nic *nic)
...
@@ -1474,7 +1474,7 @@ static int start_nic(struct s2io_nic *nic)
val64
|=
0x0000800000000000ULL
;
val64
|=
0x0000800000000000ULL
;
writeq
(
val64
,
&
bar0
->
gpio_control
);
writeq
(
val64
,
&
bar0
->
gpio_control
);
val64
=
0x0411040400000000ULL
;
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)
...
@@ -1557,7 +1557,7 @@ void free_tx_buffers(struct s2io_nic *nic)
static
void
stop_nic
(
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
;
register
u64
val64
=
0
;
u16
interruptible
,
i
;
u16
interruptible
,
i
;
mac_info_t
*
mac_control
;
mac_info_t
*
mac_control
;
...
@@ -1615,7 +1615,7 @@ int fill_rx_buffers(struct s2io_nic *nic, int ring_no)
...
@@ -1615,7 +1615,7 @@ int fill_rx_buffers(struct s2io_nic *nic, int ring_no)
#ifdef CONFIG_2BUFF_MODE
#ifdef CONFIG_2BUFF_MODE
RxD_t
*
rxdpnext
;
RxD_t
*
rxdpnext
;
int
nextblk
;
int
nextblk
;
u
64
tmp
;
u
nsigned
long
tmp
;
buffAdd_t
*
ba
;
buffAdd_t
*
ba
;
dma_addr_t
rxdpphys
;
dma_addr_t
rxdpphys
;
#endif
#endif
...
@@ -1757,7 +1757,7 @@ int fill_rx_buffers(struct s2io_nic *nic, int ring_no)
...
@@ -1757,7 +1757,7 @@ int fill_rx_buffers(struct s2io_nic *nic, int ring_no)
#else
#else
ba
=
&
nic
->
ba
[
ring_no
][
block_no
][
off
];
ba
=
&
nic
->
ba
[
ring_no
][
block_no
][
off
];
skb_reserve
(
skb
,
BUF0_LEN
);
skb_reserve
(
skb
,
BUF0_LEN
);
tmp
=
(
u
64
)
skb
->
data
;
tmp
=
(
u
nsigned
long
)
skb
->
data
;
tmp
+=
ALIGN_SIZE
;
tmp
+=
ALIGN_SIZE
;
tmp
&=
~
ALIGN_SIZE
;
tmp
&=
~
ALIGN_SIZE
;
skb
->
data
=
(
void
*
)
tmp
;
skb
->
data
=
(
void
*
)
tmp
;
...
@@ -1900,7 +1900,7 @@ static void free_rx_buffers(struct s2io_nic *sp)
...
@@ -1900,7 +1900,7 @@ static void free_rx_buffers(struct s2io_nic *sp)
static
int
s2io_poll
(
struct
net_device
*
dev
,
int
*
budget
)
static
int
s2io_poll
(
struct
net_device
*
dev
,
int
*
budget
)
{
{
nic_t
*
nic
=
dev
->
priv
;
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
;
int
pkts_to_process
=
*
budget
,
pkt_cnt
=
0
;
register
u64
val64
=
0
;
register
u64
val64
=
0
;
rx_curr_get_info_t
get_info
,
put_info
;
rx_curr_get_info_t
get_info
,
put_info
;
...
@@ -2269,7 +2269,7 @@ static void rx_intr_handler(struct s2io_nic *nic)
...
@@ -2269,7 +2269,7 @@ static void rx_intr_handler(struct s2io_nic *nic)
static
void
tx_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
;
struct
net_device
*
dev
=
(
struct
net_device
*
)
nic
->
dev
;
tx_curr_get_info_t
get_info
,
put_info
;
tx_curr_get_info_t
get_info
,
put_info
;
struct
sk_buff
*
skb
;
struct
sk_buff
*
skb
;
...
@@ -2376,7 +2376,7 @@ static void tx_intr_handler(struct s2io_nic *nic)
...
@@ -2376,7 +2376,7 @@ static void tx_intr_handler(struct s2io_nic *nic)
static
void
alarm_intr_handler
(
struct
s2io_nic
*
nic
)
static
void
alarm_intr_handler
(
struct
s2io_nic
*
nic
)
{
{
struct
net_device
*
dev
=
(
struct
net_device
*
)
nic
->
dev
;
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
;
register
u64
val64
=
0
,
err_reg
=
0
;
/* Handling link status change error Intr */
/* Handling link status change error Intr */
...
@@ -2427,7 +2427,7 @@ static void alarm_intr_handler(struct s2io_nic *nic)
...
@@ -2427,7 +2427,7 @@ static void alarm_intr_handler(struct s2io_nic *nic)
int
wait_for_cmd_complete
(
nic_t
*
sp
)
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
;
int
ret
=
FAILURE
,
cnt
=
0
;
u64
val64
;
u64
val64
;
...
@@ -2458,7 +2458,7 @@ int wait_for_cmd_complete(nic_t * sp)
...
@@ -2458,7 +2458,7 @@ int wait_for_cmd_complete(nic_t * sp)
void
s2io_reset
(
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
;
u64
val64
;
u16
subid
;
u16
subid
;
...
@@ -2494,7 +2494,7 @@ void s2io_reset(nic_t * sp)
...
@@ -2494,7 +2494,7 @@ void s2io_reset(nic_t * sp)
val64
|=
0x0000800000000000ULL
;
val64
|=
0x0000800000000000ULL
;
writeq
(
val64
,
&
bar0
->
gpio_control
);
writeq
(
val64
,
&
bar0
->
gpio_control
);
val64
=
0x0411040400000000ULL
;
val64
=
0x0411040400000000ULL
;
writeq
(
val64
,
(
void
*
)
((
u8
*
)
bar0
+
0x2700
)
);
writeq
(
val64
,
(
void
__iomem
*
)
bar0
+
0x2700
);
}
}
sp
->
device_enabled_once
=
FALSE
;
sp
->
device_enabled_once
=
FALSE
;
...
@@ -2513,7 +2513,7 @@ void s2io_reset(nic_t * sp)
...
@@ -2513,7 +2513,7 @@ void s2io_reset(nic_t * sp)
int
s2io_set_swapper
(
nic_t
*
sp
)
int
s2io_set_swapper
(
nic_t
*
sp
)
{
{
struct
net_device
*
dev
=
sp
->
dev
;
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
;
u64
val64
;
/*
/*
...
@@ -2689,14 +2689,14 @@ int s2io_xmit(struct sk_buff *skb, struct net_device *dev)
...
@@ -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
;
u16
frg_cnt
,
frg_len
,
i
,
queue
,
queue_len
,
put_off
,
get_off
;
register
u64
val64
;
register
u64
val64
;
TxD_t
*
txdp
;
TxD_t
*
txdp
;
TxFIFO_element_t
*
tx_fifo
;
TxFIFO_element_t
__iomem
*
tx_fifo
;
unsigned
long
flags
;
unsigned
long
flags
;
#ifdef NETIF_F_TSO
#ifdef NETIF_F_TSO
int
mss
;
int
mss
;
#endif
#endif
mac_info_t
*
mac_control
;
mac_info_t
*
mac_control
;
struct
config_param
*
config
;
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
;
mac_control
=
&
sp
->
mac_control
;
config
=
&
sp
->
config
;
config
=
&
sp
->
config
;
...
@@ -2813,7 +2813,7 @@ static irqreturn_t s2io_isr(int irq, void *dev_id, struct pt_regs *regs)
...
@@ -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
;
struct
net_device
*
dev
=
(
struct
net_device
*
)
dev_id
;
nic_t
*
sp
=
dev
->
priv
;
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
#ifndef CONFIG_S2IO_NAPI
int
i
,
ret
;
int
i
,
ret
;
#endif
#endif
...
@@ -2939,11 +2939,11 @@ static void s2io_set_multicast(struct net_device *dev)
...
@@ -2939,11 +2939,11 @@ static void s2io_set_multicast(struct net_device *dev)
int
i
,
j
,
prev_cnt
;
int
i
,
j
,
prev_cnt
;
struct
dev_mc_list
*
mclist
;
struct
dev_mc_list
*
mclist
;
nic_t
*
sp
=
dev
->
priv
;
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
=
u64
val64
=
0
,
multi_mac
=
0x010203040506ULL
,
mask
=
0xfeffffffffffULL
;
0xfeffffffffffULL
;
u64
dis_addr
=
0xffffffffffffULL
,
mac_addr
=
0
;
u64
dis_addr
=
0xffffffffffffULL
,
mac_addr
=
0
;
void
*
add
;
void
__iomem
*
add
;
if
((
dev
->
flags
&
IFF_ALLMULTI
)
&&
(
!
sp
->
m_cast_flg
))
{
if
((
dev
->
flags
&
IFF_ALLMULTI
)
&&
(
!
sp
->
m_cast_flg
))
{
/* Enable all Multicast addresses */
/* Enable all Multicast addresses */
...
@@ -2977,7 +2977,7 @@ static void s2io_set_multicast(struct net_device *dev)
...
@@ -2977,7 +2977,7 @@ static void s2io_set_multicast(struct net_device *dev)
if
((
dev
->
flags
&
IFF_PROMISC
)
&&
(
!
sp
->
promisc_flg
))
{
if
((
dev
->
flags
&
IFF_PROMISC
)
&&
(
!
sp
->
promisc_flg
))
{
/* Put the NIC into promiscuous mode */
/* Put the NIC into promiscuous mode */
add
=
(
void
*
)
&
bar0
->
mac_cfg
;
add
=
&
bar0
->
mac_cfg
;
val64
=
readq
(
&
bar0
->
mac_cfg
);
val64
=
readq
(
&
bar0
->
mac_cfg
);
val64
|=
MAC_CFG_RMAC_PROM_ENABLE
;
val64
|=
MAC_CFG_RMAC_PROM_ENABLE
;
...
@@ -2992,7 +2992,7 @@ static void s2io_set_multicast(struct net_device *dev)
...
@@ -2992,7 +2992,7 @@ static void s2io_set_multicast(struct net_device *dev)
dev
->
name
);
dev
->
name
);
}
else
if
(
!
(
dev
->
flags
&
IFF_PROMISC
)
&&
(
sp
->
promisc_flg
))
{
}
else
if
(
!
(
dev
->
flags
&
IFF_PROMISC
)
&&
(
sp
->
promisc_flg
))
{
/* Remove the NIC from promiscuous mode */
/* Remove the NIC from promiscuous mode */
add
=
(
void
*
)
&
bar0
->
mac_cfg
;
add
=
&
bar0
->
mac_cfg
;
val64
=
readq
(
&
bar0
->
mac_cfg
);
val64
=
readq
(
&
bar0
->
mac_cfg
);
val64
&=
~
MAC_CFG_RMAC_PROM_ENABLE
;
val64
&=
~
MAC_CFG_RMAC_PROM_ENABLE
;
...
@@ -3082,7 +3082,7 @@ static void s2io_set_multicast(struct net_device *dev)
...
@@ -3082,7 +3082,7 @@ static void s2io_set_multicast(struct net_device *dev)
int
s2io_set_mac_addr
(
struct
net_device
*
dev
,
u8
*
addr
)
int
s2io_set_mac_addr
(
struct
net_device
*
dev
,
u8
*
addr
)
{
{
nic_t
*
sp
=
dev
->
priv
;
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
;
register
u64
val64
,
mac_addr
=
0
;
int
i
;
int
i
;
...
@@ -3225,7 +3225,7 @@ static void s2io_ethtool_gregs(struct net_device *dev,
...
@@ -3225,7 +3225,7 @@ static void s2io_ethtool_gregs(struct net_device *dev,
regs
->
version
=
sp
->
pdev
->
subsystem_device
;
regs
->
version
=
sp
->
pdev
->
subsystem_device
;
for
(
i
=
0
;
i
<
regs
->
len
;
i
+=
8
)
{
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
);
memcpy
((
reg_space
+
i
),
&
reg
,
8
);
}
}
}
}
...
@@ -3242,7 +3242,7 @@ static void s2io_ethtool_gregs(struct net_device *dev,
...
@@ -3242,7 +3242,7 @@ static void s2io_ethtool_gregs(struct net_device *dev,
static
void
s2io_phy_id
(
unsigned
long
data
)
static
void
s2io_phy_id
(
unsigned
long
data
)
{
{
nic_t
*
sp
=
(
nic_t
*
)
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
;
u64
val64
=
0
;
u16
subid
;
u16
subid
;
...
@@ -3279,7 +3279,7 @@ static int s2io_ethtool_idnic(struct net_device *dev, u32 data)
...
@@ -3279,7 +3279,7 @@ static int s2io_ethtool_idnic(struct net_device *dev, u32 data)
{
{
u64
val64
=
0
,
last_gpio_ctrl_val
;
u64
val64
=
0
,
last_gpio_ctrl_val
;
nic_t
*
sp
=
dev
->
priv
;
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
;
u16
subid
;
subid
=
sp
->
pdev
->
subsystem_device
;
subid
=
sp
->
pdev
->
subsystem_device
;
...
@@ -3327,7 +3327,7 @@ static void s2io_ethtool_getpause_data(struct net_device *dev,
...
@@ -3327,7 +3327,7 @@ static void s2io_ethtool_getpause_data(struct net_device *dev,
{
{
u64
val64
;
u64
val64
;
nic_t
*
sp
=
dev
->
priv
;
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
);
val64
=
readq
(
&
bar0
->
rmac_pause_cfg
);
if
(
val64
&
RMAC_PAUSE_GEN_ENABLE
)
if
(
val64
&
RMAC_PAUSE_GEN_ENABLE
)
...
@@ -3354,7 +3354,7 @@ int s2io_ethtool_setpause_data(struct net_device *dev,
...
@@ -3354,7 +3354,7 @@ int s2io_ethtool_setpause_data(struct net_device *dev,
{
{
u64
val64
;
u64
val64
;
nic_t
*
sp
=
dev
->
priv
;
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
);
val64
=
readq
(
&
bar0
->
rmac_pause_cfg
);
if
(
ep
->
tx_pause
)
if
(
ep
->
tx_pause
)
...
@@ -3391,7 +3391,7 @@ static int read_eeprom(nic_t * sp, int off, u32 * data)
...
@@ -3391,7 +3391,7 @@ static int read_eeprom(nic_t * sp, int off, u32 * data)
int
ret
=
-
1
;
int
ret
=
-
1
;
u32
exit_cnt
=
0
;
u32
exit_cnt
=
0
;
u64
val64
;
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
)
|
val64
=
I2C_CONTROL_DEV_ID
(
S2IO_DEV_ID
)
|
I2C_CONTROL_ADDR
(
off
)
|
I2C_CONTROL_BYTE_CNT
(
0x3
)
|
I2C_CONTROL_READ
|
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)
...
@@ -3432,7 +3432,7 @@ static int write_eeprom(nic_t * sp, int off, u32 data, int cnt)
{
{
int
exit_cnt
=
0
,
ret
=
-
1
;
int
exit_cnt
=
0
,
ret
=
-
1
;
u64
val64
;
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
)
|
val64
=
I2C_CONTROL_DEV_ID
(
S2IO_DEV_ID
)
|
I2C_CONTROL_ADDR
(
off
)
|
I2C_CONTROL_BYTE_CNT
(
cnt
)
|
I2C_CONTROL_SET_DATA
(
data
)
|
I2C_CONTROL_BYTE_CNT
(
cnt
)
|
I2C_CONTROL_SET_DATA
(
data
)
|
...
@@ -3555,7 +3555,7 @@ static int s2io_ethtool_seeprom(struct net_device *dev,
...
@@ -3555,7 +3555,7 @@ static int s2io_ethtool_seeprom(struct net_device *dev,
static
int
s2io_register_test
(
nic_t
*
sp
,
uint64_t
*
data
)
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
;
u64
val64
=
0
;
int
fail
=
0
;
int
fail
=
0
;
...
@@ -3726,7 +3726,7 @@ static int s2io_bist_test(nic_t * sp, uint64_t * data)
...
@@ -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
)
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
;
u64
val64
;
val64
=
readq
(
&
bar0
->
adapter_status
);
val64
=
readq
(
&
bar0
->
adapter_status
);
...
@@ -3751,7 +3751,7 @@ static int s2io_link_test(nic_t * sp, uint64_t * data)
...
@@ -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
)
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
;
u64
val64
;
int
cnt
,
iteration
=
0
,
test_pass
=
0
;
int
cnt
,
iteration
=
0
,
test_pass
=
0
;
...
@@ -4092,7 +4092,7 @@ int s2io_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
...
@@ -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
)
int
s2io_change_mtu
(
struct
net_device
*
dev
,
int
new_mtu
)
{
{
nic_t
*
sp
=
dev
->
priv
;
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
;
register
u64
val64
;
if
(
netif_running
(
dev
))
{
if
(
netif_running
(
dev
))
{
...
@@ -4169,7 +4169,7 @@ static void s2io_set_link(unsigned long data)
...
@@ -4169,7 +4169,7 @@ static void s2io_set_link(unsigned long data)
{
{
nic_t
*
nic
=
(
nic_t
*
)
data
;
nic_t
*
nic
=
(
nic_t
*
)
data
;
struct
net_device
*
dev
=
nic
->
dev
;
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
;
register
u64
val64
;
u16
subid
;
u16
subid
;
...
@@ -4233,7 +4233,7 @@ static void s2io_set_link(unsigned long data)
...
@@ -4233,7 +4233,7 @@ static void s2io_set_link(unsigned long data)
static
void
s2io_card_down
(
nic_t
*
sp
)
static
void
s2io_card_down
(
nic_t
*
sp
)
{
{
int
cnt
=
0
;
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
;
unsigned
long
flags
;
register
u64
val64
=
0
;
register
u64
val64
=
0
;
...
@@ -4611,7 +4611,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
...
@@ -4611,7 +4611,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
int
dma_flag
=
FALSE
;
int
dma_flag
=
FALSE
;
u32
mac_up
,
mac_down
;
u32
mac_up
,
mac_down
;
u64
val64
=
0
,
tmp64
=
0
;
u64
val64
=
0
,
tmp64
=
0
;
XENA_dev_config_t
*
bar0
=
NULL
;
XENA_dev_config_t
__iomem
*
bar0
=
NULL
;
u16
subid
;
u16
subid
;
mac_info_t
*
mac_control
;
mac_info_t
*
mac_control
;
struct
config_param
*
config
;
struct
config_param
*
config
;
...
@@ -4741,7 +4741,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
...
@@ -4741,7 +4741,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
goto
mem_alloc_failed
;
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
));
pci_resource_len
(
pdev
,
0
));
if
(
!
sp
->
bar0
)
{
if
(
!
sp
->
bar0
)
{
DBG_PRINT
(
ERR_DBG
,
"%s: S2IO: cannot remap io mem1
\n
"
,
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)
...
@@ -4750,7 +4750,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
goto
bar0_remap_failed
;
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
));
pci_resource_len
(
pdev
,
2
));
if
(
!
sp
->
bar1
)
{
if
(
!
sp
->
bar1
)
{
DBG_PRINT
(
ERR_DBG
,
"%s: S2IO: cannot remap io mem2
\n
"
,
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)
...
@@ -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. */
/* Initializing the BAR1 address as the start of the FIFO pointer. */
for
(
j
=
0
;
j
<
MAX_TX_FIFOS
;
j
++
)
{
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
));
(
sp
->
bar1
+
(
j
*
0x00020000
));
}
}
...
@@ -4829,7 +4829,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
...
@@ -4829,7 +4829,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
* MAC address initialization.
* MAC address initialization.
* For now only one mac address will be read and used.
* 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
|
val64
=
RMAC_ADDR_CMD_MEM_RD
|
RMAC_ADDR_CMD_MEM_STROBE_NEW_CMD
|
RMAC_ADDR_CMD_MEM_OFFSET
(
0
+
MAC_MAC_ADDR_START_OFFSET
);
RMAC_ADDR_CMD_MEM_OFFSET
(
0
+
MAC_MAC_ADDR_START_OFFSET
);
writeq
(
val64
,
&
bar0
->
rmac_addr_cmd_mem
);
writeq
(
val64
,
&
bar0
->
rmac_addr_cmd_mem
);
...
@@ -4886,7 +4886,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
...
@@ -4886,7 +4886,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
val64
|=
0x0000800000000000ULL
;
val64
|=
0x0000800000000000ULL
;
writeq
(
val64
,
&
bar0
->
gpio_control
);
writeq
(
val64
,
&
bar0
->
gpio_control
);
val64
=
0x0411040400000000ULL
;
val64
=
0x0411040400000000ULL
;
writeq
(
val64
,
(
u64
*
)
((
u8
*
)
bar0
+
0x2700
)
);
writeq
(
val64
,
(
void
__iomem
*
)
bar0
+
0x2700
);
val64
=
readq
(
&
bar0
->
gpio_control
);
val64
=
readq
(
&
bar0
->
gpio_control
);
}
}
...
...
drivers/net/s2io.h
View file @
661e5f8d
...
@@ -583,7 +583,7 @@ typedef struct mac_info {
...
@@ -583,7 +583,7 @@ typedef struct mac_info {
/* tx side stuff */
/* tx side stuff */
/* logical pointer of start of each Tx FIFO */
/* 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*/
/* 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
];
tx_curr_put_info_t
tx_curr_put_info
[
MAX_TX_FIFOS
];
...
@@ -623,8 +623,8 @@ typedef struct s2io_nic {
...
@@ -623,8 +623,8 @@ typedef struct s2io_nic {
macaddr_t
pre_mac_addr
[
MAX_MAC_SUPPORTED
];
macaddr_t
pre_mac_addr
[
MAX_MAC_SUPPORTED
];
struct
net_device_stats
stats
;
struct
net_device_stats
stats
;
caddr_t
bar0
;
void
__iomem
*
bar0
;
caddr_t
bar1
;
void
__iomem
*
bar1
;
struct
config_param
config
;
struct
config_param
config
;
mac_info_t
mac_control
;
mac_info_t
mac_control
;
int
high_dma_flag
;
int
high_dma_flag
;
...
@@ -736,10 +736,9 @@ typedef struct s2io_nic {
...
@@ -736,10 +736,9 @@ typedef struct s2io_nic {
/* OS related system calls */
/* OS related system calls */
#ifndef readq
#ifndef readq
static
inline
u64
readq
(
void
*
addr
)
static
inline
u64
readq
(
void
__iomem
*
addr
)
{
{
u64
ret
=
0
;
u64
ret
=
readl
(
addr
+
4
);
ret
=
readl
(
addr
+
4
);
ret
<<=
32
;
ret
<<=
32
;
ret
|=
readl
(
addr
);
ret
|=
readl
(
addr
);
...
@@ -748,7 +747,7 @@ static inline u64 readq(void *addr)
...
@@ -748,7 +747,7 @@ static inline u64 readq(void *addr)
#endif
#endif
#ifndef writeq
#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
),
addr
);
writel
((
u32
)
(
val
>>
32
),
(
addr
+
4
));
writel
((
u32
)
(
val
>>
32
),
(
addr
+
4
));
...
@@ -762,7 +761,7 @@ static inline void writeq(u64 val, void *addr)
...
@@ -762,7 +761,7 @@ static inline void writeq(u64 val, void *addr)
*/
*/
#define UF 1
#define UF 1
#define LF 2
#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
)
{
if
(
order
==
LF
)
{
writel
((
u32
)
(
val
),
addr
);
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