Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
ff82bbc4
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
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看板
提交
ff82bbc4
编写于
4月 12, 2013
作者:
A
Alex Deucher
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
drm/radeon/kms: add accessors for RCU indirect space
Signed-off-by:
N
Alex Deucher
<
alexander.deucher@amd.com
>
上级
26e2235d
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
22 addition
and
4 deletion
+22
-4
drivers/gpu/drm/radeon/evergreen.c
drivers/gpu/drm/radeon/evergreen.c
+2
-4
drivers/gpu/drm/radeon/r600_reg.h
drivers/gpu/drm/radeon/r600_reg.h
+3
-0
drivers/gpu/drm/radeon/radeon.h
drivers/gpu/drm/radeon/radeon.h
+17
-0
未找到文件。
drivers/gpu/drm/radeon/evergreen.c
浏览文件 @
ff82bbc4
...
...
@@ -3120,10 +3120,8 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
u32
efuse_straps_4
;
u32
efuse_straps_3
;
WREG32
(
RCU_IND_INDEX
,
0x204
);
efuse_straps_4
=
RREG32
(
RCU_IND_DATA
);
WREG32
(
RCU_IND_INDEX
,
0x203
);
efuse_straps_3
=
RREG32
(
RCU_IND_DATA
);
efuse_straps_4
=
RREG32_RCU
(
0x204
);
efuse_straps_3
=
RREG32_RCU
(
0x203
);
tmp
=
(((
efuse_straps_4
&
0xf
)
<<
4
)
|
((
efuse_straps_3
&
0xf0000000
)
>>
28
));
}
else
{
...
...
drivers/gpu/drm/radeon/r600_reg.h
浏览文件 @
ff82bbc4
...
...
@@ -31,6 +31,9 @@
#define R600_PCIE_PORT_INDEX 0x0038
#define R600_PCIE_PORT_DATA 0x003c
#define R600_RCU_INDEX 0x0100
#define R600_RCU_DATA 0x0104
#define R600_MC_VM_FB_LOCATION 0x2180
#define R600_MC_FB_BASE_MASK 0x0000FFFF
#define R600_MC_FB_BASE_SHIFT 0
...
...
drivers/gpu/drm/radeon/radeon.h
浏览文件 @
ff82bbc4
...
...
@@ -1850,6 +1850,8 @@ void cik_mm_wdoorbell(struct radeon_device *rdev, u32 offset, u32 v);
#define WREG32_PCIE_PORT(reg, v) rdev->pciep_wreg(rdev, (reg), (v))
#define RREG32_SMC(reg) tn_smc_rreg(rdev, (reg))
#define WREG32_SMC(reg, v) tn_smc_wreg(rdev, (reg), (v))
#define RREG32_RCU(reg) r600_rcu_rreg(rdev, (reg))
#define WREG32_RCU(reg, v) r600_rcu_wreg(rdev, (reg), (v))
#define WREG32_P(reg, val, mask) \
do { \
uint32_t tmp_ = RREG32(reg); \
...
...
@@ -1906,6 +1908,21 @@ static inline void tn_smc_wreg(struct radeon_device *rdev, u32 reg, u32 v)
WREG32
(
TN_SMC_IND_DATA_0
,
(
v
));
}
static
inline
u32
r600_rcu_rreg
(
struct
radeon_device
*
rdev
,
u32
reg
)
{
u32
r
;
WREG32
(
R600_RCU_INDEX
,
((
reg
)
&
0x1fff
));
r
=
RREG32
(
R600_RCU_DATA
);
return
r
;
}
static
inline
void
r600_rcu_wreg
(
struct
radeon_device
*
rdev
,
u32
reg
,
u32
v
)
{
WREG32
(
R600_RCU_INDEX
,
((
reg
)
&
0x1fff
));
WREG32
(
R600_RCU_DATA
,
(
v
));
}
void
r100_pll_errata_after_index
(
struct
radeon_device
*
rdev
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录