Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
d0875edd
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 3 年多
通知
13
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看板
提交
d0875edd
编写于
7月 23, 2010
作者:
B
Ben Skeggs
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
drm/nv50: add function to control GPIO IRQ reporting
Signed-off-by:
N
Ben Skeggs
<
bskeggs@redhat.com
>
上级
49eed80a
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
35 addition
and
18 deletion
+35
-18
drivers/gpu/drm/nouveau/nouveau_drv.h
drivers/gpu/drm/nouveau/nouveau_drv.h
+1
-0
drivers/gpu/drm/nouveau/nv50_display.c
drivers/gpu/drm/nouveau/nv50_display.c
+2
-18
drivers/gpu/drm/nouveau/nv50_gpio.c
drivers/gpu/drm/nouveau/nv50_gpio.c
+19
-0
drivers/gpu/drm/nouveau/nv50_mc.c
drivers/gpu/drm/nouveau/nv50_mc.c
+13
-0
未找到文件。
drivers/gpu/drm/nouveau/nouveau_drv.h
浏览文件 @
d0875edd
...
...
@@ -1140,6 +1140,7 @@ int nv17_gpio_set(struct drm_device *dev, enum dcb_gpio_tag tag, int state);
/* nv50_gpio.c */
int
nv50_gpio_get
(
struct
drm_device
*
dev
,
enum
dcb_gpio_tag
tag
);
int
nv50_gpio_set
(
struct
drm_device
*
dev
,
enum
dcb_gpio_tag
tag
,
int
state
);
void
nv50_gpio_irq_enable
(
struct
drm_device
*
,
enum
dcb_gpio_tag
,
bool
on
);
/* nv50_calc. */
int
nv50_calc_pll
(
struct
drm_device
*
,
struct
pll_lims
*
,
int
clk
,
...
...
drivers/gpu/drm/nouveau/nv50_display.c
浏览文件 @
d0875edd
...
...
@@ -184,7 +184,7 @@ nv50_display_init(struct drm_device *dev)
struct
nouveau_timer_engine
*
ptimer
=
&
dev_priv
->
engine
.
timer
;
struct
nouveau_channel
*
evo
=
dev_priv
->
evo
;
struct
drm_connector
*
connector
;
uint32_t
val
,
ram_amount
,
hpd_en
[
2
]
;
uint32_t
val
,
ram_amount
;
uint64_t
start
;
int
ret
,
i
;
...
...
@@ -365,26 +365,10 @@ nv50_display_init(struct drm_device *dev)
NV50_PDISPLAY_INTR_EN_CLK_UNK40
));
/* enable hotplug interrupts */
hpd_en
[
0
]
=
hpd_en
[
1
]
=
0
;
list_for_each_entry
(
connector
,
&
dev
->
mode_config
.
connector_list
,
head
)
{
struct
nouveau_connector
*
conn
=
nouveau_connector
(
connector
);
struct
dcb_gpio_entry
*
gpio
;
if
(
conn
->
dcb
->
gpio_tag
==
0xff
)
continue
;
gpio
=
nouveau_bios_gpio_entry
(
dev
,
conn
->
dcb
->
gpio_tag
);
if
(
!
gpio
)
continue
;
hpd_en
[
gpio
->
line
>>
4
]
|=
(
0x00010001
<<
(
gpio
->
line
&
0xf
));
}
nv_wr32
(
dev
,
0xe054
,
0xffffffff
);
nv_wr32
(
dev
,
0xe050
,
hpd_en
[
0
]);
if
(
dev_priv
->
chipset
>=
0x90
)
{
nv_wr32
(
dev
,
0xe074
,
0xffffffff
);
nv_wr32
(
dev
,
0xe070
,
hpd_en
[
1
]);
nv50_gpio_irq_enable
(
dev
,
conn
->
dcb
->
gpio_tag
,
true
);
}
return
0
;
...
...
drivers/gpu/drm/nouveau/nv50_gpio.c
浏览文件 @
d0875edd
...
...
@@ -74,3 +74,22 @@ nv50_gpio_set(struct drm_device *dev, enum dcb_gpio_tag tag, int state)
nv_wr32
(
dev
,
r
,
v
);
return
0
;
}
void
nv50_gpio_irq_enable
(
struct
drm_device
*
dev
,
enum
dcb_gpio_tag
tag
,
bool
on
)
{
struct
dcb_gpio_entry
*
gpio
;
u32
reg
,
mask
;
gpio
=
nouveau_bios_gpio_entry
(
dev
,
tag
);
if
(
!
gpio
)
{
NV_ERROR
(
dev
,
"gpio tag 0x%02x not found
\n
"
,
tag
);
return
;
}
reg
=
gpio
->
line
<
16
?
0xe050
:
0xe070
;
mask
=
0x00010001
<<
(
gpio
->
line
&
0xf
);
nv_wr32
(
dev
,
reg
+
4
,
mask
);
nv_mask
(
dev
,
reg
+
0
,
mask
,
on
?
mask
:
0
);
}
drivers/gpu/drm/nouveau/nv50_mc.c
浏览文件 @
d0875edd
...
...
@@ -31,7 +31,20 @@
int
nv50_mc_init
(
struct
drm_device
*
dev
)
{
struct
drm_nouveau_private
*
dev_priv
=
dev
->
dev_private
;
nv_wr32
(
dev
,
NV03_PMC_ENABLE
,
0xFFFFFFFF
);
/* disable, and ack any pending gpio interrupts
* XXX doesn't technically belong here, but it'll do for the moment
*/
nv_wr32
(
dev
,
0xe050
,
0x00000000
);
nv_wr32
(
dev
,
0xe054
,
0xffffffff
);
if
(
dev_priv
->
chipset
>=
0x90
)
{
nv_wr32
(
dev
,
0xe070
,
0x00000000
);
nv_wr32
(
dev
,
0xe074
,
0xffffffff
);
}
return
0
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录