From 749d8c85acc0fbf9aa3cf14cecd13f2620b80d85 Mon Sep 17 00:00:00 2001 From: Mattia Dongili Date: Sat, 13 Jan 2007 23:04:40 +0100 Subject: [PATCH] --- yaml --- r: 48699 b: refs/heads/master c: 57ede701af3bc0c153070133e7831332ffa1d761 h: refs/heads/master i: 48697: beda2efb06df18bd7816a8a45a71381696a1d29e 48695: 43185b8ea6bb83b47e372c9a93177cb1205789f3 v: v3 --- [refs] | 2 +- trunk/drivers/acpi/sony_acpi.c | 44 +++++++++++++++++++--------------- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/[refs] b/[refs] index b59601231fd7..888935c3fbb8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4465857d5f99079bae00621626adf74ed8256296 +refs/heads/master: 57ede701af3bc0c153070133e7831332ffa1d761 diff --git a/trunk/drivers/acpi/sony_acpi.c b/trunk/drivers/acpi/sony_acpi.c index 1f7dca337025..c65f5893e0e2 100644 --- a/trunk/drivers/acpi/sony_acpi.c +++ b/trunk/drivers/acpi/sony_acpi.c @@ -68,7 +68,7 @@ static struct backlight_properties sony_backlight_properties = { static struct sony_acpi_value { char *name; /* name of the entry */ - struct proc_dir_entry *proc; /* /proc entry */ + struct proc_dir_entry *proc; /* /proc entry */ char *acpiget;/* name of the ACPI get function */ char *acpiset;/* name of the ACPI get function */ int min; /* minimum allowed value or -1 */ @@ -78,6 +78,7 @@ static struct sony_acpi_value { int debug; /* active only in debug mode ? */ } sony_acpi_values[] = { { + /* for backward compatibility only */ .name = "brightness", .acpiget = "GBRT", .acpiset = "SBRT", @@ -106,6 +107,14 @@ static struct sony_acpi_value { .max = 1, .debug = 0, }, + { + .name = "cdpower", + .acpiget = "GCDP", + .acpiset = "CDPW", + .min = 0, + .max = 1, + .debug = 0, + }, { .name = "audiopower", .acpiget = "GAZP", @@ -356,27 +365,24 @@ static int sony_acpi_add(struct acpi_device *device) if (!debug && item->debug) continue; - if (item->acpiget && - ACPI_SUCCESS(acpi_get_handle(sony_acpi_handle, - item->acpiget, &handle))) - proc_file_mode = S_IRUSR; - else - printk(LOG_PFX "unable to get ACPI handle for %s (get)\n", - item->name); - - if (item->acpiset && - ACPI_SUCCESS(acpi_get_handle(sony_acpi_handle, - item->acpiset, &handle))) - proc_file_mode |= S_IWUSR; - else - printk(LOG_PFX "unable to get ACPI handle for %s (set)\n", - item->name); + if (item->acpiget) { + if (ACPI_FAILURE(acpi_get_handle(sony_acpi_handle, + item->acpiget, &handle))) + continue; - if (proc_file_mode == 0) - continue; + proc_file_mode |= S_IRUSR; + } + + if (item->acpiset) { + if (ACPI_FAILURE(acpi_get_handle(sony_acpi_handle, + item->acpiset, &handle))) + continue; + + proc_file_mode |= S_IWUSR; + } item->proc = create_proc_entry(item->name, proc_file_mode, - acpi_device_dir(device)); + acpi_device_dir(device)); if (!item->proc) { printk(LOG_PFX "unable to create proc entry\n"); result = -EIO;