]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
platform/x86: huawei-wmi: Avoid use of global variable when possible
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Thu, 10 Oct 2019 12:16:57 +0000 (15:16 +0300)
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Tue, 15 Oct 2019 07:55:11 +0000 (10:55 +0300)
There is no need to access global variable directly when we may derive it
through other means.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
drivers/platform/x86/huawei-wmi.c

index 7100814b966bf18c6771c8a4f1db117f900510cd..5bb6fbc9502b267c3de93438beaebfc8873db842 100644 (file)
@@ -144,15 +144,16 @@ static const struct dmi_system_id huawei_quirks[] = {
 
 /* Utils */
 
-static int huawei_wmi_call(struct acpi_buffer *in, struct acpi_buffer *out)
+static int huawei_wmi_call(struct huawei_wmi *huawei,
+                          struct acpi_buffer *in, struct acpi_buffer *out)
 {
        acpi_status status;
 
-       mutex_lock(&huawei_wmi->wmi_lock);
+       mutex_lock(&huawei->wmi_lock);
        status = wmi_evaluate_method(HWMI_METHOD_GUID, 0, 1, in, out);
-       mutex_unlock(&huawei_wmi->wmi_lock);
+       mutex_unlock(&huawei->wmi_lock);
        if (ACPI_FAILURE(status)) {
-               dev_err(huawei_wmi->dev, "Failed to evaluate wmi method\n");
+               dev_err(huawei->dev, "Failed to evaluate wmi method\n");
                return -ENODEV;
        }
 
@@ -169,6 +170,7 @@ static int huawei_wmi_call(struct acpi_buffer *in, struct acpi_buffer *out)
  */
 static int huawei_wmi_cmd(u64 arg, u8 *buf, size_t buflen)
 {
+       struct huawei_wmi *huawei = huawei_wmi;
        struct acpi_buffer out = { ACPI_ALLOCATE_BUFFER, NULL };
        struct acpi_buffer in;
        union acpi_object *obj;
@@ -182,7 +184,7 @@ static int huawei_wmi_cmd(u64 arg, u8 *buf, size_t buflen)
         * HWMI and if we get a non-zero return status we evaluate it again.
         */
        for (i = 0; i < 2; i++) {
-               err = huawei_wmi_call(&in, &out);
+               err = huawei_wmi_call(huawei, &in, &out);
                if (err)
                        goto fail_cmd;
 
@@ -202,7 +204,7 @@ static int huawei_wmi_cmd(u64 arg, u8 *buf, size_t buflen)
                                obj->buffer.pointer += 4;
                                len = 0x100;
                        } else {
-                               dev_err(huawei_wmi->dev, "Bad buffer length, got %d\n", obj->buffer.length);
+                               dev_err(huawei->dev, "Bad buffer length, got %d\n", obj->buffer.length);
                                err = -EIO;
                                goto fail_cmd;
                        }
@@ -213,14 +215,14 @@ static int huawei_wmi_cmd(u64 arg, u8 *buf, size_t buflen)
                 */
                case ACPI_TYPE_PACKAGE:
                        if (obj->package.count != 2) {
-                               dev_err(huawei_wmi->dev, "Bad package count, got %d\n", obj->package.count);
+                               dev_err(huawei->dev, "Bad package count, got %d\n", obj->package.count);
                                err = -EIO;
                                goto fail_cmd;
                        }
 
                        obj = &obj->package.elements[1];
                        if (obj->type != ACPI_TYPE_BUFFER) {
-                               dev_err(huawei_wmi->dev, "Bad package element type, got %d\n", obj->type);
+                               dev_err(huawei->dev, "Bad package element type, got %d\n", obj->type);
                                err = -EIO;
                                goto fail_cmd;
                        }
@@ -229,7 +231,7 @@ static int huawei_wmi_cmd(u64 arg, u8 *buf, size_t buflen)
                        break;
                /* Shouldn't get here! */
                default:
-                       dev_err(huawei_wmi->dev, "Unexpected obj type, got: %d\n", obj->type);
+                       dev_err(huawei->dev, "Unexpected obj type, got: %d\n", obj->type);
                        err = -EIO;
                        goto fail_cmd;
                }
@@ -595,7 +597,9 @@ static void huawei_wmi_fn_lock_setup(struct device *dev)
 
 static void huawei_wmi_fn_lock_exit(struct device *dev)
 {
-       if (huawei_wmi->fn_lock_available)
+       struct huawei_wmi *huawei = dev_get_drvdata(dev);
+
+       if (huawei->fn_lock_available)
                device_remove_file(dev, &dev_attr_fn_lock_state);
 }
 
@@ -649,7 +653,7 @@ static int huawei_wmi_debugfs_call_show(struct seq_file *m, void *data)
        in.length = sizeof(u64);
        in.pointer = &huawei->debug.arg;
 
-       err = huawei_wmi_call(&in, &out);
+       err = huawei_wmi_call(huawei, &in, &out);
        if (err)
                return err;