Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
1a29cc40
cloud-kernel
项目概览
openanolis
/
cloud-kernel
接近 2 年 前同步成功
通知
170
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
1a29cc40
编写于
12月 06, 2010
作者:
B
Ben Hutchings
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
sfc: Add compile-time checks for correctness of paged register writes
Signed-off-by:
N
Ben Hutchings
<
bhutchings@solarflare.com
>
上级
494bdf1b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
23 addition
and
8 deletion
+23
-8
drivers/net/sfc/io.h
drivers/net/sfc/io.h
+23
-8
未找到文件。
drivers/net/sfc/io.h
浏览文件 @
1a29cc40
...
...
@@ -226,29 +226,40 @@ static inline void efx_readd_table(struct efx_nic *efx, efx_dword_t *value,
((page) * EFX_PAGE_BLOCK_SIZE + (reg))
/* Write the whole of RX_DESC_UPD or TX_DESC_UPD */
static
inline
void
efx_writeo_page
(
struct
efx_nic
*
efx
,
efx_oword_t
*
value
,
unsigned
int
reg
,
unsigned
int
page
)
static
inline
void
_
efx_writeo_page
(
struct
efx_nic
*
efx
,
efx_oword_t
*
value
,
unsigned
int
reg
,
unsigned
int
page
)
{
efx_writeo
(
efx
,
value
,
EFX_PAGED_REG
(
page
,
reg
));
}
#define efx_writeo_page(efx, value, reg, page) \
_efx_writeo_page(efx, value, \
reg + \
BUILD_BUG_ON_ZERO((reg) != 0x830 && (reg) != 0xa10), \
page)
/* Write a page-mapped 32-bit CSR (EVQ_RPTR or the high bits of
* RX_DESC_UPD or TX_DESC_UPD)
*/
static
inline
void
efx_writed_page
(
struct
efx_nic
*
efx
,
efx_dword_t
*
value
,
unsigned
int
reg
,
unsigned
int
page
)
static
inline
void
_
efx_writed_page
(
struct
efx_nic
*
efx
,
efx_dword_t
*
value
,
unsigned
int
reg
,
unsigned
int
page
)
{
efx_writed
(
efx
,
value
,
EFX_PAGED_REG
(
page
,
reg
));
}
#define efx_writed_page(efx, value, reg, page) \
_efx_writed_page(efx, value, \
reg + \
BUILD_BUG_ON_ZERO((reg) != 0x400 && (reg) != 0x83c \
&& (reg) != 0xa1c), \
page)
/* Write TIMER_COMMAND. This is a page-mapped 32-bit CSR, but a bug
* in the BIU means that writes to TIMER_COMMAND[0] invalidate the
* collector register.
*/
static
inline
void
efx_writed_page_locked
(
struct
efx_nic
*
efx
,
efx_dword_t
*
value
,
unsigned
int
reg
,
unsigned
int
page
)
static
inline
void
_
efx_writed_page_locked
(
struct
efx_nic
*
efx
,
efx_dword_t
*
value
,
unsigned
int
reg
,
unsigned
int
page
)
{
unsigned
long
flags
__attribute__
((
unused
));
...
...
@@ -260,5 +271,9 @@ static inline void efx_writed_page_locked(struct efx_nic *efx,
efx_writed
(
efx
,
value
,
EFX_PAGED_REG
(
page
,
reg
));
}
}
#define efx_writed_page_locked(efx, value, reg, page) \
_efx_writed_page_locked(efx, value, \
reg + BUILD_BUG_ON_ZERO((reg) != 0x420), \
page)
#endif
/* EFX_IO_H */
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录