Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
9e0c20bc
Commit
9e0c20bc
authored
Jan 12, 2011
by
Len Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'acpi-video' into release
parents
fe3ded50
82069552
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
7 additions
and
146 deletions
+7
-146
Documentation/kernel-parameters.txt
Documentation/kernel-parameters.txt
+0
-5
drivers/acpi/video.c
drivers/acpi/video.c
+3
-86
drivers/acpi/video_detect.c
drivers/acpi/video_detect.c
+4
-53
drivers/gpu/drm/Kconfig
drivers/gpu/drm/Kconfig
+0
-1
drivers/gpu/stub/Kconfig
drivers/gpu/stub/Kconfig
+0
-1
No files found.
Documentation/kernel-parameters.txt
View file @
9e0c20bc
...
@@ -199,11 +199,6 @@ and is between 256 and 4096 characters. It is defined in the file
...
@@ -199,11 +199,6 @@ and is between 256 and 4096 characters. It is defined in the file
unusable. The "log_buf_len" parameter may be useful
unusable. The "log_buf_len" parameter may be useful
if you need to capture more output.
if you need to capture more output.
acpi_display_output= [HW,ACPI]
acpi_display_output=vendor
acpi_display_output=video
See above.
acpi_irq_balance [HW,ACPI]
acpi_irq_balance [HW,ACPI]
ACPI will balance active IRQs
ACPI will balance active IRQs
default in APIC mode
default in APIC mode
...
...
drivers/acpi/video.c
View file @
9e0c20bc
...
@@ -33,7 +33,6 @@
...
@@ -33,7 +33,6 @@
#include <linux/input.h>
#include <linux/input.h>
#include <linux/backlight.h>
#include <linux/backlight.h>
#include <linux/thermal.h>
#include <linux/thermal.h>
#include <linux/video_output.h>
#include <linux/sort.h>
#include <linux/sort.h>
#include <linux/pci.h>
#include <linux/pci.h>
#include <linux/pci_ids.h>
#include <linux/pci_ids.h>
...
@@ -172,9 +171,6 @@ struct acpi_video_device_cap {
...
@@ -172,9 +171,6 @@ struct acpi_video_device_cap {
u8
_BQC
:
1
;
/* Get current brightness level */
u8
_BQC
:
1
;
/* Get current brightness level */
u8
_BCQ
:
1
;
/* Some buggy BIOS uses _BCQ instead of _BQC */
u8
_BCQ
:
1
;
/* Some buggy BIOS uses _BCQ instead of _BQC */
u8
_DDC
:
1
;
/*Return the EDID for this device */
u8
_DDC
:
1
;
/*Return the EDID for this device */
u8
_DCS
:
1
;
/*Return status of output device */
u8
_DGS
:
1
;
/*Query graphics state */
u8
_DSS
:
1
;
/*Device state set */
};
};
struct
acpi_video_brightness_flags
{
struct
acpi_video_brightness_flags
{
...
@@ -202,7 +198,6 @@ struct acpi_video_device {
...
@@ -202,7 +198,6 @@ struct acpi_video_device {
struct
acpi_video_device_brightness
*
brightness
;
struct
acpi_video_device_brightness
*
brightness
;
struct
backlight_device
*
backlight
;
struct
backlight_device
*
backlight
;
struct
thermal_cooling_device
*
cooling_dev
;
struct
thermal_cooling_device
*
cooling_dev
;
struct
output_device
*
output_dev
;
};
};
static
const
char
device_decode
[][
30
]
=
{
static
const
char
device_decode
[][
30
]
=
{
...
@@ -226,10 +221,6 @@ static int acpi_video_get_next_level(struct acpi_video_device *device,
...
@@ -226,10 +221,6 @@ static int acpi_video_get_next_level(struct acpi_video_device *device,
u32
level_current
,
u32
event
);
u32
level_current
,
u32
event
);
static
int
acpi_video_switch_brightness
(
struct
acpi_video_device
*
device
,
static
int
acpi_video_switch_brightness
(
struct
acpi_video_device
*
device
,
int
event
);
int
event
);
static
int
acpi_video_device_get_state
(
struct
acpi_video_device
*
device
,
unsigned
long
long
*
state
);
static
int
acpi_video_output_get
(
struct
output_device
*
od
);
static
int
acpi_video_device_set_state
(
struct
acpi_video_device
*
device
,
int
state
);
/*backlight device sysfs support*/
/*backlight device sysfs support*/
static
int
acpi_video_get_brightness
(
struct
backlight_device
*
bd
)
static
int
acpi_video_get_brightness
(
struct
backlight_device
*
bd
)
...
@@ -265,30 +256,6 @@ static struct backlight_ops acpi_backlight_ops = {
...
@@ -265,30 +256,6 @@ static struct backlight_ops acpi_backlight_ops = {
.
update_status
=
acpi_video_set_brightness
,
.
update_status
=
acpi_video_set_brightness
,
};
};
/*video output device sysfs support*/
static
int
acpi_video_output_get
(
struct
output_device
*
od
)
{
unsigned
long
long
state
;
struct
acpi_video_device
*
vd
=
(
struct
acpi_video_device
*
)
dev_get_drvdata
(
&
od
->
dev
);
acpi_video_device_get_state
(
vd
,
&
state
);
return
(
int
)
state
;
}
static
int
acpi_video_output_set
(
struct
output_device
*
od
)
{
unsigned
long
state
=
od
->
request_state
;
struct
acpi_video_device
*
vd
=
(
struct
acpi_video_device
*
)
dev_get_drvdata
(
&
od
->
dev
);
return
acpi_video_device_set_state
(
vd
,
state
);
}
static
struct
output_properties
acpi_output_properties
=
{
.
set_state
=
acpi_video_output_set
,
.
get_status
=
acpi_video_output_get
,
};
/* thermal cooling device callbacks */
/* thermal cooling device callbacks */
static
int
video_get_max_state
(
struct
thermal_cooling_device
*
cooling_dev
,
unsigned
static
int
video_get_max_state
(
struct
thermal_cooling_device
*
cooling_dev
,
unsigned
long
*
state
)
long
*
state
)
...
@@ -344,34 +311,6 @@ static struct thermal_cooling_device_ops video_cooling_ops = {
...
@@ -344,34 +311,6 @@ static struct thermal_cooling_device_ops video_cooling_ops = {
Video Management
Video Management
-------------------------------------------------------------------------- */
-------------------------------------------------------------------------- */
/* device */
static
int
acpi_video_device_get_state
(
struct
acpi_video_device
*
device
,
unsigned
long
long
*
state
)
{
int
status
;
status
=
acpi_evaluate_integer
(
device
->
dev
->
handle
,
"_DCS"
,
NULL
,
state
);
return
status
;
}
static
int
acpi_video_device_set_state
(
struct
acpi_video_device
*
device
,
int
state
)
{
int
status
;
union
acpi_object
arg0
=
{
ACPI_TYPE_INTEGER
};
struct
acpi_object_list
args
=
{
1
,
&
arg0
};
unsigned
long
long
ret
;
arg0
.
integer
.
value
=
state
;
status
=
acpi_evaluate_integer
(
device
->
dev
->
handle
,
"_DSS"
,
&
args
,
&
ret
);
return
status
;
}
static
int
static
int
acpi_video_device_lcd_query_levels
(
struct
acpi_video_device
*
device
,
acpi_video_device_lcd_query_levels
(
struct
acpi_video_device
*
device
,
union
acpi_object
**
levels
)
union
acpi_object
**
levels
)
...
@@ -831,15 +770,6 @@ static void acpi_video_device_find_cap(struct acpi_video_device *device)
...
@@ -831,15 +770,6 @@ static void acpi_video_device_find_cap(struct acpi_video_device *device)
if
(
ACPI_SUCCESS
(
acpi_get_handle
(
device
->
dev
->
handle
,
"_DDC"
,
&
h_dummy1
)))
{
if
(
ACPI_SUCCESS
(
acpi_get_handle
(
device
->
dev
->
handle
,
"_DDC"
,
&
h_dummy1
)))
{
device
->
cap
.
_DDC
=
1
;
device
->
cap
.
_DDC
=
1
;
}
}
if
(
ACPI_SUCCESS
(
acpi_get_handle
(
device
->
dev
->
handle
,
"_DCS"
,
&
h_dummy1
)))
{
device
->
cap
.
_DCS
=
1
;
}
if
(
ACPI_SUCCESS
(
acpi_get_handle
(
device
->
dev
->
handle
,
"_DGS"
,
&
h_dummy1
)))
{
device
->
cap
.
_DGS
=
1
;
}
if
(
ACPI_SUCCESS
(
acpi_get_handle
(
device
->
dev
->
handle
,
"_DSS"
,
&
h_dummy1
)))
{
device
->
cap
.
_DSS
=
1
;
}
if
(
acpi_video_backlight_support
())
{
if
(
acpi_video_backlight_support
())
{
struct
backlight_properties
props
;
struct
backlight_properties
props
;
...
@@ -904,21 +834,6 @@ static void acpi_video_device_find_cap(struct acpi_video_device *device)
...
@@ -904,21 +834,6 @@ static void acpi_video_device_find_cap(struct acpi_video_device *device)
printk
(
KERN_ERR
PREFIX
"Create sysfs link
\n
"
);
printk
(
KERN_ERR
PREFIX
"Create sysfs link
\n
"
);
}
}
if
(
acpi_video_display_switch_support
())
{
if
(
device
->
cap
.
_DCS
&&
device
->
cap
.
_DSS
)
{
static
int
count
;
char
*
name
;
name
=
kasprintf
(
GFP_KERNEL
,
"acpi_video%d"
,
count
);
if
(
!
name
)
return
;
count
++
;
device
->
output_dev
=
video_output_register
(
name
,
NULL
,
device
,
&
acpi_output_properties
);
kfree
(
name
);
}
}
}
}
/*
/*
...
@@ -1360,6 +1275,9 @@ int acpi_video_get_edid(struct acpi_device *device, int type, int device_id,
...
@@ -1360,6 +1275,9 @@ int acpi_video_get_edid(struct acpi_device *device, int type, int device_id,
if
(
!
video_device
)
if
(
!
video_device
)
continue
;
continue
;
if
(
!
video_device
->
cap
.
_DDC
)
continue
;
if
(
type
)
{
if
(
type
)
{
switch
(
type
)
{
switch
(
type
)
{
case
ACPI_VIDEO_DISPLAY_CRT
:
case
ACPI_VIDEO_DISPLAY_CRT
:
...
@@ -1452,7 +1370,6 @@ static int acpi_video_bus_put_one_device(struct acpi_video_device *device)
...
@@ -1452,7 +1370,6 @@ static int acpi_video_bus_put_one_device(struct acpi_video_device *device)
thermal_cooling_device_unregister
(
device
->
cooling_dev
);
thermal_cooling_device_unregister
(
device
->
cooling_dev
);
device
->
cooling_dev
=
NULL
;
device
->
cooling_dev
=
NULL
;
}
}
video_output_unregister
(
device
->
output_dev
);
return
0
;
return
0
;
}
}
...
...
drivers/acpi/video_detect.c
View file @
9e0c20bc
...
@@ -17,15 +17,14 @@
...
@@ -17,15 +17,14 @@
* capabilities the graphics cards plugged in support. The check for general
* capabilities the graphics cards plugged in support. The check for general
* video capabilities will be triggered by the first caller of
* video capabilities will be triggered by the first caller of
* acpi_video_get_capabilities(NULL); which will happen when the first
* acpi_video_get_capabilities(NULL); which will happen when the first
* backlight
(or display output)
switching supporting driver calls:
* backlight switching supporting driver calls:
* acpi_video_backlight_support();
* acpi_video_backlight_support();
*
*
* Depending on whether ACPI graphics extensions (cmp. ACPI spec Appendix B)
* Depending on whether ACPI graphics extensions (cmp. ACPI spec Appendix B)
* are available, video.ko should be used to handle the device.
* are available, video.ko should be used to handle the device.
*
*
* Otherwise vendor specific drivers like thinkpad_acpi, asus_acpi,
* Otherwise vendor specific drivers like thinkpad_acpi, asus_acpi,
* sony_acpi,... can take care about backlight brightness and display output
* sony_acpi,... can take care about backlight brightness.
* switching.
*
*
* If CONFIG_ACPI_VIDEO is neither set as "compiled in" (y) nor as a module (m)
* If CONFIG_ACPI_VIDEO is neither set as "compiled in" (y) nor as a module (m)
* this file will not be compiled, acpi_video_get_capabilities() and
* this file will not be compiled, acpi_video_get_capabilities() and
...
@@ -83,11 +82,6 @@ long acpi_is_video_device(struct acpi_device *device)
...
@@ -83,11 +82,6 @@ long acpi_is_video_device(struct acpi_device *device)
if
(
!
device
)
if
(
!
device
)
return
0
;
return
0
;
/* Is this device able to support video switching ? */
if
(
ACPI_SUCCESS
(
acpi_get_handle
(
device
->
handle
,
"_DOD"
,
&
h_dummy
))
||
ACPI_SUCCESS
(
acpi_get_handle
(
device
->
handle
,
"_DOS"
,
&
h_dummy
)))
video_caps
|=
ACPI_VIDEO_OUTPUT_SWITCHING
;
/* Is this device able to retrieve a video ROM ? */
/* Is this device able to retrieve a video ROM ? */
if
(
ACPI_SUCCESS
(
acpi_get_handle
(
device
->
handle
,
"_ROM"
,
&
h_dummy
)))
if
(
ACPI_SUCCESS
(
acpi_get_handle
(
device
->
handle
,
"_ROM"
,
&
h_dummy
)))
video_caps
|=
ACPI_VIDEO_ROM_AVAILABLE
;
video_caps
|=
ACPI_VIDEO_ROM_AVAILABLE
;
...
@@ -161,8 +155,6 @@ long acpi_video_get_capabilities(acpi_handle graphics_handle)
...
@@ -161,8 +155,6 @@ long acpi_video_get_capabilities(acpi_handle graphics_handle)
*
*
* if (dmi_name_in_vendors("XY")) {
* if (dmi_name_in_vendors("XY")) {
* acpi_video_support |=
* acpi_video_support |=
* ACPI_VIDEO_OUTPUT_SWITCHING_DMI_VENDOR;
* acpi_video_support |=
* ACPI_VIDEO_BACKLIGHT_DMI_VENDOR;
* ACPI_VIDEO_BACKLIGHT_DMI_VENDOR;
*}
*}
*/
*/
...
@@ -212,33 +204,8 @@ int acpi_video_backlight_support(void)
...
@@ -212,33 +204,8 @@ int acpi_video_backlight_support(void)
EXPORT_SYMBOL
(
acpi_video_backlight_support
);
EXPORT_SYMBOL
(
acpi_video_backlight_support
);
/*
/*
* Returns true if video.ko can do display output switching.
* Use acpi_backlight=vendor/video to force that backlight switching
* This does not work well/at all with binary graphics drivers
* is processed by vendor specific acpi drivers or video.ko driver.
* which disable system io ranges and do it on their own.
*/
int
acpi_video_display_switch_support
(
void
)
{
if
(
!
acpi_video_caps_checked
)
acpi_video_get_capabilities
(
NULL
);
if
(
acpi_video_support
&
ACPI_VIDEO_OUTPUT_SWITCHING_FORCE_VENDOR
)
return
0
;
else
if
(
acpi_video_support
&
ACPI_VIDEO_OUTPUT_SWITCHING_FORCE_VIDEO
)
return
1
;
if
(
acpi_video_support
&
ACPI_VIDEO_OUTPUT_SWITCHING_DMI_VENDOR
)
return
0
;
else
if
(
acpi_video_support
&
ACPI_VIDEO_OUTPUT_SWITCHING_DMI_VIDEO
)
return
1
;
return
acpi_video_support
&
ACPI_VIDEO_OUTPUT_SWITCHING
;
}
EXPORT_SYMBOL
(
acpi_video_display_switch_support
);
/*
* Use acpi_display_output=vendor/video or acpi_backlight=vendor/video
* To force that backlight or display output switching is processed by vendor
* specific acpi drivers or video.ko driver.
*/
*/
static
int
__init
acpi_backlight
(
char
*
str
)
static
int
__init
acpi_backlight
(
char
*
str
)
{
{
...
@@ -255,19 +222,3 @@ static int __init acpi_backlight(char *str)
...
@@ -255,19 +222,3 @@ static int __init acpi_backlight(char *str)
return
1
;
return
1
;
}
}
__setup
(
"acpi_backlight="
,
acpi_backlight
);
__setup
(
"acpi_backlight="
,
acpi_backlight
);
static
int
__init
acpi_display_output
(
char
*
str
)
{
if
(
str
==
NULL
||
*
str
==
'\0'
)
return
1
;
else
{
if
(
!
strcmp
(
"vendor"
,
str
))
acpi_video_support
|=
ACPI_VIDEO_OUTPUT_SWITCHING_FORCE_VENDOR
;
if
(
!
strcmp
(
"video"
,
str
))
acpi_video_support
|=
ACPI_VIDEO_OUTPUT_SWITCHING_FORCE_VIDEO
;
}
return
1
;
}
__setup
(
"acpi_display_output="
,
acpi_display_output
);
drivers/gpu/drm/Kconfig
View file @
9e0c20bc
...
@@ -107,7 +107,6 @@ config DRM_I915
...
@@ -107,7 +107,6 @@ config DRM_I915
select FB_CFB_IMAGEBLIT
select FB_CFB_IMAGEBLIT
# i915 depends on ACPI_VIDEO when ACPI is enabled
# i915 depends on ACPI_VIDEO when ACPI is enabled
# but for select to work, need to select ACPI_VIDEO's dependencies, ick
# but for select to work, need to select ACPI_VIDEO's dependencies, ick
select VIDEO_OUTPUT_CONTROL if ACPI
select BACKLIGHT_CLASS_DEVICE if ACPI
select BACKLIGHT_CLASS_DEVICE if ACPI
select INPUT if ACPI
select INPUT if ACPI
select ACPI_VIDEO if ACPI
select ACPI_VIDEO if ACPI
...
...
drivers/gpu/stub/Kconfig
View file @
9e0c20bc
...
@@ -3,7 +3,6 @@ config STUB_POULSBO
...
@@ -3,7 +3,6 @@ config STUB_POULSBO
depends on PCI
depends on PCI
# Poulsbo stub depends on ACPI_VIDEO when ACPI is enabled
# Poulsbo stub depends on ACPI_VIDEO when ACPI is enabled
# but for select to work, need to select ACPI_VIDEO's dependencies, ick
# but for select to work, need to select ACPI_VIDEO's dependencies, ick
select VIDEO_OUTPUT_CONTROL if ACPI
select BACKLIGHT_CLASS_DEVICE if ACPI
select BACKLIGHT_CLASS_DEVICE if ACPI
select INPUT if ACPI
select INPUT if ACPI
select ACPI_VIDEO if ACPI
select ACPI_VIDEO if ACPI
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment