Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci-2.6.23
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci-2.6.23
Commits
356bd146
Commit
356bd146
authored
Dec 11, 2006
by
Francois Romieu
Committed by
Jeff Garzik
Feb 05, 2007
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
chelsio: spaces, tabs and friends
Signed-off-by:
Francois Romieu
<
romieu@fr.zoreil.com
>
parent
b7d58394
Changes
15
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
288 additions
and
288 deletions
+288
-288
drivers/net/chelsio/common.h
drivers/net/chelsio/common.h
+1
-1
drivers/net/chelsio/cpl5_cmd.h
drivers/net/chelsio/cpl5_cmd.h
+9
-9
drivers/net/chelsio/cxgb2.c
drivers/net/chelsio/cxgb2.c
+32
-32
drivers/net/chelsio/elmer0.h
drivers/net/chelsio/elmer0.h
+20
-20
drivers/net/chelsio/espi.c
drivers/net/chelsio/espi.c
+20
-21
drivers/net/chelsio/fpga_defs.h
drivers/net/chelsio/fpga_defs.h
+3
-3
drivers/net/chelsio/gmac.h
drivers/net/chelsio/gmac.h
+9
-2
drivers/net/chelsio/ixf1010.c
drivers/net/chelsio/ixf1010.c
+2
-2
drivers/net/chelsio/mv88e1xxx.c
drivers/net/chelsio/mv88e1xxx.c
+7
-10
drivers/net/chelsio/pm3393.c
drivers/net/chelsio/pm3393.c
+4
-4
drivers/net/chelsio/sge.c
drivers/net/chelsio/sge.c
+64
-61
drivers/net/chelsio/subr.c
drivers/net/chelsio/subr.c
+41
-42
drivers/net/chelsio/tp.c
drivers/net/chelsio/tp.c
+30
-32
drivers/net/chelsio/vsc7326.c
drivers/net/chelsio/vsc7326.c
+28
-29
drivers/net/chelsio/vsc8244.c
drivers/net/chelsio/vsc8244.c
+18
-20
No files found.
drivers/net/chelsio/common.h
View file @
356bd146
...
@@ -324,7 +324,7 @@ struct board_info {
...
@@ -324,7 +324,7 @@ struct board_info {
unsigned
char
mdio_phybaseaddr
;
unsigned
char
mdio_phybaseaddr
;
struct
gmac
*
gmac
;
struct
gmac
*
gmac
;
struct
gphy
*
gphy
;
struct
gphy
*
gphy
;
struct
mdio_ops
*
mdio_ops
;
struct
mdio_ops
*
mdio_ops
;
const
char
*
desc
;
const
char
*
desc
;
};
};
...
...
drivers/net/chelsio/cpl5_cmd.h
View file @
356bd146
...
@@ -103,7 +103,7 @@ enum CPL_opcode {
...
@@ -103,7 +103,7 @@ enum CPL_opcode {
CPL_MIGRATE_C2T_RPL
=
0xDD
,
CPL_MIGRATE_C2T_RPL
=
0xDD
,
CPL_ERROR
=
0xD7
,
CPL_ERROR
=
0xD7
,
/* internal: driver -> TOM */
/* internal: driver -> TOM */
CPL_MSS_CHANGE
=
0xE1
CPL_MSS_CHANGE
=
0xE1
};
};
...
@@ -159,8 +159,8 @@ enum { // TX_PKT_LSO ethernet types
...
@@ -159,8 +159,8 @@ enum { // TX_PKT_LSO ethernet types
};
};
union
opcode_tid
{
union
opcode_tid
{
u32
opcode_tid
;
u32
opcode_tid
;
u8
opcode
;
u8
opcode
;
};
};
#define S_OPCODE 24
#define S_OPCODE 24
...
@@ -234,7 +234,7 @@ struct cpl_pass_accept_req {
...
@@ -234,7 +234,7 @@ struct cpl_pass_accept_req {
u32
local_ip
;
u32
local_ip
;
u32
peer_ip
;
u32
peer_ip
;
u32
tos_tid
;
u32
tos_tid
;
struct
tcp_options
tcp_options
;
struct
tcp_options
tcp_options
;
u8
dst_mac
[
6
];
u8
dst_mac
[
6
];
u16
vlan_tag
;
u16
vlan_tag
;
u8
src_mac
[
6
];
u8
src_mac
[
6
];
...
@@ -250,12 +250,12 @@ struct cpl_pass_accept_rpl {
...
@@ -250,12 +250,12 @@ struct cpl_pass_accept_rpl {
u32
peer_ip
;
u32
peer_ip
;
u32
opt0h
;
u32
opt0h
;
union
{
union
{
u32
opt0l
;
u32
opt0l
;
struct
{
struct
{
u8
rsvd
[
3
];
u8
rsvd
[
3
];
u8
status
;
u8
status
;
};
};
};
};
};
};
struct
cpl_act_open_req
{
struct
cpl_act_open_req
{
...
...
drivers/net/chelsio/cxgb2.c
View file @
356bd146
...
@@ -69,14 +69,14 @@ static inline void cancel_mac_stats_update(struct adapter *ap)
...
@@ -69,14 +69,14 @@ static inline void cancel_mac_stats_update(struct adapter *ap)
cancel_delayed_work
(
&
ap
->
stats_update_task
);
cancel_delayed_work
(
&
ap
->
stats_update_task
);
}
}
#define MAX_CMDQ_ENTRIES
16384
#define MAX_CMDQ_ENTRIES
16384
#define MAX_CMDQ1_ENTRIES
1024
#define MAX_CMDQ1_ENTRIES
1024
#define MAX_RX_BUFFERS
16384
#define MAX_RX_BUFFERS
16384
#define MAX_RX_JUMBO_BUFFERS
16384
#define MAX_RX_JUMBO_BUFFERS
16384
#define MAX_TX_BUFFERS_HIGH 16384U
#define MAX_TX_BUFFERS_HIGH 16384U
#define MAX_TX_BUFFERS_LOW 1536U
#define MAX_TX_BUFFERS_LOW 1536U
#define MAX_TX_BUFFERS 1460U
#define MAX_TX_BUFFERS 1460U
#define MIN_FL_ENTRIES
32
#define MIN_FL_ENTRIES
32
#define DFLT_MSG_ENABLE (NETIF_MSG_DRV | NETIF_MSG_PROBE | NETIF_MSG_LINK | \
#define DFLT_MSG_ENABLE (NETIF_MSG_DRV | NETIF_MSG_PROBE | NETIF_MSG_LINK | \
NETIF_MSG_TIMER | NETIF_MSG_IFDOWN | NETIF_MSG_IFUP |\
NETIF_MSG_TIMER | NETIF_MSG_IFDOWN | NETIF_MSG_IFUP |\
...
@@ -143,7 +143,7 @@ static void link_report(struct port_info *p)
...
@@ -143,7 +143,7 @@ static void link_report(struct port_info *p)
case
SPEED_100
:
s
=
"100Mbps"
;
break
;
case
SPEED_100
:
s
=
"100Mbps"
;
break
;
}
}
printk
(
KERN_INFO
"%s: link up, %s, %s-duplex
\n
"
,
printk
(
KERN_INFO
"%s: link up, %s, %s-duplex
\n
"
,
p
->
dev
->
name
,
s
,
p
->
dev
->
name
,
s
,
p
->
link_config
.
duplex
==
DUPLEX_FULL
?
"full"
:
"half"
);
p
->
link_config
.
duplex
==
DUPLEX_FULL
?
"full"
:
"half"
);
}
}
...
@@ -233,7 +233,7 @@ static int cxgb_up(struct adapter *adapter)
...
@@ -233,7 +233,7 @@ static int cxgb_up(struct adapter *adapter)
t1_sge_start
(
adapter
->
sge
);
t1_sge_start
(
adapter
->
sge
);
t1_interrupts_enable
(
adapter
);
t1_interrupts_enable
(
adapter
);
out_err:
out_err:
return
err
;
return
err
;
}
}
...
@@ -749,7 +749,7 @@ static int set_sge_param(struct net_device *dev, struct ethtool_ringparam *e)
...
@@ -749,7 +749,7 @@ static int set_sge_param(struct net_device *dev, struct ethtool_ringparam *e)
return
-
EINVAL
;
return
-
EINVAL
;
if
(
adapter
->
flags
&
FULL_INIT_DONE
)
if
(
adapter
->
flags
&
FULL_INIT_DONE
)
return
-
EBUSY
;
return
-
EBUSY
;
adapter
->
params
.
sge
.
freelQ_size
[
!
jumbo_fl
]
=
e
->
rx_pending
;
adapter
->
params
.
sge
.
freelQ_size
[
!
jumbo_fl
]
=
e
->
rx_pending
;
adapter
->
params
.
sge
.
freelQ_size
[
jumbo_fl
]
=
e
->
rx_jumbo_pending
;
adapter
->
params
.
sge
.
freelQ_size
[
jumbo_fl
]
=
e
->
rx_jumbo_pending
;
...
@@ -764,7 +764,7 @@ static int set_coalesce(struct net_device *dev, struct ethtool_coalesce *c)
...
@@ -764,7 +764,7 @@ static int set_coalesce(struct net_device *dev, struct ethtool_coalesce *c)
struct
adapter
*
adapter
=
dev
->
priv
;
struct
adapter
*
adapter
=
dev
->
priv
;
adapter
->
params
.
sge
.
rx_coalesce_usecs
=
c
->
rx_coalesce_usecs
;
adapter
->
params
.
sge
.
rx_coalesce_usecs
=
c
->
rx_coalesce_usecs
;
adapter
->
params
.
sge
.
coalesce_enable
=
c
->
use_adaptive_rx_coalesce
;
adapter
->
params
.
sge
.
coalesce_enable
=
c
->
use_adaptive_rx_coalesce
;
adapter
->
params
.
sge
.
sample_interval_usecs
=
c
->
rate_sample_interval
;
adapter
->
params
.
sge
.
sample_interval_usecs
=
c
->
rate_sample_interval
;
t1_sge_set_coalesce_params
(
adapter
->
sge
,
&
adapter
->
params
.
sge
);
t1_sge_set_coalesce_params
(
adapter
->
sge
,
&
adapter
->
params
.
sge
);
return
0
;
return
0
;
...
@@ -782,9 +782,9 @@ static int get_coalesce(struct net_device *dev, struct ethtool_coalesce *c)
...
@@ -782,9 +782,9 @@ static int get_coalesce(struct net_device *dev, struct ethtool_coalesce *c)
static
int
get_eeprom_len
(
struct
net_device
*
dev
)
static
int
get_eeprom_len
(
struct
net_device
*
dev
)
{
{
struct
adapter
*
adapter
=
dev
->
priv
;
struct
adapter
*
adapter
=
dev
->
priv
;
return
t1_is_asic
(
adapter
)
?
EEPROM_SIZE
:
0
;
return
t1_is_asic
(
adapter
)
?
EEPROM_SIZE
:
0
;
}
}
#define EEPROM_MAGIC(ap) \
#define EEPROM_MAGIC(ap) \
...
@@ -848,7 +848,7 @@ static int t1_ioctl(struct net_device *dev, struct ifreq *req, int cmd)
...
@@ -848,7 +848,7 @@ static int t1_ioctl(struct net_device *dev, struct ifreq *req, int cmd)
u32
val
;
u32
val
;
if
(
!
phy
->
mdio_read
)
if
(
!
phy
->
mdio_read
)
return
-
EOPNOTSUPP
;
return
-
EOPNOTSUPP
;
phy
->
mdio_read
(
adapter
,
data
->
phy_id
,
0
,
data
->
reg_num
&
0x1f
,
phy
->
mdio_read
(
adapter
,
data
->
phy_id
,
0
,
data
->
reg_num
&
0x1f
,
&
val
);
&
val
);
data
->
val_out
=
val
;
data
->
val_out
=
val
;
...
@@ -860,7 +860,7 @@ static int t1_ioctl(struct net_device *dev, struct ifreq *req, int cmd)
...
@@ -860,7 +860,7 @@ static int t1_ioctl(struct net_device *dev, struct ifreq *req, int cmd)
if
(
!
capable
(
CAP_NET_ADMIN
))
if
(
!
capable
(
CAP_NET_ADMIN
))
return
-
EPERM
;
return
-
EPERM
;
if
(
!
phy
->
mdio_write
)
if
(
!
phy
->
mdio_write
)
return
-
EOPNOTSUPP
;
return
-
EOPNOTSUPP
;
phy
->
mdio_write
(
adapter
,
data
->
phy_id
,
0
,
data
->
reg_num
&
0x1f
,
phy
->
mdio_write
(
adapter
,
data
->
phy_id
,
0
,
data
->
reg_num
&
0x1f
,
data
->
val_in
);
data
->
val_in
);
break
;
break
;
...
@@ -879,9 +879,9 @@ static int t1_change_mtu(struct net_device *dev, int new_mtu)
...
@@ -879,9 +879,9 @@ static int t1_change_mtu(struct net_device *dev, int new_mtu)
struct
cmac
*
mac
=
adapter
->
port
[
dev
->
if_port
].
mac
;
struct
cmac
*
mac
=
adapter
->
port
[
dev
->
if_port
].
mac
;
if
(
!
mac
->
ops
->
set_mtu
)
if
(
!
mac
->
ops
->
set_mtu
)
return
-
EOPNOTSUPP
;
return
-
EOPNOTSUPP
;
if
(
new_mtu
<
68
)
if
(
new_mtu
<
68
)
return
-
EINVAL
;
return
-
EINVAL
;
if
((
ret
=
mac
->
ops
->
set_mtu
(
mac
,
new_mtu
)))
if
((
ret
=
mac
->
ops
->
set_mtu
(
mac
,
new_mtu
)))
return
ret
;
return
ret
;
dev
->
mtu
=
new_mtu
;
dev
->
mtu
=
new_mtu
;
...
@@ -1211,9 +1211,9 @@ static int __devinit init_one(struct pci_dev *pdev,
...
@@ -1211,9 +1211,9 @@ static int __devinit init_one(struct pci_dev *pdev,
return
0
;
return
0
;
out_release_adapter_res:
out_release_adapter_res:
t1_free_sw_modules
(
adapter
);
t1_free_sw_modules
(
adapter
);
out_free_dev:
out_free_dev:
if
(
adapter
)
{
if
(
adapter
)
{
if
(
adapter
->
regs
)
if
(
adapter
->
regs
)
iounmap
(
adapter
->
regs
);
iounmap
(
adapter
->
regs
);
...
@@ -1222,7 +1222,7 @@ static int __devinit init_one(struct pci_dev *pdev,
...
@@ -1222,7 +1222,7 @@ static int __devinit init_one(struct pci_dev *pdev,
free_netdev
(
adapter
->
port
[
i
].
dev
);
free_netdev
(
adapter
->
port
[
i
].
dev
);
}
}
pci_release_regions
(
pdev
);
pci_release_regions
(
pdev
);
out_disable_pdev:
out_disable_pdev:
pci_disable_device
(
pdev
);
pci_disable_device
(
pdev
);
pci_set_drvdata
(
pdev
,
NULL
);
pci_set_drvdata
(
pdev
,
NULL
);
return
err
;
return
err
;
...
@@ -1273,20 +1273,20 @@ static int t1_clock(struct adapter *adapter, int mode)
...
@@ -1273,20 +1273,20 @@ static int t1_clock(struct adapter *adapter, int mode)
int
M_MEM_VAL
;
int
M_MEM_VAL
;
enum
{
enum
{
M_CORE_BITS
=
9
,
M_CORE_BITS
=
9
,
T_CORE_VAL
=
0
,
T_CORE_VAL
=
0
,
T_CORE_BITS
=
2
,
T_CORE_BITS
=
2
,
N_CORE_VAL
=
0
,
N_CORE_VAL
=
0
,
N_CORE_BITS
=
2
,
N_CORE_BITS
=
2
,
M_MEM_BITS
=
9
,
M_MEM_BITS
=
9
,
T_MEM_VAL
=
0
,
T_MEM_VAL
=
0
,
T_MEM_BITS
=
2
,
T_MEM_BITS
=
2
,
N_MEM_VAL
=
0
,
N_MEM_VAL
=
0
,
N_MEM_BITS
=
2
,
N_MEM_BITS
=
2
,
NP_LOAD
=
1
<<
17
,
NP_LOAD
=
1
<<
17
,
S_LOAD_MEM
=
1
<<
5
,
S_LOAD_MEM
=
1
<<
5
,
S_LOAD_CORE
=
1
<<
6
,
S_LOAD_CORE
=
1
<<
6
,
S_CLOCK
=
1
<<
3
S_CLOCK
=
1
<<
3
};
};
if
(
!
t1_is_T1B
(
adapter
))
if
(
!
t1_is_T1B
(
adapter
))
...
...
drivers/net/chelsio/elmer0.h
View file @
356bd146
...
@@ -46,14 +46,14 @@ enum {
...
@@ -46,14 +46,14 @@ enum {
};
};
/* ELMER0 registers */
/* ELMER0 registers */
#define A_ELMER0_VERSION
0x100000
#define A_ELMER0_VERSION
0x100000
#define A_ELMER0_PHY_CFG
0x100004
#define A_ELMER0_PHY_CFG
0x100004
#define A_ELMER0_INT_ENABLE
0x100008
#define A_ELMER0_INT_ENABLE
0x100008
#define A_ELMER0_INT_CAUSE
0x10000c
#define A_ELMER0_INT_CAUSE
0x10000c
#define A_ELMER0_GPI_CFG
0x100010
#define A_ELMER0_GPI_CFG
0x100010
#define A_ELMER0_GPI_STAT
0x100014
#define A_ELMER0_GPI_STAT
0x100014
#define A_ELMER0_GPO
0x100018
#define A_ELMER0_GPO
0x100018
#define A_ELMER0_PORT0_MI1_CFG
0x400000
#define A_ELMER0_PORT0_MI1_CFG
0x400000
#define S_MI1_MDI_ENABLE 0
#define S_MI1_MDI_ENABLE 0
#define V_MI1_MDI_ENABLE(x) ((x) << S_MI1_MDI_ENABLE)
#define V_MI1_MDI_ENABLE(x) ((x) << S_MI1_MDI_ENABLE)
...
@@ -111,18 +111,18 @@ enum {
...
@@ -111,18 +111,18 @@ enum {
#define V_MI1_OP_BUSY(x) ((x) << S_MI1_OP_BUSY)
#define V_MI1_OP_BUSY(x) ((x) << S_MI1_OP_BUSY)
#define F_MI1_OP_BUSY V_MI1_OP_BUSY(1U)
#define F_MI1_OP_BUSY V_MI1_OP_BUSY(1U)
#define A_ELMER0_PORT1_MI1_CFG
0x500000
#define A_ELMER0_PORT1_MI1_CFG
0x500000
#define A_ELMER0_PORT1_MI1_ADDR
0x500004
#define A_ELMER0_PORT1_MI1_ADDR
0x500004
#define A_ELMER0_PORT1_MI1_DATA
0x500008
#define A_ELMER0_PORT1_MI1_DATA
0x500008
#define A_ELMER0_PORT1_MI1_OP
0x50000c
#define A_ELMER0_PORT1_MI1_OP
0x50000c
#define A_ELMER0_PORT2_MI1_CFG
0x600000
#define A_ELMER0_PORT2_MI1_CFG
0x600000
#define A_ELMER0_PORT2_MI1_ADDR
0x600004
#define A_ELMER0_PORT2_MI1_ADDR
0x600004
#define A_ELMER0_PORT2_MI1_DATA
0x600008
#define A_ELMER0_PORT2_MI1_DATA
0x600008
#define A_ELMER0_PORT2_MI1_OP
0x60000c
#define A_ELMER0_PORT2_MI1_OP
0x60000c
#define A_ELMER0_PORT3_MI1_CFG
0x700000
#define A_ELMER0_PORT3_MI1_CFG
0x700000
#define A_ELMER0_PORT3_MI1_ADDR
0x700004
#define A_ELMER0_PORT3_MI1_ADDR
0x700004
#define A_ELMER0_PORT3_MI1_DATA
0x700008
#define A_ELMER0_PORT3_MI1_DATA
0x700008
#define A_ELMER0_PORT3_MI1_OP
0x70000c
#define A_ELMER0_PORT3_MI1_OP
0x70000c
/* Simple bit definition for GPI and GP0 registers. */
/* Simple bit definition for GPI and GP0 registers. */
#define ELMER0_GP_BIT0 0x0001
#define ELMER0_GP_BIT0 0x0001
...
...
drivers/net/chelsio/espi.c
View file @
356bd146
...
@@ -202,9 +202,9 @@ static void espi_setup_for_pm3393(adapter_t *adapter)
...
@@ -202,9 +202,9 @@ static void espi_setup_for_pm3393(adapter_t *adapter)
static
void
espi_setup_for_vsc7321
(
adapter_t
*
adapter
)
static
void
espi_setup_for_vsc7321
(
adapter_t
*
adapter
)
{
{
writel
(
0x1f4
,
adapter
->
regs
+
A_ESPI_SCH_TOKEN0
);
writel
(
0x1f4
,
adapter
->
regs
+
A_ESPI_SCH_TOKEN0
);
writel
(
0x1f401f4
,
adapter
->
regs
+
A_ESPI_SCH_TOKEN1
);
writel
(
0x1f401f4
,
adapter
->
regs
+
A_ESPI_SCH_TOKEN1
);
writel
(
0x1f4
,
adapter
->
regs
+
A_ESPI_SCH_TOKEN2
);
writel
(
0x1f4
,
adapter
->
regs
+
A_ESPI_SCH_TOKEN2
);
writel
(
0xa00
,
adapter
->
regs
+
A_ESPI_RX_FIFO_ALMOST_FULL_WATERMARK
);
writel
(
0xa00
,
adapter
->
regs
+
A_ESPI_RX_FIFO_ALMOST_FULL_WATERMARK
);
writel
(
0x1ff
,
adapter
->
regs
+
A_ESPI_RX_FIFO_ALMOST_EMPTY_WATERMARK
);
writel
(
0x1ff
,
adapter
->
regs
+
A_ESPI_RX_FIFO_ALMOST_EMPTY_WATERMARK
);
writel
(
1
,
adapter
->
regs
+
A_ESPI_CALENDAR_LENGTH
);
writel
(
1
,
adapter
->
regs
+
A_ESPI_CALENDAR_LENGTH
);
...
@@ -247,10 +247,10 @@ int t1_espi_init(struct peespi *espi, int mac_type, int nports)
...
@@ -247,10 +247,10 @@ int t1_espi_init(struct peespi *espi, int mac_type, int nports)
writel
(
V_OUT_OF_SYNC_COUNT
(
4
)
|
writel
(
V_OUT_OF_SYNC_COUNT
(
4
)
|
V_DIP2_PARITY_ERR_THRES
(
3
)
|
V_DIP2_PARITY_ERR_THRES
(
3
)
|
V_DIP4_THRES
(
1
),
adapter
->
regs
+
A_ESPI_MISC_CONTROL
);
V_DIP4_THRES
(
1
),
adapter
->
regs
+
A_ESPI_MISC_CONTROL
);
writel
(
nports
==
4
?
0x200040
:
0x1000080
,
writel
(
nports
==
4
?
0x200040
:
0x1000080
,
adapter
->
regs
+
A_ESPI_MAXBURST1_MAXBURST2
);
adapter
->
regs
+
A_ESPI_MAXBURST1_MAXBURST2
);
}
else
}
else
writel
(
0x800100
,
adapter
->
regs
+
A_ESPI_MAXBURST1_MAXBURST2
);
writel
(
0x800100
,
adapter
->
regs
+
A_ESPI_MAXBURST1_MAXBURST2
);
if
(
mac_type
==
CHBT_MAC_PM3393
)
if
(
mac_type
==
CHBT_MAC_PM3393
)
espi_setup_for_pm3393
(
adapter
);
espi_setup_for_pm3393
(
adapter
);
...
@@ -341,32 +341,31 @@ u32 t1_espi_get_mon(adapter_t *adapter, u32 addr, u8 wait)
...
@@ -341,32 +341,31 @@ u32 t1_espi_get_mon(adapter_t *adapter, u32 addr, u8 wait)
* compare with t1_espi_get_mon(), it reads espiInTxSop[0 ~ 3] in
* compare with t1_espi_get_mon(), it reads espiInTxSop[0 ~ 3] in
* one shot, since there is no per port counter on the out side.
* one shot, since there is no per port counter on the out side.
*/
*/
int
int
t1_espi_get_mon_t204
(
adapter_t
*
adapter
,
u32
*
valp
,
u8
wait
)
t1_espi_get_mon_t204
(
adapter_t
*
adapter
,
u32
*
valp
,
u8
wait
)
{
{
struct
peespi
*
espi
=
adapter
->
espi
;
struct
peespi
*
espi
=
adapter
->
espi
;
u8
i
,
nport
=
(
u8
)
adapter
->
params
.
nports
;
u8
i
,
nport
=
(
u8
)
adapter
->
params
.
nports
;
if
(
!
wait
)
{
if
(
!
wait
)
{
if
(
!
spin_trylock
(
&
espi
->
lock
))
if
(
!
spin_trylock
(
&
espi
->
lock
))
return
-
1
;
return
-
1
;
}
else
}
else
spin_lock
(
&
espi
->
lock
);
spin_lock
(
&
espi
->
lock
);
if
(
(
espi
->
misc_ctrl
&
MON_MASK
)
!=
F_MONITORED_DIRECTION
)
{
if
(
(
espi
->
misc_ctrl
&
MON_MASK
)
!=
F_MONITORED_DIRECTION
)
{
espi
->
misc_ctrl
=
(
espi
->
misc_ctrl
&
~
MON_MASK
)
|
espi
->
misc_ctrl
=
(
espi
->
misc_ctrl
&
~
MON_MASK
)
|
F_MONITORED_DIRECTION
;
F_MONITORED_DIRECTION
;
writel
(
espi
->
misc_ctrl
,
adapter
->
regs
+
A_ESPI_MISC_CONTROL
);
writel
(
espi
->
misc_ctrl
,
adapter
->
regs
+
A_ESPI_MISC_CONTROL
);
}
}
for
(
i
=
0
;
i
<
nport
;
i
++
,
valp
++
)
{
for
(
i
=
0
;
i
<
nport
;
i
++
,
valp
++
)
{
if
(
i
)
{
if
(
i
)
{
writel
(
espi
->
misc_ctrl
|
V_MONITORED_PORT_NUM
(
i
),
writel
(
espi
->
misc_ctrl
|
V_MONITORED_PORT_NUM
(
i
),
adapter
->
regs
+
A_ESPI_MISC_CONTROL
);
adapter
->
regs
+
A_ESPI_MISC_CONTROL
);
}
}
*
valp
=
readl
(
adapter
->
regs
+
A_ESPI_SCH_TOKEN3
);
*
valp
=
readl
(
adapter
->
regs
+
A_ESPI_SCH_TOKEN3
);
}
}
writel
(
espi
->
misc_ctrl
,
adapter
->
regs
+
A_ESPI_MISC_CONTROL
);
writel
(
espi
->
misc_ctrl
,
adapter
->
regs
+
A_ESPI_MISC_CONTROL
);
spin_unlock
(
&
espi
->
lock
);
spin_unlock
(
&
espi
->
lock
);
return
0
;
return
0
;
}
}
drivers/net/chelsio/fpga_defs.h
View file @
356bd146
...
@@ -98,9 +98,9 @@
...
@@ -98,9 +98,9 @@
#define A_MI0_DATA_INT 0xb10
#define A_MI0_DATA_INT 0xb10
/* GMAC registers */
/* GMAC registers */
#define A_GMAC_MACID_LO
0x28
#define A_GMAC_MACID_LO
0x28
#define A_GMAC_MACID_HI
0x2c
#define A_GMAC_MACID_HI
0x2c
#define A_GMAC_CSR
0x30
#define A_GMAC_CSR
0x30
#define S_INTERFACE 0
#define S_INTERFACE 0
#define M_INTERFACE 0x3
#define M_INTERFACE 0x3
...
...
drivers/net/chelsio/gmac.h
View file @
356bd146
...
@@ -42,8 +42,15 @@
...
@@ -42,8 +42,15 @@
#include "common.h"
#include "common.h"
enum
{
MAC_STATS_UPDATE_FAST
,
MAC_STATS_UPDATE_FULL
};
enum
{
enum
{
MAC_DIRECTION_RX
=
1
,
MAC_DIRECTION_TX
=
2
};
MAC_STATS_UPDATE_FAST
,
MAC_STATS_UPDATE_FULL
};
enum
{
MAC_DIRECTION_RX
=
1
,
MAC_DIRECTION_TX
=
2
};
struct
cmac_statistics
{
struct
cmac_statistics
{
/* Transmit */
/* Transmit */
...
...
drivers/net/chelsio/ixf1010.c
View file @
356bd146
...
@@ -358,8 +358,8 @@ static void enable_port(struct cmac *mac)
...
@@ -358,8 +358,8 @@ static void enable_port(struct cmac *mac)
val
|=
(
1
<<
index
);
val
|=
(
1
<<
index
);
t1_tpi_write
(
adapter
,
REG_PORT_ENABLE
,
val
);
t1_tpi_write
(
adapter
,
REG_PORT_ENABLE
,
val
);
index
<<=
2
;
index
<<=
2
;
if
(
is_T2
(
adapter
))
{
if
(
is_T2
(
adapter
))
{
/* T204: set the Fifo water level & threshold */
/* T204: set the Fifo water level & threshold */
t1_tpi_write
(
adapter
,
RX_FIFO_HIGH_WATERMARK_BASE
+
index
,
0x740
);
t1_tpi_write
(
adapter
,
RX_FIFO_HIGH_WATERMARK_BASE
+
index
,
0x740
);
t1_tpi_write
(
adapter
,
RX_FIFO_LOW_WATERMARK_BASE
+
index
,
0x730
);
t1_tpi_write
(
adapter
,
RX_FIFO_LOW_WATERMARK_BASE
+
index
,
0x730
);
...
...
drivers/net/chelsio/mv88e1xxx.c
View file @
356bd146
...
@@ -73,9 +73,8 @@ static int mv88e1xxx_interrupt_enable(struct cphy *cphy)
...
@@ -73,9 +73,8 @@ static int mv88e1xxx_interrupt_enable(struct cphy *cphy)
t1_tpi_read
(
cphy
->
adapter
,
A_ELMER0_INT_ENABLE
,
&
elmer
);
t1_tpi_read
(
cphy
->
adapter
,
A_ELMER0_INT_ENABLE
,
&
elmer
);
elmer
|=
ELMER0_GP_BIT1
;
elmer
|=
ELMER0_GP_BIT1
;
if
(
is_T2
(
cphy
->
adapter
))
{
if
(
is_T2
(
cphy
->
adapter
))
elmer
|=
ELMER0_GP_BIT2
|
ELMER0_GP_BIT3
|
ELMER0_GP_BIT4
;
elmer
|=
ELMER0_GP_BIT2
|
ELMER0_GP_BIT3
|
ELMER0_GP_BIT4
;
}
t1_tpi_write
(
cphy
->
adapter
,
A_ELMER0_INT_ENABLE
,
elmer
);
t1_tpi_write
(
cphy
->
adapter
,
A_ELMER0_INT_ENABLE
,
elmer
);
}
}
return
0
;
return
0
;
...
@@ -92,9 +91,8 @@ static int mv88e1xxx_interrupt_disable(struct cphy *cphy)
...
@@ -92,9 +91,8 @@ static int mv88e1xxx_interrupt_disable(struct cphy *cphy)
t1_tpi_read
(
cphy
->
adapter
,
A_ELMER0_INT_ENABLE
,
&
elmer
);
t1_tpi_read
(
cphy
->
adapter
,
A_ELMER0_INT_ENABLE
,
&
elmer
);
elmer
&=
~
ELMER0_GP_BIT1
;
elmer
&=
~
ELMER0_GP_BIT1
;
if
(
is_T2
(
cphy
->
adapter
))
{
if
(
is_T2
(
cphy
->
adapter
))
elmer
&=
~
(
ELMER0_GP_BIT2
|
ELMER0_GP_BIT3
|
ELMER0_GP_BIT4
);
elmer
&=
~
(
ELMER0_GP_BIT2
|
ELMER0_GP_BIT3
|
ELMER0_GP_BIT4
);
}
t1_tpi_write
(
cphy
->
adapter
,
A_ELMER0_INT_ENABLE
,
elmer
);
t1_tpi_write
(
cphy
->
adapter
,
A_ELMER0_INT_ENABLE
,
elmer
);
}
}
return
0
;
return
0
;
...
@@ -112,9 +110,8 @@ static int mv88e1xxx_interrupt_clear(struct cphy *cphy)
...
@@ -112,9 +110,8 @@ static int mv88e1xxx_interrupt_clear(struct cphy *cphy)
if
(
t1_is_asic
(
cphy
->
adapter
))
{
if
(
t1_is_asic
(
cphy
->
adapter
))
{
t1_tpi_read
(
cphy
->
adapter
,
A_ELMER0_INT_CAUSE
,
&
elmer
);
t1_tpi_read
(
cphy
->
adapter
,
A_ELMER0_INT_CAUSE
,
&
elmer
);
elmer
|=
ELMER0_GP_BIT1
;
elmer
|=
ELMER0_GP_BIT1
;
if
(
is_T2
(
cphy
->
adapter
))
{
if
(
is_T2
(
cphy
->
adapter
))
elmer
|=
ELMER0_GP_BIT2
|
ELMER0_GP_BIT3
|
ELMER0_GP_BIT4
;
elmer
|=
ELMER0_GP_BIT2
|
ELMER0_GP_BIT3
|
ELMER0_GP_BIT4
;
}
t1_tpi_write
(
cphy
->
adapter
,
A_ELMER0_INT_CAUSE
,
elmer
);
t1_tpi_write
(
cphy
->
adapter
,
A_ELMER0_INT_CAUSE
,
elmer
);
}
}
return
0
;
return
0
;
...
@@ -300,7 +297,7 @@ static int mv88e1xxx_interrupt_handler(struct cphy *cphy)
...
@@ -300,7 +297,7 @@ static int mv88e1xxx_interrupt_handler(struct cphy *cphy)
/*
/*
* Loop until cause reads zero. Need to handle bouncing interrupts.
* Loop until cause reads zero. Need to handle bouncing interrupts.
*/
*/
while
(
1
)
{
while
(
1
)
{
u32
cause
;
u32
cause
;
...
@@ -379,11 +376,11 @@ static struct cphy *mv88e1xxx_phy_create(adapter_t *adapter, int phy_addr,
...
@@ -379,11 +376,11 @@ static struct cphy *mv88e1xxx_phy_create(adapter_t *adapter, int phy_addr,
}
}
(
void
)
mv88e1xxx_downshift_set
(
cphy
,
1
);
/* Enable downshift */
(
void
)
mv88e1xxx_downshift_set
(
cphy
,
1
);
/* Enable downshift */
/* LED */
/* LED */
if
(
is_T2
(
adapter
))
{
if
(
is_T2
(
adapter
))
{
(
void
)
simple_mdio_write
(
cphy
,
(
void
)
simple_mdio_write
(
cphy
,
MV88E1XXX_LED_CONTROL_REGISTER
,
0x1
);
MV88E1XXX_LED_CONTROL_REGISTER
,
0x1
);
}
}
return
cphy
;
return
cphy
;
}
}
...
...
drivers/net/chelsio/pm3393.c
View file @
356bd146
...
@@ -455,8 +455,8 @@ static void pm3393_rmon_update(struct adapter *adapter, u32 offs, u64 *val,
...
@@ -455,8 +455,8 @@ static void pm3393_rmon_update(struct adapter *adapter, u32 offs, u64 *val,
static
const
struct
cmac_statistics
*
pm3393_update_statistics
(
struct
cmac
*
mac
,
static
const
struct
cmac_statistics
*
pm3393_update_statistics
(
struct
cmac
*
mac
,
int
flag
)
int
flag
)
{
{
u64
ro
;
u64
ro
;
u32
val0
,
val1
,
val2
,
val3
;
u32
val0
,
val1
,
val2
,
val3
;
/* Snap the counters */
/* Snap the counters */
pmwrite
(
mac
,
SUNI1x10GEXP_REG_MSTAT_CONTROL
,
pmwrite
(
mac
,
SUNI1x10GEXP_REG_MSTAT_CONTROL
,
...
@@ -534,9 +534,9 @@ static int pm3393_macaddress_set(struct cmac *cmac, u8 ma[6])
...
@@ -534,9 +534,9 @@ static int pm3393_macaddress_set(struct cmac *cmac, u8 ma[6])
/* Store local copy */
/* Store local copy */
memcpy
(
cmac
->
instance
->
mac_addr
,
ma
,
6
);
memcpy
(
cmac
->
instance
->
mac_addr
,
ma
,
6
);
lo
=
((
u32
)
ma
[
1
]
<<
8
)
|
(
u32
)
ma
[
0
];
lo
=
((
u32
)
ma
[
1
]
<<
8
)
|
(
u32
)
ma
[
0
];
mid
=
((
u32
)
ma
[
3
]
<<
8
)
|
(
u32
)
ma
[
2
];
mid
=
((
u32
)
ma
[
3
]
<<
8
)
|
(
u32
)
ma
[
2
];
hi
=
((
u32
)
ma
[
5
]
<<
8
)
|
(
u32
)
ma
[
4
];
hi
=
((
u32
)
ma
[
5
]
<<
8
)
|
(
u32
)
ma
[
4
];
/* Disable Rx/Tx MAC before configuring it. */
/* Disable Rx/Tx MAC before configuring it. */
if
(
enabled
)
if
(
enabled
)
...
...
drivers/net/chelsio/sge.c
View file @
356bd146
This diff is collapsed.
Click to expand it.
drivers/net/chelsio/subr.c
View file @
356bd146
...
@@ -223,13 +223,13 @@ static int fpga_slow_intr(adapter_t *adapter)
...
@@ -223,13 +223,13 @@ static int fpga_slow_intr(adapter_t *adapter)
t1_sge_intr_error_handler
(
adapter
->
sge
);
t1_sge_intr_error_handler
(
adapter
->
sge
);
if
(
cause
&
FPGA_PCIX_INTERRUPT_GMAC
)
if
(
cause
&
FPGA_PCIX_INTERRUPT_GMAC
)
fpga_phy_intr_handler
(
adapter
);
fpga_phy_intr_handler
(
adapter
);
if
(
cause
&
FPGA_PCIX_INTERRUPT_TP
)
{
if
(
cause
&
FPGA_PCIX_INTERRUPT_TP
)
{
/*
/*
* FPGA doesn't support MC4 interrupts and it requires
* FPGA doesn't support MC4 interrupts and it requires
* this odd layer of indirection for MC5.
* this odd layer of indirection for MC5.
*/
*/
u32
tp_cause
=
readl
(
adapter
->
regs
+
FPGA_TP_ADDR_INTERRUPT_CAUSE
);
u32
tp_cause
=
readl
(
adapter
->
regs
+
FPGA_TP_ADDR_INTERRUPT_CAUSE
);
/* Clear TP interrupt */
/* Clear TP interrupt */
...
@@ -262,8 +262,7 @@ static int mi1_wait_until_ready(adapter_t *adapter, int mi1_reg)
...
@@ -262,8 +262,7 @@ static int mi1_wait_until_ready(adapter_t *adapter, int mi1_reg)
udelay
(
10
);
udelay
(
10
);
}
while
(
busy
&&
--
attempts
);
}
while
(
busy
&&
--
attempts
);
if
(
busy
)
if
(
busy
)
CH_ALERT
(
"%s: MDIO operation timed out
\n
"
,
CH_ALERT
(
"%s: MDIO operation timed out
\n
"
,
adapter
->
name
);
adapter
->
name
);
return
busy
;
return
busy
;
}
}
...
@@ -605,23 +604,23 @@ int t1_elmer0_ext_intr_handler(adapter_t *adapter)
...
@@ -605,23 +604,23 @@ int t1_elmer0_ext_intr_handler(adapter_t *adapter)
switch
(
board_info
(
adapter
)
->
board
)
{
switch
(
board_info
(
adapter
)
->
board
)
{
#ifdef CONFIG_CHELSIO_T1_1G
#ifdef CONFIG_CHELSIO_T1_1G
case
CHBT_BOARD_CHT204
:
case
CHBT_BOARD_CHT204
:
case
CHBT_BOARD_CHT204E
:
case
CHBT_BOARD_CHT204E
:
case
CHBT_BOARD_CHN204
:
case
CHBT_BOARD_CHN204
:
case
CHBT_BOARD_CHT204V
:
{
case
CHBT_BOARD_CHT204V
:
{
int
i
,
port_bit
;
int
i
,
port_bit
;
for_each_port
(
adapter
,
i
)
{
for_each_port
(
adapter
,
i
)
{
port_bit
=
i
+
1
;
port_bit
=
i
+
1
;
if
(
!
(
cause
&
(
1
<<
port_bit
)))
if
(
!
(
cause
&
(
1
<<
port_bit
)))
continue
;
continue
;
phy
=
adapter
->
port
[
i
].
phy
;
phy
=
adapter
->
port
[
i
].
phy
;
phy_cause
=
phy
->
ops
->
interrupt_handler
(
phy
);
phy_cause
=
phy
->
ops
->
interrupt_handler
(
phy
);
if
(
phy_cause
&
cphy_cause_link_change
)
if
(
phy_cause
&
cphy_cause_link_change
)
t1_link_changed
(
adapter
,
i
);
t1_link_changed
(
adapter
,
i
);
}
}
break
;
break
;
}
}
case
CHBT_BOARD_CHT101
:
case
CHBT_BOARD_CHT101
:
if
(
cause
&
ELMER0_GP_BIT1
)
{
/* Marvell 88E1111 interrupt */
if
(
cause
&
ELMER0_GP_BIT1
)
{
/* Marvell 88E1111 interrupt */
phy
=
adapter
->
port
[
0
].
phy
;
phy
=
adapter
->
port
[
0
].
phy
;
...
@@ -632,13 +631,13 @@ int t1_elmer0_ext_intr_handler(adapter_t *adapter)
...
@@ -632,13 +631,13 @@ int t1_elmer0_ext_intr_handler(adapter_t *adapter)
break
;
break
;
case
CHBT_BOARD_7500
:
{
case
CHBT_BOARD_7500
:
{
int
p
;
int
p
;
/*
/*
* Elmer0's interrupt cause isn't useful here because there is
* Elmer0's interrupt cause isn't useful here because there is
* only one bit that can be set for all 4 ports. This means
* only one bit that can be set for all 4 ports. This means
* we are forced to check every PHY's interrupt status
* we are forced to check every PHY's interrupt status
* register to see who initiated the interrupt.
* register to see who initiated the interrupt.
*/
*/
for_each_port
(
adapter
,
p
)
{
for_each_port
(
adapter
,
p
)
{
phy
=
adapter
->
port
[
p
].
phy
;
phy
=
adapter
->
port
[
p
].
phy
;
phy_cause
=
phy
->
ops
->
interrupt_handler
(
phy
);
phy_cause
=
phy
->
ops
->
interrupt_handler
(
phy
);
if
(
phy_cause
&
cphy_cause_link_change
)
if
(
phy_cause
&
cphy_cause_link_change
)
...
@@ -659,7 +658,7 @@ int t1_elmer0_ext_intr_handler(adapter_t *adapter)
...
@@ -659,7 +658,7 @@ int t1_elmer0_ext_intr_handler(adapter_t *adapter)
break
;
break
;
case
CHBT_BOARD_8000
:
case
CHBT_BOARD_8000
:
case
CHBT_BOARD_CHT110
:
case
CHBT_BOARD_CHT110
:
CH_DBG
(
adapter
,
INTR
,
"External interrupt cause 0x%x
\n
"
,
CH_DBG
(
adapter
,
INTR
,
"External interrupt cause 0x%x
\n
"
,
cause
);
cause
);
if
(
cause
&
ELMER0_GP_BIT1
)
{
/* PMC3393 INTB */
if
(
cause
&
ELMER0_GP_BIT1
)
{
/* PMC3393 INTB */
struct
cmac
*
mac
=
adapter
->
port
[
0
].
mac
;
struct
cmac
*
mac
=
adapter
->
port
[
0
].
mac
;
...
@@ -671,9 +670,9 @@ int t1_elmer0_ext_intr_handler(adapter_t *adapter)
...
@@ -671,9 +670,9 @@ int t1_elmer0_ext_intr_handler(adapter_t *adapter)
t1_tpi_read
(
adapter
,
t1_tpi_read
(
adapter
,
A_ELMER0_GPI_STAT
,
&
mod_detect
);
A_ELMER0_GPI_STAT
,
&
mod_detect
);
CH_MSG
(
adapter
,
INFO
,
LINK
,
"XPAK %s
\n
"
,
CH_MSG
(
adapter
,
INFO
,
LINK
,
"XPAK %s
\n
"
,
mod_detect
?
"removed"
:
"inserted"
);
mod_detect
?
"removed"
:
"inserted"
);
}
}
break
;
break
;
#ifdef CONFIG_CHELSIO_T1_COUGAR
#ifdef CONFIG_CHELSIO_T1_COUGAR
case
CHBT_BOARD_COUGAR
:
case
CHBT_BOARD_COUGAR
:
...
@@ -757,7 +756,7 @@ void t1_interrupts_disable(adapter_t* adapter)
...
@@ -757,7 +756,7 @@ void t1_interrupts_disable(adapter_t* adapter)
/* Disable PCIX & external chip interrupts. */
/* Disable PCIX & external chip interrupts. */
if
(
t1_is_asic
(
adapter
))
if
(
t1_is_asic
(
adapter
))
writel
(
0
,
adapter
->
regs
+
A_PL_ENABLE
);
writel
(
0
,
adapter
->
regs
+
A_PL_ENABLE
);
/* PCI-X interrupts */
/* PCI-X interrupts */
pci_write_config_dword
(
adapter
->
pdev
,
A_PCICFG_INTR_ENABLE
,
0
);
pci_write_config_dword
(
adapter
->
pdev
,
A_PCICFG_INTR_ENABLE
,
0
);
...
@@ -832,11 +831,11 @@ int t1_slow_intr_handler(adapter_t *adapter)
...
@@ -832,11 +831,11 @@ int t1_slow_intr_handler(adapter_t *adapter)
/* Power sequencing is a work-around for Intel's XPAKs. */
/* Power sequencing is a work-around for Intel's XPAKs. */
static
void
power_sequence_xpak
(
adapter_t
*
adapter
)
static
void
power_sequence_xpak
(
adapter_t
*
adapter
)
{
{
u32
mod_detect
;
u32
mod_detect
;
u32
gpo
;
u32
gpo
;
/* Check for XPAK */
/* Check for XPAK */
t1_tpi_read
(
adapter
,
A_ELMER0_GPI_STAT
,
&
mod_detect
);
t1_tpi_read
(
adapter
,
A_ELMER0_GPI_STAT
,
&
mod_detect
);
if
(
!
(
ELMER0_GP_BIT5
&
mod_detect
))
{
if
(
!
(
ELMER0_GP_BIT5
&
mod_detect
))
{
/* XPAK is present */
/* XPAK is present */
t1_tpi_read
(
adapter
,
A_ELMER0_GPO
,
&
gpo
);
t1_tpi_read
(
adapter
,
A_ELMER0_GPO
,
&
gpo
);
...
@@ -879,31 +878,31 @@ static int board_init(adapter_t *adapter, const struct board_info *bi)
...
@@ -879,31 +878,31 @@ static int board_init(adapter_t *adapter, const struct board_info *bi)
case
CHBT_BOARD_N210
:
case
CHBT_BOARD_N210
:
case
CHBT_BOARD_CHT210
:
case
CHBT_BOARD_CHT210
:
case
CHBT_BOARD_COUGAR
:
case
CHBT_BOARD_COUGAR
:
t1_tpi_par
(
adapter
,
0xf
);
t1_tpi_par
(
adapter
,
0xf
);
t1_tpi_write
(
adapter
,
A_ELMER0_GPO
,
0x800
);
t1_tpi_write
(
adapter
,
A_ELMER0_GPO
,
0x800
);
break
;
break
;
case
CHBT_BOARD_CHT110
:
case
CHBT_BOARD_CHT110
:
t1_tpi_par
(
adapter
,
0xf
);
t1_tpi_par
(
adapter
,
0xf
);
t1_tpi_write
(
adapter
,
A_ELMER0_GPO
,
0x1800
);
t1_tpi_write
(
adapter
,
A_ELMER0_GPO
,
0x1800
);
/* TBD XXX Might not need. This fixes a problem
/* TBD XXX Might not need. This fixes a problem
* described in the Intel SR XPAK errata.
* described in the Intel SR XPAK errata.
*/
*/
power_sequence_xpak
(
adapter
);
power_sequence_xpak
(
adapter
);
break
;
break
;
#ifdef CONFIG_CHELSIO_T1_1G
#ifdef CONFIG_CHELSIO_T1_1G
case
CHBT_BOARD_CHT204E
:
case
CHBT_BOARD_CHT204E
:
/* add config space write here */
/* add config space write here */
case
CHBT_BOARD_CHT204
:
case
CHBT_BOARD_CHT204
:
case
CHBT_BOARD_CHT204V
:
case
CHBT_BOARD_CHT204V
:
case
CHBT_BOARD_CHN204
:
case
CHBT_BOARD_CHN204
:
t1_tpi_par
(
adapter
,
0xf
);
t1_tpi_par
(
adapter
,
0xf
);
t1_tpi_write
(
adapter
,
A_ELMER0_GPO
,
0x804
);
t1_tpi_write
(
adapter
,
A_ELMER0_GPO
,
0x804
);
break
;
break
;
case
CHBT_BOARD_CHT101
:
case
CHBT_BOARD_CHT101
:
case
CHBT_BOARD_7500
:
case
CHBT_BOARD_7500
:
t1_tpi_par
(
adapter
,
0xf
);
t1_tpi_par
(
adapter
,
0xf
);
t1_tpi_write
(
adapter
,
A_ELMER0_GPO
,
0x1804
);
t1_tpi_write
(
adapter
,
A_ELMER0_GPO
,
0x1804
);
break
;
break
;
#endif
#endif
}
}
...
@@ -943,7 +942,7 @@ int t1_init_hw_modules(adapter_t *adapter)
...
@@ -943,7 +942,7 @@ int t1_init_hw_modules(adapter_t *adapter)
goto
out_err
;
goto
out_err
;
err
=
0
;
err
=
0
;
out_err:
out_err:
return
err
;
return
err
;
}
}
...
@@ -985,7 +984,7 @@ void t1_free_sw_modules(adapter_t *adapter)
...
@@ -985,7 +984,7 @@ void t1_free_sw_modules(adapter_t *adapter)
if
(
adapter
->
espi
)
if
(
adapter
->
espi
)
t1_espi_destroy
(
adapter
->
espi
);
t1_espi_destroy
(
adapter
->
espi
);
#ifdef CONFIG_CHELSIO_T1_COUGAR
#ifdef CONFIG_CHELSIO_T1_COUGAR
if
(
adapter
->
cspi
)
if
(
adapter
->
cspi
)
t1_cspi_destroy
(
adapter
->
cspi
);
t1_cspi_destroy
(
adapter
->
cspi
);
#endif
#endif
}
}
...
@@ -1012,7 +1011,7 @@ static void __devinit init_link_config(struct link_config *lc,
...
@@ -1012,7 +1011,7 @@ static void __devinit init_link_config(struct link_config *lc,
CH_ERR
(
"%s: CSPI initialization failed
\n
"
,
CH_ERR
(
"%s: CSPI initialization failed
\n
"
,
adapter
->
name
);
adapter
->
name
);
goto
error
;
goto
error
;
}
}
#endif
#endif
/*
/*
...
...
drivers/net/chelsio/tp.c
View file @
356bd146
...
@@ -17,39 +17,36 @@ struct petp {
...
@@ -17,39 +17,36 @@ struct petp {
static
void
tp_init
(
adapter_t
*
ap
,
const
struct
tp_params
*
p
,
static
void
tp_init
(
adapter_t
*
ap
,
const
struct
tp_params
*
p
,
unsigned
int
tp_clk
)
unsigned
int
tp_clk
)
{
{
if
(
t1_is_asic
(
ap
))
{
u32
val
;
u32
val
;
val
=
F_TP_IN_CSPI_CPL
|
F_TP_IN_CSPI_CHECK_IP_CSUM
|
F_TP_IN_CSPI_CHECK_TCP_CSUM
|
F_TP_IN_ESPI_ETHERNET
;
if
(
!
p
->
pm_size
)
val
|=
F_OFFLOAD_DISABLE
;
else
val
|=
F_TP_IN_ESPI_CHECK_IP_CSUM
|
F_TP_IN_ESPI_CHECK_TCP_CSUM
;
writel
(
val
,
ap
->
regs
+
A_TP_IN_CONFIG
);
writel
(
F_TP_OUT_CSPI_CPL
|
F_TP_OUT_ESPI_ETHERNET
|
F_TP_OUT_ESPI_GENERATE_IP_CSUM
|
F_TP_OUT_ESPI_GENERATE_TCP_CSUM
,
ap
->
regs
+
A_TP_OUT_CONFIG
);
writel
(
V_IP_TTL
(
64
)
|
F_PATH_MTU
/* IP DF bit */
|
V_5TUPLE_LOOKUP
(
p
->
use_5tuple_mode
)
|
V_SYN_COOKIE_PARAMETER
(
29
),
ap
->
regs
+
A_TP_GLOBAL_CONFIG
);
/*
* Enable pause frame deadlock prevention.
*/
if
(
is_T2
(
ap
)
&&
ap
->
params
.
nports
>
1
)
{
u32
drop_ticks
=
DROP_MSEC
*
(
tp_clk
/
1000
);
writel
(
F_ENABLE_TX_DROP
|
F_ENABLE_TX_ERROR
|
V_DROP_TICKS_CNT
(
drop_ticks
)
|
V_NUM_PKTS_DROPPED
(
DROP_PKTS_CNT
),
ap
->
regs
+
A_TP_TX_DROP_CONFIG
);
}
if
(
!
t1_is_asic
(
ap
))
return
;
val
=
F_TP_IN_CSPI_CPL
|
F_TP_IN_CSPI_CHECK_IP_CSUM
|
F_TP_IN_CSPI_CHECK_TCP_CSUM
|
F_TP_IN_ESPI_ETHERNET
;
if
(
!
p
->
pm_size
)
val
|=
F_OFFLOAD_DISABLE
;
else
val
|=
F_TP_IN_ESPI_CHECK_IP_CSUM
|
F_TP_IN_ESPI_CHECK_TCP_CSUM
;
writel
(
val
,
ap
->
regs
+
A_TP_IN_CONFIG
);
writel
(
F_TP_OUT_CSPI_CPL
|
F_TP_OUT_ESPI_ETHERNET
|
F_TP_OUT_ESPI_GENERATE_IP_CSUM
|
F_TP_OUT_ESPI_GENERATE_TCP_CSUM
,
ap
->
regs
+
A_TP_OUT_CONFIG
);
writel
(
V_IP_TTL
(
64
)
|
F_PATH_MTU
/* IP DF bit */
|
V_5TUPLE_LOOKUP
(
p
->
use_5tuple_mode
)
|
V_SYN_COOKIE_PARAMETER
(
29
),
ap
->
regs
+
A_TP_GLOBAL_CONFIG
);
/*
* Enable pause frame deadlock prevention.
*/
if
(
is_T2
(
ap
)
&&
ap
->
params
.
nports
>
1
)
{
u32
drop_ticks
=
DROP_MSEC
*
(
tp_clk
/
1000
);
writel
(
F_ENABLE_TX_DROP
|
F_ENABLE_TX_ERROR
|
V_DROP_TICKS_CNT
(
drop_ticks
)
|
V_NUM_PKTS_DROPPED
(
DROP_PKTS_CNT
),
ap
->
regs
+
A_TP_TX_DROP_CONFIG
);
}
}
}
}
...
@@ -61,6 +58,7 @@ void t1_tp_destroy(struct petp *tp)
...
@@ -61,6 +58,7 @@ void t1_tp_destroy(struct petp *tp)
struct
petp
*
__devinit
t1_tp_create
(
adapter_t
*
adapter
,
struct
tp_params
*
p
)
struct
petp
*
__devinit
t1_tp_create
(
adapter_t
*
adapter
,
struct
tp_params
*
p
)
{
{
struct
petp
*
tp
=
kzalloc
(
sizeof
(
*
tp
),
GFP_KERNEL
);
struct
petp
*
tp
=
kzalloc
(
sizeof
(
*
tp
),
GFP_KERNEL
);
if
(
!
tp
)
if
(
!
tp
)
return
NULL
;
return
NULL
;
...
...
drivers/net/chelsio/vsc7326.c
View file @
356bd146
...
@@ -234,14 +234,14 @@ static void run_table(adapter_t *adapter, struct init_table *ib, int len)
...
@@ -234,14 +234,14 @@ static void run_table(adapter_t *adapter, struct init_table *ib, int len)
static
int
bist_rd
(
adapter_t
*
adapter
,
int
moduleid
,
int
address
)
static
int
bist_rd
(
adapter_t
*
adapter
,
int
moduleid
,
int
address
)
{
{
int
data
=
0
;
int
data
=
0
;
u32
result
=
0
;
u32
result
=
0
;
if
(
(
address
!=
0x0
)
&&
if
(
(
address
!=
0x0
)
&&
(
address
!=
0x1
)
&&
(
address
!=
0x1
)
&&
(
address
!=
0x2
)
&&
(
address
!=
0x2
)
&&
(
address
!=
0xd
)
&&
(
address
!=
0xd
)
&&
(
address
!=
0xe
))
(
address
!=
0xe
))
CH_ERR
(
"No bist address: 0x%x
\n
"
,
address
);
CH_ERR
(
"No bist address: 0x%x
\n
"
,
address
);
data
=
((
0x00
<<
24
)
|
((
address
&
0xff
)
<<
16
)
|
(
0x00
<<
8
)
|
data
=
((
0x00
<<
24
)
|
((
address
&
0xff
)
<<
16
)
|
(
0x00
<<
8
)
|
...
@@ -251,9 +251,9 @@ static int bist_rd(adapter_t *adapter, int moduleid, int address)
...
@@ -251,9 +251,9 @@ static int bist_rd(adapter_t *adapter, int moduleid, int address)
udelay
(
10
);
udelay
(
10
);
vsc_read
(
adapter
,
REG_RAM_BIST_RESULT
,
&
result
);
vsc_read
(
adapter
,
REG_RAM_BIST_RESULT
,
&
result
);
if
((
result
&
(
1
<<
9
))
!=
0x0
)
if
((
result
&
(
1
<<
9
))
!=
0x0
)
CH_ERR
(
"Still in bist read: 0x%x
\n
"
,
result
);
CH_ERR
(
"Still in bist read: 0x%x
\n
"
,
result
);
else
if
((
result
&
(
1
<<
8
))
!=
0x0
)
else
if
((
result
&
(
1
<<
8
))
!=
0x0
)
CH_ERR
(
"bist read error: 0x%x
\n
"
,
result
);
CH_ERR
(
"bist read error: 0x%x
\n
"
,
result
);
return
(
result
&
0xff
);
return
(
result
&
0xff
);
...
@@ -261,17 +261,17 @@ static int bist_rd(adapter_t *adapter, int moduleid, int address)
...
@@ -261,17 +261,17 @@ static int bist_rd(adapter_t *adapter, int moduleid, int address)
static
int
bist_wr
(
adapter_t
*
adapter
,
int
moduleid
,
int
address
,
int
value
)
static
int
bist_wr
(
adapter_t
*
adapter
,
int
moduleid
,
int
address
,
int
value
)
{
{
int
data
=
0
;
int
data
=
0
;
u32
result
=
0
;
u32
result
=
0
;
if
(
(
address
!=
0x0
)
&&
if
(
(
address
!=
0x0
)
&&
(
address
!=
0x1
)
&&
(
address
!=
0x1
)
&&
(
address
!=
0x2
)
&&
(
address
!=
0x2
)
&&
(
address
!=
0xd
)
&&
(
address
!=
0xd
)
&&
(
address
!=
0xe
))
(
address
!=
0xe
))
CH_ERR
(
"No bist address: 0x%x
\n
"
,
address
);
CH_ERR
(
"No bist address: 0x%x
\n
"
,
address
);
if
(
value
>
255
)
if
(
value
>
255
)
CH_ERR
(
"Suspicious write out of range value: 0x%x
\n
"
,
value
);
CH_ERR
(
"Suspicious write out of range value: 0x%x
\n
"
,
value
);
data
=
((
0x01
<<
24
)
|
((
address
&
0xff
)
<<
16
)
|
(
value
<<
8
)
|
data
=
((
0x01
<<
24
)
|
((
address
&
0xff
)
<<
16
)
|
(
value
<<
8
)
|
...
@@ -281,9 +281,9 @@ static int bist_wr(adapter_t *adapter, int moduleid, int address, int value)
...
@@ -281,9 +281,9 @@ static int bist_wr(adapter_t *adapter, int moduleid, int address, int value)
udelay
(
5
);
udelay
(
5
);
vsc_read
(
adapter
,
REG_RAM_BIST_CMD
,
&
result
);
vsc_read
(
adapter
,
REG_RAM_BIST_CMD
,
&
result
);
if
((
result
&
(
1
<<
27
))
!=
0x0
)
if
((
result
&
(
1
<<
27
))
!=
0x0
)
CH_ERR
(
"Still in bist write: 0x%x
\n
"
,
result
);
CH_ERR
(
"Still in bist write: 0x%x
\n
"
,
result
);
else
if
((
result
&
(
1
<<
26
))
!=
0x0
)
else
if
((
result
&
(
1
<<
26
))
!=
0x0
)
CH_ERR
(
"bist write error: 0x%x
\n
"
,
result
);
CH_ERR
(
"bist write error: 0x%x
\n
"
,
result
);
return
0
;
return
0
;
...
@@ -321,15 +321,14 @@ static int enable_mem(adapter_t *adapter, int moduleid)
...
@@ -321,15 +321,14 @@ static int enable_mem(adapter_t *adapter, int moduleid)
static
int
run_bist_all
(
adapter_t
*
adapter
)
static
int
run_bist_all
(
adapter_t
*
adapter
)
{
{
int
port
=
0
;
int
port
=
0
;
u32
val
=
0
;
u32
val
=
0
;
vsc_write
(
adapter
,
REG_MEM_BIST
,
0x5
);
vsc_write
(
adapter
,
REG_MEM_BIST
,
0x5
);
vsc_read
(
adapter
,
REG_MEM_BIST
,
&
val
);
vsc_read
(
adapter
,
REG_MEM_BIST
,
&
val
);
for
(
port
=
0
;
port
<
12
;
port
++
){
for
(
port
=
0
;
port
<
12
;
port
++
)
vsc_write
(
adapter
,
REG_DEV_SETUP
(
port
),
0x0
);
vsc_write
(
adapter
,
REG_DEV_SETUP
(
port
),
0x0
);
}
udelay
(
300
);
udelay
(
300
);
vsc_write
(
adapter
,
REG_SPI4_MISC
,
0x00040409
);
vsc_write
(
adapter
,
REG_SPI4_MISC
,
0x00040409
);
...
@@ -352,9 +351,9 @@ static int run_bist_all(adapter_t *adapter)
...
@@ -352,9 +351,9 @@ static int run_bist_all(adapter_t *adapter)
udelay
(
300
);
udelay
(
300
);
vsc_write
(
adapter
,
REG_SPI4_MISC
,
0x60040400
);
vsc_write
(
adapter
,
REG_SPI4_MISC
,
0x60040400
);
udelay
(
300
);
udelay
(
300
);
for
(
port
=
0
;
port
<
12
;
port
++
){
for
(
port
=
0
;
port
<
12
;
port
++
)
vsc_write
(
adapter
,
REG_DEV_SETUP
(
port
),
0x1
);
vsc_write
(
adapter
,
REG_DEV_SETUP
(
port
),
0x1
);
}
udelay
(
300
);
udelay
(
300
);
vsc_write
(
adapter
,
REG_MEM_BIST
,
0x0
);
vsc_write
(
adapter
,
REG_MEM_BIST
,
0x0
);
mdelay
(
10
);
mdelay
(
10
);
...
@@ -612,7 +611,7 @@ static void port_stats_update(struct cmac *mac)
...
@@ -612,7 +611,7 @@ static void port_stats_update(struct cmac *mac)
rmon_update
(
mac
,
REG_RX_SYMBOL_CARRIER
(
port
),
rmon_update
(
mac
,
REG_RX_SYMBOL_CARRIER
(
port
),
&
mac
->
stats
.
RxSymbolErrors
);
&
mac
->
stats
.
RxSymbolErrors
);
rmon_update
(
mac
,
REG_RX_SIZE_1519_TO_MAX
(
port
),
rmon_update
(
mac
,
REG_RX_SIZE_1519_TO_MAX
(
port
),
&
mac
->
stats
.
RxJumboFramesOK
);
&
mac
->
stats
.
RxJumboFramesOK
);
/* Tx stats (skip collision stats as we are full-duplex only) */
/* Tx stats (skip collision stats as we are full-duplex only) */
rmon_update
(
mac
,
REG_TX_OK_BYTES
(
port
),
&
mac
->
stats
.
TxOctetsOK
);
rmon_update
(
mac
,
REG_TX_OK_BYTES
(
port
),
&
mac
->
stats
.
TxOctetsOK
);
...
@@ -624,7 +623,7 @@ static void port_stats_update(struct cmac *mac)
...
@@ -624,7 +623,7 @@ static void port_stats_update(struct cmac *mac)
rmon_update
(
mac
,
REG_TX_PAUSE
(
port
),
&
mac
->
stats
.
TxPauseFrames
);
rmon_update
(
mac
,
REG_TX_PAUSE
(
port
),
&
mac
->
stats
.
TxPauseFrames
);
rmon_update
(
mac
,
REG_TX_UNDERRUN
(
port
),
&
mac
->
stats
.
TxUnderrun
);
rmon_update
(
mac
,
REG_TX_UNDERRUN
(
port
),
&
mac
->
stats
.
TxUnderrun
);
rmon_update
(
mac
,
REG_TX_SIZE_1519_TO_MAX
(
port
),
rmon_update
(
mac
,
REG_TX_SIZE_1519_TO_MAX
(
port
),
&
mac
->
stats
.
TxJumboFramesOK
);
&
mac
->
stats
.
TxJumboFramesOK
);
}
}
/*
/*
...
...
drivers/net/chelsio/vsc8244.c
View file @
356bd146
...
@@ -54,7 +54,7 @@ enum {
...
@@ -54,7 +54,7 @@ enum {
};
};
#define CFG_CHG_INTR_MASK (VSC_INTR_LINK_CHG | VSC_INTR_NEG_ERR | \
#define CFG_CHG_INTR_MASK (VSC_INTR_LINK_CHG | VSC_INTR_NEG_ERR | \
VSC_INTR_NEG_DONE)
VSC_INTR_NEG_DONE)
#define INTR_MASK (CFG_CHG_INTR_MASK | VSC_INTR_TX_FIFO | VSC_INTR_RX_FIFO | \
#define INTR_MASK (CFG_CHG_INTR_MASK | VSC_INTR_TX_FIFO | VSC_INTR_RX_FIFO | \
VSC_INTR_ENABLE)
VSC_INTR_ENABLE)
...
@@ -94,19 +94,18 @@ static int vsc8244_intr_enable(struct cphy *cphy)
...
@@ -94,19 +94,18 @@ static int vsc8244_intr_enable(struct cphy *cphy)
{
{
simple_mdio_write
(
cphy
,
VSC8244_INTR_ENABLE
,
INTR_MASK
);
simple_mdio_write
(
cphy
,
VSC8244_INTR_ENABLE
,
INTR_MASK
);
/* Enable interrupts through Elmer */
/* Enable interrupts through Elmer */
if
(
t1_is_asic
(
cphy
->
adapter
))
{
if
(
t1_is_asic
(
cphy
->
adapter
))
{
u32
elmer
;
u32
elmer
;
t1_tpi_read
(
cphy
->
adapter
,
A_ELMER0_INT_ENABLE
,
&
elmer
);
t1_tpi_read
(
cphy
->
adapter
,
A_ELMER0_INT_ENABLE
,
&
elmer
);
elmer
|=
ELMER0_GP_BIT1
;
elmer
|=
ELMER0_GP_BIT1
;
if
(
is_T2
(
cphy
->
adapter
))
{
if
(
is_T2
(
cphy
->
adapter
))
elmer
|=
ELMER0_GP_BIT2
|
ELMER0_GP_BIT3
|
ELMER0_GP_BIT4
;
elmer
|=
ELMER0_GP_BIT2
|
ELMER0_GP_BIT3
|
ELMER0_GP_BIT4
;
}
t1_tpi_write
(
cphy
->
adapter
,
A_ELMER0_INT_ENABLE
,
elmer
);
t1_tpi_write
(
cphy
->
adapter
,
A_ELMER0_INT_ENABLE
,
elmer
);
}
}
return
0
;
return
0
;
}
}
static
int
vsc8244_intr_disable
(
struct
cphy
*
cphy
)
static
int
vsc8244_intr_disable
(
struct
cphy
*
cphy
)
...
@@ -118,19 +117,18 @@ static int vsc8244_intr_disable(struct cphy *cphy)
...
@@ -118,19 +117,18 @@ static int vsc8244_intr_disable(struct cphy *cphy)
t1_tpi_read
(
cphy
->
adapter
,
A_ELMER0_INT_ENABLE
,
&
elmer
);
t1_tpi_read
(
cphy
->
adapter
,
A_ELMER0_INT_ENABLE
,
&
elmer
);
elmer
&=
~
ELMER0_GP_BIT1
;
elmer
&=
~
ELMER0_GP_BIT1
;
if
(
is_T2
(
cphy
->
adapter
))
{
if
(
is_T2
(
cphy
->
adapter
))
elmer
&=
~
(
ELMER0_GP_BIT2
|
ELMER0_GP_BIT3
|
ELMER0_GP_BIT4
);
elmer
&=
~
(
ELMER0_GP_BIT2
|
ELMER0_GP_BIT3
|
ELMER0_GP_BIT4
);
}
t1_tpi_write
(
cphy
->
adapter
,
A_ELMER0_INT_ENABLE
,
elmer
);
t1_tpi_write
(
cphy
->
adapter
,
A_ELMER0_INT_ENABLE
,
elmer
);
}
}
return
0
;
return
0
;
}
}
static
int
vsc8244_intr_clear
(
struct
cphy
*
cphy
)
static
int
vsc8244_intr_clear
(
struct
cphy
*
cphy
)
{
{
u32
val
;
u32
val
;
u32
elmer
;
u32
elmer
;
/* Clear PHY interrupts by reading the register. */
/* Clear PHY interrupts by reading the register. */
simple_mdio_read
(
cphy
,
VSC8244_INTR_ENABLE
,
&
val
);
simple_mdio_read
(
cphy
,
VSC8244_INTR_ENABLE
,
&
val
);
...
@@ -138,13 +136,12 @@ static int vsc8244_intr_clear(struct cphy *cphy)
...
@@ -138,13 +136,12 @@ static int vsc8244_intr_clear(struct cphy *cphy)
if
(
t1_is_asic
(
cphy
->
adapter
))
{
if
(
t1_is_asic
(
cphy
->
adapter
))
{
t1_tpi_read
(
cphy
->
adapter
,
A_ELMER0_INT_CAUSE
,
&
elmer
);
t1_tpi_read
(
cphy
->
adapter
,
A_ELMER0_INT_CAUSE
,
&
elmer
);
elmer
|=
ELMER0_GP_BIT1
;
elmer
|=
ELMER0_GP_BIT1
;
if
(
is_T2
(
cphy
->
adapter
))
{
if
(
is_T2
(
cphy
->
adapter
))
elmer
|=
ELMER0_GP_BIT2
|
ELMER0_GP_BIT3
|
ELMER0_GP_BIT4
;
elmer
|=
ELMER0_GP_BIT2
|
ELMER0_GP_BIT3
|
ELMER0_GP_BIT4
;
}
t1_tpi_write
(
cphy
->
adapter
,
A_ELMER0_INT_CAUSE
,
elmer
);
t1_tpi_write
(
cphy
->
adapter
,
A_ELMER0_INT_CAUSE
,
elmer
);
}
}
return
0
;
return
0
;
}
}
/*
/*
...
@@ -179,13 +176,13 @@ static int vsc8244_set_speed_duplex(struct cphy *phy, int speed, int duplex)
...
@@ -179,13 +176,13 @@ static int vsc8244_set_speed_duplex(struct cphy *phy, int speed, int duplex)
int
t1_mdio_set_bits
(
struct
cphy
*
phy
,
int
mmd
,
int
reg
,
unsigned
int
bits
)
int
t1_mdio_set_bits
(
struct
cphy
*
phy
,
int
mmd
,
int
reg
,
unsigned
int
bits
)
{
{
int
ret
;
int
ret
;
unsigned
int
val
;
unsigned
int
val
;
ret
=
mdio_read
(
phy
,
mmd
,
reg
,
&
val
);
ret
=
mdio_read
(
phy
,
mmd
,
reg
,
&
val
);
if
(
!
ret
)
if
(
!
ret
)
ret
=
mdio_write
(
phy
,
mmd
,
reg
,
val
|
bits
);
ret
=
mdio_write
(
phy
,
mmd
,
reg
,
val
|
bits
);
return
ret
;
return
ret
;
}
}
static
int
vsc8244_autoneg_enable
(
struct
cphy
*
cphy
)
static
int
vsc8244_autoneg_enable
(
struct
cphy
*
cphy
)
...
@@ -235,7 +232,7 @@ static int vsc8244_advertise(struct cphy *phy, unsigned int advertise_map)
...
@@ -235,7 +232,7 @@ static int vsc8244_advertise(struct cphy *phy, unsigned int advertise_map)
}
}
static
int
vsc8244_get_link_status
(
struct
cphy
*
cphy
,
int
*
link_ok
,
static
int
vsc8244_get_link_status
(
struct
cphy
*
cphy
,
int
*
link_ok
,
int
*
speed
,
int
*
duplex
,
int
*
fc
)
int
*
speed
,
int
*
duplex
,
int
*
fc
)
{
{
unsigned
int
bmcr
,
status
,
lpa
,
adv
;
unsigned
int
bmcr
,
status
,
lpa
,
adv
;
int
err
,
sp
=
-
1
,
dplx
=
-
1
,
pause
=
0
;
int
err
,
sp
=
-
1
,
dplx
=
-
1
,
pause
=
0
;
...
@@ -343,7 +340,8 @@ static struct cphy_ops vsc8244_ops = {
...
@@ -343,7 +340,8 @@ static struct cphy_ops vsc8244_ops = {
.
get_link_status
=
vsc8244_get_link_status
.
get_link_status
=
vsc8244_get_link_status
};
};
static
struct
cphy
*
vsc8244_phy_create
(
adapter_t
*
adapter
,
int
phy_addr
,
struct
mdio_ops
*
mdio_ops
)
static
struct
cphy
*
vsc8244_phy_create
(
adapter_t
*
adapter
,
int
phy_addr
,
struct
mdio_ops
*
mdio_ops
)
{
{
struct
cphy
*
cphy
=
kzalloc
(
sizeof
(
*
cphy
),
GFP_KERNEL
);
struct
cphy
*
cphy
=
kzalloc
(
sizeof
(
*
cphy
),
GFP_KERNEL
);
...
...
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