Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
0ac225e5
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看板
提交
0ac225e5
编写于
9月 28, 2011
作者:
K
Keith Packard
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'drm-intel-fixes' into drm-intel-next
上级
64a742fa
cd0de039
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
41 addition
and
66 deletion
+41
-66
drivers/gpu/drm/i915/i915_drv.c
drivers/gpu/drm/i915/i915_drv.c
+2
-2
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_display.c
+10
-2
drivers/gpu/drm/i915/intel_drv.h
drivers/gpu/drm/i915/intel_drv.h
+0
-3
drivers/gpu/drm/i915/intel_sdvo.c
drivers/gpu/drm/i915/intel_sdvo.c
+29
-59
未找到文件。
drivers/gpu/drm/i915/i915_drv.c
浏览文件 @
0ac225e5
...
...
@@ -67,11 +67,11 @@ module_param_named(i915_enable_rc6, i915_enable_rc6, int, 0600);
MODULE_PARM_DESC
(
i915_enable_rc6
,
"Enable power-saving render C-state 6 (default: true)"
);
unsigned
int
i915_enable_fbc
__read_mostly
=
1
;
unsigned
int
i915_enable_fbc
__read_mostly
=
-
1
;
module_param_named
(
i915_enable_fbc
,
i915_enable_fbc
,
int
,
0600
);
MODULE_PARM_DESC
(
i915_enable_fbc
,
"Enable frame buffer compression for power savings "
"(default:
false
)"
);
"(default:
-1 (use per-chip default)
)"
);
unsigned
int
i915_lvds_downclock
__read_mostly
=
0
;
module_param_named
(
lvds_downclock
,
i915_lvds_downclock
,
int
,
0400
);
...
...
drivers/gpu/drm/i915/intel_display.c
浏览文件 @
0ac225e5
...
...
@@ -1800,6 +1800,7 @@ static void intel_update_fbc(struct drm_device *dev)
struct
drm_framebuffer
*
fb
;
struct
intel_framebuffer
*
intel_fb
;
struct
drm_i915_gem_object
*
obj
;
int
enable_fbc
;
DRM_DEBUG_KMS
(
"
\n
"
);
...
...
@@ -1840,8 +1841,15 @@ static void intel_update_fbc(struct drm_device *dev)
intel_fb
=
to_intel_framebuffer
(
fb
);
obj
=
intel_fb
->
obj
;
if
(
!
i915_enable_fbc
)
{
DRM_DEBUG_KMS
(
"fbc disabled per module param (default off)
\n
"
);
enable_fbc
=
i915_enable_fbc
;
if
(
enable_fbc
<
0
)
{
DRM_DEBUG_KMS
(
"fbc set to per-chip default
\n
"
);
enable_fbc
=
1
;
if
(
INTEL_INFO
(
dev
)
->
gen
<=
5
)
enable_fbc
=
0
;
}
if
(
!
enable_fbc
)
{
DRM_DEBUG_KMS
(
"fbc disabled per module param
\n
"
);
dev_priv
->
no_fbc_reason
=
FBC_MODULE_PARAM
;
goto
out_disable
;
}
...
...
drivers/gpu/drm/i915/intel_drv.h
浏览文件 @
0ac225e5
...
...
@@ -337,9 +337,6 @@ extern void intel_release_load_detect_pipe(struct intel_encoder *intel_encoder,
struct
drm_connector
*
connector
,
struct
intel_load_detect_pipe
*
old
);
extern
struct
drm_connector
*
intel_sdvo_find
(
struct
drm_device
*
dev
,
int
sdvoB
);
extern
int
intel_sdvo_supports_hotplug
(
struct
drm_connector
*
connector
);
extern
void
intel_sdvo_set_hotplug
(
struct
drm_connector
*
connector
,
int
enable
);
extern
void
intelfb_restore
(
void
);
extern
void
intel_crtc_fb_gamma_set
(
struct
drm_crtc
*
crtc
,
u16
red
,
u16
green
,
u16
blue
,
int
regno
);
...
...
drivers/gpu/drm/i915/intel_sdvo.c
浏览文件 @
0ac225e5
...
...
@@ -92,6 +92,11 @@ struct intel_sdvo {
*/
uint16_t
attached_output
;
/*
* Hotplug activation bits for this device
*/
uint8_t
hotplug_active
[
2
];
/**
* This is used to select the color range of RBG outputs in HDMI mode.
* It is only valid when using TMDS encoding and 8 bit per color mode.
...
...
@@ -1208,74 +1213,20 @@ static bool intel_sdvo_get_capabilities(struct intel_sdvo *intel_sdvo, struct in
return
true
;
}
/* No use! */
#if 0
struct drm_connector* intel_sdvo_find(struct drm_device *dev, int sdvoB)
{
struct drm_connector *connector = NULL;
struct intel_sdvo *iout = NULL;
struct intel_sdvo *sdvo;
/* find the sdvo connector */
list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
iout = to_intel_sdvo(connector);
if (iout->type != INTEL_OUTPUT_SDVO)
continue;
sdvo = iout->dev_priv;
if (sdvo->sdvo_reg == SDVOB && sdvoB)
return connector;
if (sdvo->sdvo_reg == SDVOC && !sdvoB)
return connector;
}
return NULL;
}
int intel_sdvo_supports_hotplug(struct drm_connector *connector)
static
int
intel_sdvo_supports_hotplug
(
struct
intel_sdvo
*
intel_sdvo
)
{
u8
response
[
2
];
u8 status;
struct intel_sdvo *intel_sdvo;
DRM_DEBUG_KMS("\n");
if (!connector)
return 0;
intel_sdvo = to_intel_sdvo(connector);
return
intel_sdvo_get_value
(
intel_sdvo
,
SDVO_CMD_GET_HOT_PLUG_SUPPORT
,
&
response
,
2
)
&&
response
[
0
];
}
void intel_sdvo_set_hotplug(struct drm_connector *connector, int on
)
static
void
intel_sdvo_enable_hotplug
(
struct
intel_encoder
*
encoder
)
{
u8 response[2];
u8 status;
struct intel_sdvo *intel_sdvo = to_intel_sdvo(connector);
intel_sdvo_write_cmd(intel_sdvo, SDVO_CMD_GET_ACTIVE_HOT_PLUG, NULL, 0);
intel_sdvo_read_response(intel_sdvo, &response, 2);
if (on) {
intel_sdvo_write_cmd(intel_sdvo, SDVO_CMD_GET_HOT_PLUG_SUPPORT, NULL, 0);
status = intel_sdvo_read_response(intel_sdvo, &response, 2);
intel_sdvo_write_cmd(intel_sdvo, SDVO_CMD_SET_ACTIVE_HOT_PLUG, &response, 2);
} else {
response[0] = 0;
response[1] = 0;
intel_sdvo_write_cmd(intel_sdvo, SDVO_CMD_SET_ACTIVE_HOT_PLUG, &response, 2);
}
struct
intel_sdvo
*
intel_sdvo
=
to_intel_sdvo
(
&
encoder
->
base
);
intel_sdvo_write_cmd(intel_sdvo, SDVO_CMD_GET_ACTIVE_HOT_PLUG, NULL, 0);
intel_sdvo_read_response(intel_sdvo, &response, 2);
intel_sdvo_write_cmd
(
intel_sdvo
,
SDVO_CMD_SET_ACTIVE_HOT_PLUG
,
&
intel_sdvo
->
hotplug_active
,
2
);
}
#endif
static
bool
intel_sdvo_multifunc_encoder
(
struct
intel_sdvo
*
intel_sdvo
)
...
...
@@ -2045,6 +1996,7 @@ intel_sdvo_dvi_init(struct intel_sdvo *intel_sdvo, int device)
{
struct
drm_encoder
*
encoder
=
&
intel_sdvo
->
base
.
base
;
struct
drm_connector
*
connector
;
struct
intel_encoder
*
intel_encoder
=
to_intel_encoder
(
encoder
);
struct
intel_connector
*
intel_connector
;
struct
intel_sdvo_connector
*
intel_sdvo_connector
;
...
...
@@ -2062,7 +2014,17 @@ intel_sdvo_dvi_init(struct intel_sdvo *intel_sdvo, int device)
intel_connector
=
&
intel_sdvo_connector
->
base
;
connector
=
&
intel_connector
->
base
;
connector
->
polled
=
DRM_CONNECTOR_POLL_CONNECT
|
DRM_CONNECTOR_POLL_DISCONNECT
;
if
(
intel_sdvo_supports_hotplug
(
intel_sdvo
)
&
(
1
<<
device
))
{
connector
->
polled
=
DRM_CONNECTOR_POLL_HPD
;
intel_sdvo
->
hotplug_active
[
0
]
|=
1
<<
device
;
/* Some SDVO devices have one-shot hotplug interrupts.
* Ensure that they get re-enabled when an interrupt happens.
*/
intel_encoder
->
hot_plug
=
intel_sdvo_enable_hotplug
;
intel_sdvo_enable_hotplug
(
intel_encoder
);
}
else
connector
->
polled
=
DRM_CONNECTOR_POLL_CONNECT
|
DRM_CONNECTOR_POLL_DISCONNECT
;
encoder
->
encoder_type
=
DRM_MODE_ENCODER_TMDS
;
connector
->
connector_type
=
DRM_MODE_CONNECTOR_DVID
;
...
...
@@ -2569,6 +2531,14 @@ bool intel_sdvo_init(struct drm_device *dev, int sdvo_reg)
if
(
!
intel_sdvo_get_capabilities
(
intel_sdvo
,
&
intel_sdvo
->
caps
))
goto
err
;
/* Set up hotplug command - note paranoia about contents of reply.
* We assume that the hardware is in a sane state, and only touch
* the bits we think we understand.
*/
intel_sdvo_get_value
(
intel_sdvo
,
SDVO_CMD_GET_ACTIVE_HOT_PLUG
,
&
intel_sdvo
->
hotplug_active
,
2
);
intel_sdvo
->
hotplug_active
[
0
]
&=
~
0x3
;
if
(
intel_sdvo_output_setup
(
intel_sdvo
,
intel_sdvo
->
caps
.
output_flags
)
!=
true
)
{
DRM_DEBUG_KMS
(
"SDVO output failed to setup on SDVO%c
\n
"
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录