mirror of https://gitee.com/openkylin/linux.git
sony_acpi: Avoid dimness on resume.
Doesn't work. Cc: Stelian Pop <stelian@popies.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Mattia Dongili <malattia@linux.it> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
parent
7f09c432be
commit
3f4f461fa8
|
@ -46,19 +46,6 @@ module_param(debug, int, 0);
|
||||||
MODULE_PARM_DESC(debug, "set this to 1 (and RTFM) if you want to help "
|
MODULE_PARM_DESC(debug, "set this to 1 (and RTFM) if you want to help "
|
||||||
"the development of this driver");
|
"the development of this driver");
|
||||||
|
|
||||||
static int sony_acpi_add (struct acpi_device *device);
|
|
||||||
static int sony_acpi_remove (struct acpi_device *device, int type);
|
|
||||||
|
|
||||||
static struct acpi_driver sony_acpi_driver = {
|
|
||||||
.name = ACPI_SNC_DRIVER_NAME,
|
|
||||||
.class = ACPI_SNC_CLASS,
|
|
||||||
.ids = ACPI_SNC_HID,
|
|
||||||
.ops = {
|
|
||||||
.add = sony_acpi_add,
|
|
||||||
.remove = sony_acpi_remove,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
static acpi_handle sony_acpi_handle;
|
static acpi_handle sony_acpi_handle;
|
||||||
static struct proc_dir_entry *sony_acpi_dir;
|
static struct proc_dir_entry *sony_acpi_dir;
|
||||||
|
|
||||||
|
@ -69,6 +56,8 @@ static struct sony_acpi_value {
|
||||||
char *acpiset;/* name of the ACPI get function */
|
char *acpiset;/* name of the ACPI get function */
|
||||||
int min; /* minimum allowed value or -1 */
|
int min; /* minimum allowed value or -1 */
|
||||||
int max; /* maximum allowed value or -1 */
|
int max; /* maximum allowed value or -1 */
|
||||||
|
int value; /* current setting */
|
||||||
|
int valid; /* Has ever been set */
|
||||||
int debug; /* active only in debug mode ? */
|
int debug; /* active only in debug mode ? */
|
||||||
} sony_acpi_values[] = {
|
} sony_acpi_values[] = {
|
||||||
{
|
{
|
||||||
|
@ -239,10 +228,30 @@ static int sony_acpi_write(struct file *file, const char __user *buffer,
|
||||||
|
|
||||||
if (acpi_callsetfunc(sony_acpi_handle, item->acpiset, value, NULL) < 0)
|
if (acpi_callsetfunc(sony_acpi_handle, item->acpiset, value, NULL) < 0)
|
||||||
return -EIO;
|
return -EIO;
|
||||||
|
item->value = value;
|
||||||
|
item->valid = 1;
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int sony_acpi_resume(struct acpi_device *device, int state)
|
||||||
|
{
|
||||||
|
struct sony_acpi_value *item;
|
||||||
|
|
||||||
|
for (item = sony_acpi_values; item->name; item++) {
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
if (!item->valid)
|
||||||
|
continue;
|
||||||
|
ret = acpi_callsetfunc(sony_acpi_handle, item->acpiset,
|
||||||
|
item->value, NULL);
|
||||||
|
if (ret < 0) {
|
||||||
|
printk("%s: %d\n", __FUNCTION__, ret);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static void sony_acpi_notify(acpi_handle handle, u32 event, void *data)
|
static void sony_acpi_notify(acpi_handle handle, u32 event, void *data)
|
||||||
{
|
{
|
||||||
printk(LOG_PFX "sony_acpi_notify\n");
|
printk(LOG_PFX "sony_acpi_notify\n");
|
||||||
|
@ -344,7 +353,6 @@ static int sony_acpi_add(struct acpi_device *device)
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int sony_acpi_remove(struct acpi_device *device, int type)
|
static int sony_acpi_remove(struct acpi_device *device, int type)
|
||||||
{
|
{
|
||||||
acpi_status status;
|
acpi_status status;
|
||||||
|
@ -367,6 +375,17 @@ static int sony_acpi_remove(struct acpi_device *device, int type)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static struct acpi_driver sony_acpi_driver = {
|
||||||
|
.name = ACPI_SNC_DRIVER_NAME,
|
||||||
|
.class = ACPI_SNC_CLASS,
|
||||||
|
.ids = ACPI_SNC_HID,
|
||||||
|
.ops = {
|
||||||
|
.add = sony_acpi_add,
|
||||||
|
.remove = sony_acpi_remove,
|
||||||
|
.resume = sony_acpi_resume,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
static int __init sony_acpi_init(void)
|
static int __init sony_acpi_init(void)
|
||||||
{
|
{
|
||||||
int result;
|
int result;
|
||||||
|
|
Loading…
Reference in New Issue