Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
96d76851
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 大约 4 年
通知
14
Star
8
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kernel_linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
96d76851
编写于
1月 13, 2008
作者:
A
Al Viro
提交者:
Jeff Garzik
1月 18, 2008
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
dl2k: BMSR fixes
Signed-off-by:
N
Al Viro
<
viro@zeniv.linux.org.uk
>
Signed-off-by:
N
Jeff Garzik
<
jeff@garzik.org
>
上级
21b645e4
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
16 addition
and
38 deletion
+16
-38
drivers/net/dl2k.c
drivers/net/dl2k.c
+16
-16
drivers/net/dl2k.h
drivers/net/dl2k.h
+0
-22
未找到文件。
drivers/net/dl2k.c
浏览文件 @
96d76851
...
...
@@ -1435,7 +1435,7 @@ mii_write (struct net_device *dev, int phy_addr, int reg_num, u16 data)
static
int
mii_wait_link
(
struct
net_device
*
dev
,
int
wait
)
{
BMSR_t
bmsr
;
__u16
bmsr
;
int
phy_addr
;
struct
netdev_private
*
np
;
...
...
@@ -1443,8 +1443,8 @@ mii_wait_link (struct net_device *dev, int wait)
phy_addr
=
np
->
phy_addr
;
do
{
bmsr
.
image
=
mii_read
(
dev
,
phy_addr
,
MII_BMSR
);
if
(
bmsr
.
bits
.
link_status
)
bmsr
=
mii_read
(
dev
,
phy_addr
,
MII_BMSR
);
if
(
bmsr
&
MII_BMSR_LINK_STATUS
)
return
0
;
mdelay
(
1
);
}
while
(
--
wait
>
0
);
...
...
@@ -1454,7 +1454,7 @@ static int
mii_get_media
(
struct
net_device
*
dev
)
{
__u16
negotiate
;
BMSR_t
bmsr
;
__u16
bmsr
;
MSCR_t
mscr
;
MSSR_t
mssr
;
int
phy_addr
;
...
...
@@ -1463,9 +1463,9 @@ mii_get_media (struct net_device *dev)
np
=
netdev_priv
(
dev
);
phy_addr
=
np
->
phy_addr
;
bmsr
.
image
=
mii_read
(
dev
,
phy_addr
,
MII_BMSR
);
bmsr
=
mii_read
(
dev
,
phy_addr
,
MII_BMSR
);
if
(
np
->
an_enable
)
{
if
(
!
bmsr
.
bits
.
an_complete
)
{
if
(
!
(
bmsr
&
MII_BMSR_AN_COMPLETE
)
)
{
/* Auto-Negotiation not completed */
return
-
1
;
}
...
...
@@ -1541,7 +1541,7 @@ mii_set_media (struct net_device *dev)
{
PHY_SCR_t
pscr
;
__u16
bmcr
;
BMSR_t
bmsr
;
__u16
bmsr
;
__u16
anar
;
int
phy_addr
;
struct
netdev_private
*
np
;
...
...
@@ -1551,22 +1551,22 @@ mii_set_media (struct net_device *dev)
/* Does user set speed? */
if
(
np
->
an_enable
)
{
/* Advertise capabilities */
bmsr
.
image
=
mii_read
(
dev
,
phy_addr
,
MII_BMSR
);
bmsr
=
mii_read
(
dev
,
phy_addr
,
MII_BMSR
);
anar
=
mii_read
(
dev
,
phy_addr
,
MII_ANAR
)
&
~
MII_ANAR_100BX_FD
&
~
MII_ANAR_100BX_HD
&
~
MII_ANAR_100BT4
&
~
MII_ANAR_10BT_FD
&
~
MII_ANAR_10BT_HD
;
if
(
bmsr
.
bits
.
media
_100BX_FD
)
if
(
bmsr
&
MII_BMSR
_100BX_FD
)
anar
|=
MII_ANAR_100BX_FD
;
if
(
bmsr
.
bits
.
media
_100BX_HD
)
if
(
bmsr
&
MII_BMSR
_100BX_HD
)
anar
|=
MII_ANAR_100BX_HD
;
if
(
bmsr
.
bits
.
media
_100BT4
)
if
(
bmsr
&
MII_BMSR
_100BT4
)
anar
|=
MII_ANAR_100BT4
;
if
(
bmsr
.
bits
.
media
_10BT_FD
)
if
(
bmsr
&
MII_BMSR
_10BT_FD
)
anar
|=
MII_ANAR_10BT_FD
;
if
(
bmsr
.
bits
.
media
_10BT_HD
)
if
(
bmsr
&
MII_BMSR
_10BT_HD
)
anar
|=
MII_ANAR_10BT_HD
;
anar
|=
MII_ANAR_PAUSE
|
MII_ANAR_ASYMMETRIC
;
mii_write
(
dev
,
phy_addr
,
MII_ANAR
,
anar
);
...
...
@@ -1631,16 +1631,16 @@ static int
mii_get_media_pcs
(
struct
net_device
*
dev
)
{
__u16
negotiate
;
BMSR_t
bmsr
;
__u16
bmsr
;
int
phy_addr
;
struct
netdev_private
*
np
;
np
=
netdev_priv
(
dev
);
phy_addr
=
np
->
phy_addr
;
bmsr
.
image
=
mii_read
(
dev
,
phy_addr
,
PCS_BMSR
);
bmsr
=
mii_read
(
dev
,
phy_addr
,
PCS_BMSR
);
if
(
np
->
an_enable
)
{
if
(
!
bmsr
.
bits
.
an_complete
)
{
if
(
!
(
bmsr
&
MII_BMSR_AN_COMPLETE
)
)
{
/* Auto-Negotiation not completed */
return
-
1
;
}
...
...
drivers/net/dl2k.h
浏览文件 @
96d76851
...
...
@@ -316,28 +316,6 @@ enum _mii_bmcr {
};
/* Basic Mode Status Register */
typedef
union
t_MII_BMSR
{
u16
image
;
struct
{
u16
ext_capability
:
1
;
// bit 0
u16
japper_detect
:
1
;
// bit 1
u16
link_status
:
1
;
// bit 2
u16
an_ability
:
1
;
// bit 3
u16
remote_fault
:
1
;
// bit 4
u16
an_complete
:
1
;
// bit 5
u16
preamble_supp
:
1
;
// bit 6
u16
_bit_7
:
1
;
// bit 7
u16
ext_status
:
1
;
// bit 8
u16
media_100BT2_HD
:
1
;
// bit 9
u16
media_100BT2_FD
:
1
;
// bit 10
u16
media_10BT_HD
:
1
;
// bit 11
u16
media_10BT_FD
:
1
;
// bit 12
u16
media_100BX_HD
:
1
;
// bit 13
u16
media_100BX_FD
:
1
;
// bit 14
u16
media_100BT4
:
1
;
// bit 15
}
bits
;
}
BMSR_t
,
*
PBMSR_t
;
enum
_mii_bmsr
{
MII_BMSR_100BT4
=
0x8000
,
MII_BMSR_100BX_FD
=
0x4000
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录