Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
c7d74b09
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
c7d74b09
编写于
6月 17, 2011
作者:
R
Roland Dreier
浏览文件
操作
浏览文件
下载
差异文件
Merge branches 'cxgb4' and 'qib' into for-next
上级
8da7e7a5
31264484
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
23 addition
and
8 deletion
+23
-8
drivers/infiniband/hw/qib/qib_iba7322.c
drivers/infiniband/hw/qib/qib_iba7322.c
+18
-7
drivers/infiniband/hw/qib/qib_intr.c
drivers/infiniband/hw/qib/qib_intr.c
+5
-1
未找到文件。
drivers/infiniband/hw/qib/qib_iba7322.c
浏览文件 @
c7d74b09
...
...
@@ -469,6 +469,8 @@ static u8 ib_rate_to_delay[IB_RATE_120_GBPS + 1] = {
#define IB_7322_LT_STATE_RECOVERIDLE 0x0f
#define IB_7322_LT_STATE_CFGENH 0x10
#define IB_7322_LT_STATE_CFGTEST 0x11
#define IB_7322_LT_STATE_CFGWAITRMTTEST 0x12
#define IB_7322_LT_STATE_CFGWAITENH 0x13
/* link state machine states from IBC */
#define IB_7322_L_STATE_DOWN 0x0
...
...
@@ -498,8 +500,10 @@ static const u8 qib_7322_physportstate[0x20] = {
IB_PHYSPORTSTATE_LINK_ERR_RECOVER
,
[
IB_7322_LT_STATE_CFGENH
]
=
IB_PHYSPORTSTATE_CFG_ENH
,
[
IB_7322_LT_STATE_CFGTEST
]
=
IB_PHYSPORTSTATE_CFG_TRAIN
,
[
0x12
]
=
IB_PHYSPORTSTATE_CFG_TRAIN
,
[
0x13
]
=
IB_PHYSPORTSTATE_CFG_WAIT_ENH
,
[
IB_7322_LT_STATE_CFGWAITRMTTEST
]
=
IB_PHYSPORTSTATE_CFG_TRAIN
,
[
IB_7322_LT_STATE_CFGWAITENH
]
=
IB_PHYSPORTSTATE_CFG_WAIT_ENH
,
[
0x14
]
=
IB_PHYSPORTSTATE_CFG_TRAIN
,
[
0x15
]
=
IB_PHYSPORTSTATE_CFG_TRAIN
,
[
0x16
]
=
IB_PHYSPORTSTATE_CFG_TRAIN
,
...
...
@@ -1692,7 +1696,9 @@ static void handle_serdes_issues(struct qib_pportdata *ppd, u64 ibcst)
break
;
}
if
(
ibclt
==
IB_7322_LT_STATE_CFGTEST
&&
if
(((
ibclt
>=
IB_7322_LT_STATE_CFGTEST
&&
ibclt
<=
IB_7322_LT_STATE_CFGWAITENH
)
||
ibclt
==
IB_7322_LT_STATE_LINKUP
)
&&
(
ibcst
&
SYM_MASK
(
IBCStatusA_0
,
LinkSpeedQDR
)))
{
force_h1
(
ppd
);
ppd
->
cpspec
->
qdr_reforce
=
1
;
...
...
@@ -7301,12 +7307,17 @@ static void ibsd_wr_allchans(struct qib_pportdata *ppd, int addr, unsigned data,
static
void
serdes_7322_los_enable
(
struct
qib_pportdata
*
ppd
,
int
enable
)
{
u64
data
=
qib_read_kreg_port
(
ppd
,
krp_serdesctrl
);
printk
(
KERN_INFO
QIB_DRV_NAME
" IB%u:%u Turning LOS %s
\n
"
,
ppd
->
dd
->
unit
,
ppd
->
port
,
(
enable
?
"on"
:
"off"
));
if
(
enable
)
u8
state
=
SYM_FIELD
(
data
,
IBSerdesCtrl_0
,
RXLOSEN
);
if
(
enable
&&
!
state
)
{
printk
(
KERN_INFO
QIB_DRV_NAME
" IB%u:%u Turning LOS on
\n
"
,
ppd
->
dd
->
unit
,
ppd
->
port
);
data
|=
SYM_MASK
(
IBSerdesCtrl_0
,
RXLOSEN
);
else
}
else
if
(
!
enable
&&
state
)
{
printk
(
KERN_INFO
QIB_DRV_NAME
" IB%u:%u Turning LOS off
\n
"
,
ppd
->
dd
->
unit
,
ppd
->
port
);
data
&=
~
SYM_MASK
(
IBSerdesCtrl_0
,
RXLOSEN
);
}
qib_write_kreg_port
(
ppd
,
krp_serdesctrl
,
data
);
}
...
...
drivers/infiniband/hw/qib/qib_intr.c
浏览文件 @
c7d74b09
...
...
@@ -96,8 +96,12 @@ void qib_handle_e_ibstatuschanged(struct qib_pportdata *ppd, u64 ibcs)
* states, or if it transitions from any of the up (INIT or better)
* states into any of the down states (except link recovery), then
* call the chip-specific code to take appropriate actions.
*
* ppd->lflags could be 0 if this is the first time the interrupt
* handlers has been called but the link is already up.
*/
if
(
lstate
>=
IB_PORT_INIT
&&
(
ppd
->
lflags
&
QIBL_LINKDOWN
)
&&
if
(
lstate
>=
IB_PORT_INIT
&&
(
!
ppd
->
lflags
||
(
ppd
->
lflags
&
QIBL_LINKDOWN
))
&&
ltstate
==
IB_PHYSPORTSTATE_LINKUP
)
{
/* transitioned to UP */
if
(
dd
->
f_ib_updown
(
ppd
,
1
,
ibcs
))
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录