提交 d7c1d17d 编写于 作者: H Henrique de Moraes Holschuh 提交者: Len Brown

ACPI: thinkpad-acpi: make the video output feature optional

The video output port control feature is not very useful on many ThinkPads
(especially when a X server is running), and lately userspace is getting
better and better at it, so it makes sense to allow users to stripe out the
thinkpad-acpi video feature from their kernels and save at least 2KB.
Signed-off-by: NHenrique de Moraes Holschuh <hmh@hmh.eng.br>
Signed-off-by: NLen Brown <len.brown@intel.com>
上级 7526696a
...@@ -258,6 +258,23 @@ config THINKPAD_ACPI_BAY ...@@ -258,6 +258,23 @@ config THINKPAD_ACPI_BAY
If you are not sure, say Y here. If you are not sure, say Y here.
config THINKPAD_ACPI_VIDEO
bool "Video output control support"
depends on THINKPAD_ACPI
default y
---help---
Allows the thinkpad_acpi driver to provide an interface to control
the various video output ports.
This feature often won't work well, depending on ThinkPad model,
display state, video output devices in use, whether there is a X
server running, phase of the moon, and the current mood of
Schroedinger's cat. If you can use X.org's RandR to control
your ThinkPad's video output ports instead of this feature,
don't think twice: do it and say N here to save some memory.
If you are not sure, say Y here.
config THINKPAD_ACPI_HOTKEY_POLL config THINKPAD_ACPI_HOTKEY_POLL
bool "Suport NVRAM polling for hot keys" bool "Suport NVRAM polling for hot keys"
depends on THINKPAD_ACPI depends on THINKPAD_ACPI
......
...@@ -301,6 +301,13 @@ TPACPI_HANDLE(hkey, ec, "\\_SB.HKEY", /* 600e/x, 770e, 770x */ ...@@ -301,6 +301,13 @@ TPACPI_HANDLE(hkey, ec, "\\_SB.HKEY", /* 600e/x, 770e, 770x */
"HKEY", /* all others */ "HKEY", /* all others */
); /* 570 */ ); /* 570 */
TPACPI_HANDLE(vid, root, "\\_SB.PCI.AGP.VGA", /* 570 */
"\\_SB.PCI0.AGP0.VID0", /* 600e/x, 770x */
"\\_SB.PCI0.VID0", /* 770e */
"\\_SB.PCI0.VID", /* A21e, G4x, R50e, X30, X40 */
"\\_SB.PCI0.AGP.VID", /* all others */
); /* R30, R31 */
/************************************************************************* /*************************************************************************
* ACPI helpers * ACPI helpers
...@@ -2680,6 +2687,8 @@ static struct ibm_struct wan_driver_data = { ...@@ -2680,6 +2687,8 @@ static struct ibm_struct wan_driver_data = {
* Video subdriver * Video subdriver
*/ */
#ifdef CONFIG_THINKPAD_ACPI_VIDEO
enum video_access_mode { enum video_access_mode {
TPACPI_VIDEO_NONE = 0, TPACPI_VIDEO_NONE = 0,
TPACPI_VIDEO_570, /* 570 */ TPACPI_VIDEO_570, /* 570 */
...@@ -2707,13 +2716,6 @@ static int video_orig_autosw; ...@@ -2707,13 +2716,6 @@ static int video_orig_autosw;
static int video_autosw_get(void); static int video_autosw_get(void);
static int video_autosw_set(int enable); static int video_autosw_set(int enable);
TPACPI_HANDLE(vid, root, "\\_SB.PCI.AGP.VGA", /* 570 */
"\\_SB.PCI0.AGP0.VID0", /* 600e/x, 770x */
"\\_SB.PCI0.VID0", /* 770e */
"\\_SB.PCI0.VID", /* A21e, G4x, R50e, X30, X40 */
"\\_SB.PCI0.AGP.VID", /* all others */
); /* R30, R31 */
TPACPI_HANDLE(vid2, root, "\\_SB.PCI0.AGPB.VID"); /* G41 */ TPACPI_HANDLE(vid2, root, "\\_SB.PCI0.AGPB.VID"); /* G41 */
static int __init video_init(struct ibm_init_struct *iibm) static int __init video_init(struct ibm_init_struct *iibm)
...@@ -3023,6 +3025,8 @@ static struct ibm_struct video_driver_data = { ...@@ -3023,6 +3025,8 @@ static struct ibm_struct video_driver_data = {
.exit = video_exit, .exit = video_exit,
}; };
#endif /* CONFIG_THINKPAD_ACPI_VIDEO */
/************************************************************************* /*************************************************************************
* Light (thinklight) subdriver * Light (thinklight) subdriver
*/ */
...@@ -5807,10 +5811,12 @@ static struct ibm_init_struct ibms_init[] __initdata = { ...@@ -5807,10 +5811,12 @@ static struct ibm_init_struct ibms_init[] __initdata = {
.init = wan_init, .init = wan_init,
.data = &wan_driver_data, .data = &wan_driver_data,
}, },
#ifdef CONFIG_THINKPAD_ACPI_VIDEO
{ {
.init = video_init, .init = video_init,
.data = &video_driver_data, .data = &video_driver_data,
}, },
#endif
{ {
.init = light_init, .init = light_init,
.data = &light_driver_data, .data = &light_driver_data,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册