Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
23fc09ee
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看板
提交
23fc09ee
编写于
2月 03, 2013
作者:
B
Ben Skeggs
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
drm/nouveau/drm: store full dcb gpio function data in connector
Signed-off-by:
N
Ben Skeggs
<
bskeggs@redhat.com
>
上级
e18c080f
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
17 addition
and
12 deletion
+17
-12
drivers/gpu/drm/nouveau/nouveau_connector.c
drivers/gpu/drm/nouveau/nouveau_connector.c
+9
-7
drivers/gpu/drm/nouveau/nouveau_connector.h
drivers/gpu/drm/nouveau/nouveau_connector.h
+4
-1
drivers/gpu/drm/nouveau/nouveau_display.c
drivers/gpu/drm/nouveau/nouveau_display.c
+2
-2
drivers/gpu/drm/nouveau/nouveau_dp.c
drivers/gpu/drm/nouveau/nouveau_dp.c
+2
-2
未找到文件。
drivers/gpu/drm/nouveau/nouveau_connector.c
浏览文件 @
23fc09ee
...
...
@@ -111,8 +111,8 @@ nouveau_connector_destroy(struct drm_connector *connector)
drm
=
nouveau_drm
(
dev
);
gpio
=
nouveau_gpio
(
drm
->
device
);
if
(
gpio
&&
nv_connector
->
hpd
!=
DCB_GPIO_UNUSED
)
{
gpio
->
isr_del
(
gpio
,
0
,
nv_connector
->
hpd
,
0xff
,
if
(
gpio
&&
nv_connector
->
hpd
.
func
!=
DCB_GPIO_UNUSED
)
{
gpio
->
isr_del
(
gpio
,
0
,
nv_connector
->
hpd
.
func
,
0xff
,
nouveau_connector_hotplug
,
connector
);
}
...
...
@@ -976,8 +976,10 @@ nouveau_connector_create(struct drm_device *dev, int index)
if
(
olddcb_conntab
(
dev
)[
3
]
>=
4
)
entry
|=
(
u32
)
ROM16
(
nv_connector
->
dcb
[
2
])
<<
16
;
nv_connector
->
hpd
=
ffs
((
entry
&
0x07033000
)
>>
12
);
nv_connector
->
hpd
=
hpd
[
nv_connector
->
hpd
];
ret
=
gpio
->
find
(
gpio
,
0
,
hpd
[
ffs
((
entry
&
0x07033000
)
>>
12
)],
DCB_GPIO_UNUSED
,
&
nv_connector
->
hpd
);
if
(
ret
)
nv_connector
->
hpd
.
func
=
DCB_GPIO_UNUSED
;
nv_connector
->
type
=
nv_connector
->
dcb
[
0
];
if
(
drm_conntype_from_dcb
(
nv_connector
->
type
)
==
...
...
@@ -1000,7 +1002,7 @@ nouveau_connector_create(struct drm_device *dev, int index)
}
}
else
{
nv_connector
->
type
=
DCB_CONNECTOR_NONE
;
nv_connector
->
hpd
=
DCB_GPIO_UNUSED
;
nv_connector
->
hpd
.
func
=
DCB_GPIO_UNUSED
;
}
/* no vbios data, or an unknown dcb connector type - attempt to
...
...
@@ -1127,8 +1129,8 @@ nouveau_connector_create(struct drm_device *dev, int index)
}
connector
->
polled
=
DRM_CONNECTOR_POLL_CONNECT
;
if
(
gpio
&&
nv_connector
->
hpd
!=
DCB_GPIO_UNUSED
)
{
ret
=
gpio
->
isr_add
(
gpio
,
0
,
nv_connector
->
hpd
,
0xff
,
if
(
gpio
&&
nv_connector
->
hpd
.
func
!=
DCB_GPIO_UNUSED
)
{
ret
=
gpio
->
isr_add
(
gpio
,
0
,
nv_connector
->
hpd
.
func
,
0xff
,
nouveau_connector_hotplug
,
connector
);
if
(
ret
==
0
)
connector
->
polled
=
DRM_CONNECTOR_POLL_HPD
;
...
...
drivers/gpu/drm/nouveau/nouveau_connector.h
浏览文件 @
23fc09ee
...
...
@@ -30,6 +30,9 @@
#include <drm/drm_edid.h>
#include "nouveau_crtc.h"
#include <subdev/bios.h>
#include <subdev/bios/gpio.h>
struct
nouveau_i2c_port
;
enum
nouveau_underscan_type
{
...
...
@@ -59,9 +62,9 @@ enum nouveau_dithering_depth {
struct
nouveau_connector
{
struct
drm_connector
base
;
enum
dcb_connector_type
type
;
struct
dcb_gpio_func
hpd
;
u8
index
;
u8
*
dcb
;
u8
hpd
;
int
dithering_mode
;
int
dithering_depth
;
...
...
drivers/gpu/drm/nouveau/nouveau_display.c
浏览文件 @
23fc09ee
...
...
@@ -234,7 +234,7 @@ nouveau_display_init(struct drm_device *dev)
list_for_each_entry
(
connector
,
&
dev
->
mode_config
.
connector_list
,
head
)
{
struct
nouveau_connector
*
conn
=
nouveau_connector
(
connector
);
if
(
gpio
)
gpio
->
irq
(
gpio
,
0
,
conn
->
hpd
,
0xff
,
true
);
gpio
->
irq
(
gpio
,
0
,
conn
->
hpd
.
func
,
0xff
,
true
);
}
return
ret
;
...
...
@@ -252,7 +252,7 @@ nouveau_display_fini(struct drm_device *dev)
list_for_each_entry
(
connector
,
&
dev
->
mode_config
.
connector_list
,
head
)
{
struct
nouveau_connector
*
conn
=
nouveau_connector
(
connector
);
if
(
gpio
)
gpio
->
irq
(
gpio
,
0
,
conn
->
hpd
,
0xff
,
false
);
gpio
->
irq
(
gpio
,
0
,
conn
->
hpd
.
func
,
0xff
,
false
);
}
drm_kms_helper_poll_disable
(
dev
);
...
...
drivers/gpu/drm/nouveau/nouveau_dp.c
浏览文件 @
23fc09ee
...
...
@@ -260,7 +260,7 @@ nouveau_dp_link_train(struct drm_encoder *encoder, u32 datarate,
* we take during link training (DP_SET_POWER is one), we need
* to ignore them for the moment to avoid races.
*/
gpio
->
irq
(
gpio
,
0
,
nv_connector
->
hpd
,
0xff
,
false
);
gpio
->
irq
(
gpio
,
0
,
nv_connector
->
hpd
.
func
,
0xff
,
false
);
/* enable down-spreading and execute pre-train script from vbios */
dp_link_train_init
(
dev
,
&
dp
,
nv_encoder
->
dp
.
dpcd
[
3
]
&
1
);
...
...
@@ -300,7 +300,7 @@ nouveau_dp_link_train(struct drm_encoder *encoder, u32 datarate,
dp_link_train_fini
(
dev
,
&
dp
);
/* re-enable hotplug detect */
gpio
->
irq
(
gpio
,
0
,
nv_connector
->
hpd
,
0xff
,
true
);
gpio
->
irq
(
gpio
,
0
,
nv_connector
->
hpd
.
func
,
0xff
,
true
);
return
true
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录