Data exchanges with the SNC device should use unsigned data types: to avoid any implicit cast, this patch removes any int usage in favor of unsigned int or u32.

Signed-off-by: Marco Chiappero <[email protected]>
---

--- a/drivers/platform/x86/sony-laptop.c
+++ b/drivers/platform/x86/sony-laptop.c
@@ -689,7 +689,8 @@ static struct acpi_device *sony_nc_acpi_
 /*
  * acpi_evaluate_object wrappers
  */
-static int acpi_callgetfunc(acpi_handle handle, char *name, int *result)
+static int acpi_callgetfunc(acpi_handle handle, char *name,
+                               unsigned int *result)
 {
        struct acpi_buffer output;
        union acpi_object out_obj;
@@ -709,8 +710,8 @@ static int acpi_callgetfunc(acpi_handle
        return -1;
 }

-static int acpi_callsetfunc(acpi_handle handle, char *name, int value,
-                           int *result)
+static int acpi_callsetfunc(acpi_handle handle, char *name, u32 value,
+                               unsigned int *result)
 {
        struct acpi_object_list params;
        union acpi_object in_obj;
@@ -767,8 +768,7 @@ static ssize_t sony_nc_handles_show(stru

 static int sony_nc_handles_setup(struct platform_device *pd)
 {
-       int i;
-       int result;
+       unsigned int i, result;

        handles = kzalloc(sizeof(*handles), GFP_KERNEL);
        if (!handles)
@@ -830,7 +830,9 @@ static int sony_find_snc_handle(int hand
        return -1;
 }

-static int sony_call_snc_handle(int handle, int argument, int *result)
+/* call command method SN07, accepts a 32 bit integer, returns a integer */
+static int sony_call_snc_handle(int handle, unsigned int argument,
+                               unsigned int *result)
 {
        int ret = 0;
        int offset = sony_find_snc_handle(handle);
@@ -838,6 +840,7 @@ static int sony_call_snc_handle(int hand
        if (offset < 0)
                return -1;

+       /* max 32 bit wide argument, for wider input use SN06 */
        ret = acpi_callsetfunc(sony_nc_acpi_handle, "SN07", offset | argument,
                        result);
        dprintk("called SN07 with 0x%.4x (result: 0x%.4x)\n", offset | argument,
@@ -886,7 +889,7 @@ static int boolean_validate(const int di
static ssize_t sony_nc_sysfs_show(struct device *dev, struct device_attribute *attr,
                              char *buffer)
 {
-       int value;
+       unsigned int value;
        struct sony_nc_value *item =
            container_of(attr, struct sony_nc_value, devattr);

@@ -906,7 +909,7 @@ static ssize_t sony_nc_sysfs_store(struc
                               struct device_attribute *attr,
                               const char *buffer, size_t count)
 {
-       int value;
+       unsigned long value;
        struct sony_nc_value *item =
            container_of(attr, struct sony_nc_value, devattr);

@@ -951,7 +954,7 @@ static int sony_backlight_update_status(

 static int sony_backlight_get_brightness(struct backlight_device *bd)
 {
-       int value;
+       unsigned int value;

        if (acpi_callgetfunc(sony_nc_acpi_handle, "GBRT", &value))
                return 0;
@@ -961,7 +964,7 @@ static int sony_backlight_get_brightness

 static int sony_nc_get_brightness_ng(struct backlight_device *bd)
 {
-       int result;
+       unsigned int result;
        struct sony_backlight_props *sdev =
                (struct sony_backlight_props *)bl_get_data(bd);

@@ -972,7 +975,7 @@ static int sony_nc_get_brightness_ng(str

 static int sony_nc_update_status_ng(struct backlight_device *bd)
 {
-       int value, result;
+       unsigned int value, result;
        struct sony_backlight_props *sdev =
                (struct sony_backlight_props *)bl_get_data(bd);

@@ -1069,7 +1072,7 @@ static void sony_nc_notify(struct acpi_d

        if (ev >= 0x90) {
                /* New-style event */
-               int result;
+               unsigned int result;
                int key_handle = 0;
                ev -= 0x90;

@@ -1139,7 +1142,7 @@ static acpi_status sony_walk_callback(ac
  */
 static int sony_nc_function_setup(struct acpi_device *device)
 {
-       int result;
+       unsigned int result;

        /* Enable all events */
        acpi_callsetfunc(sony_nc_acpi_handle, "SN02", 0xffff, &result);
@@ -1206,8 +1209,8 @@ static void sony_nc_rfkill_cleanup(void)

 static int sony_nc_rfkill_set(void *data, bool blocked)
 {
-       int result;
-       int argument = sony_rfkill_address[(long) data] + 0x100;
+       unsigned int result;
+       unsigned int argument = sony_rfkill_address[(long) data] + 0x100;

        if (!blocked)
                argument |= 0xff0000;
@@ -1226,7 +1229,7 @@ static int sony_nc_setup_rfkill(struct a
        struct rfkill *rfk;
        enum rfkill_type type;
        const char *name;
-       int result;
+       unsigned int result;
        bool hwblock;

        switch (nc_type) {
@@ -1271,14 +1274,14 @@ static int sony_nc_setup_rfkill(struct a
 static void sony_nc_rfkill_update(void)
 {
        enum sony_nc_rfkill i;
-       int result;
+       unsigned int result;
        bool hwblock;

        sony_call_snc_handle(sony_rfkill_handle, 0x200, &result);
        hwblock = !(result & 0x1);

        for (i = 0; i < N_SONY_RFKILL; i++) {
-               int argument = sony_rfkill_address[i];
+               unsigned int argument = sony_rfkill_address[i];

                if (!sony_rfkill_devices[i])
                        continue;
@@ -1390,7 +1393,7 @@ static struct kbd_backlight *kbdbl_handl

 static ssize_t __sony_nc_kbd_backlight_mode_set(u8 value)
 {
-       int result;
+       unsigned int result;

        if (value > 1)
                return -EINVAL;
@@ -1438,7 +1441,7 @@ static ssize_t sony_nc_kbd_backlight_mod

 static int __sony_nc_kbd_backlight_timeout_set(u8 value)
 {
-       int result;
+       unsigned int result;

        if (value > 3)
                return -EINVAL;
@@ -1482,7 +1485,7 @@ static ssize_t sony_nc_kbd_backlight_tim

 static int sony_nc_kbd_backlight_setup(struct platform_device *pd)
 {
-       int result;
+       unsigned int result;

        if (sony_call_snc_handle(KBDBL_HANDLER, KBDBL_PRESENT, &result))
                return 0;
@@ -1527,7 +1530,7 @@ outkzalloc:
 static int sony_nc_kbd_backlight_cleanup(struct platform_device *pd)
 {
        if (kbdbl_handle) {
-               int result;
+               unsigned int result;

                device_remove_file(&pd->dev, &kbdbl_handle->mode_attr);
                device_remove_file(&pd->dev, &kbdbl_handle->timeout_attr);
@@ -1543,7 +1546,7 @@ static int sony_nc_kbd_backlight_cleanup

 static void sony_nc_kbd_backlight_resume(void)
 {
-       int ignore = 0;
+       unsigned int ignore = 0;

        if (!kbdbl_handle)
                return;
@@ -2659,7 +2662,7 @@ static long sonypi_misc_ioctl(struct fil
        void __user *argp = (void __user *)arg;
        u8 val8;
        u16 val16;
-       int value;
+       unsigned int value;

        mutex_lock(&spic_dev.lock);
        switch (cmd) {
--
To unsubscribe from this list: send the line "unsubscribe platform-driver-x86" 
in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to