From patchwork Thu Dec 9 07:57:40 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ike Panhc X-Patchwork-Id: 393262 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.3) with ESMTP id oB97wOsO023225 for ; Thu, 9 Dec 2010 07:58:33 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754197Ab0LIH5r (ORCPT ); Thu, 9 Dec 2010 02:57:47 -0500 Received: from adelie.canonical.com ([91.189.90.139]:53943 "EHLO adelie.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754035Ab0LIH5q (ORCPT ); Thu, 9 Dec 2010 02:57:46 -0500 Received: from hutte.canonical.com ([91.189.90.181]) by adelie.canonical.com with esmtp (Exim 4.69 #1 (Debian)) id 1PQbNp-0008Uw-GZ; Thu, 09 Dec 2010 07:57:45 +0000 Received: from [210.242.151.101] (helo=canonical.com) by hutte.canonical.com with esmtpsa (TLS-1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.69) (envelope-from ) id 1PQbNo-0003vs-H8; Thu, 09 Dec 2010 07:57:45 +0000 From: Ike Panhc To: linux-kernel@vger.kernel.org, platform-driver-x86@vger.kernel.org, linux-acpi@vger.kernel.org Cc: Matthew Garrett , David Woodhouse , Dmitry Torokhov , Dave Hansen Subject: [PATCH 6/7] ideapad: pass ideapad_priv as argument (part 1) Date: Thu, 9 Dec 2010 15:57:40 +0800 Message-Id: <1291881460-4904-1-git-send-email-ike.pan@canonical.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1291881376-4729-1-git-send-email-ike.pan@canonical.com> References: <1291881376-4729-1-git-send-email-ike.pan@canonical.com> Sender: linux-acpi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.3 (demeter1.kernel.org [140.211.167.41]); Thu, 09 Dec 2010 07:58:34 +0000 (UTC) diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c index 2c4830c..eda7267 100644 --- a/drivers/platform/x86/ideapad-laptop.c +++ b/drivers/platform/x86/ideapad-laptop.c @@ -299,37 +299,37 @@ static struct attribute_group ideapad_attribute_group = { .attrs = ideapad_attributes }; -static int __devinit ideapad_platform_init(void) +static int __devinit ideapad_platform_init(struct ideapad_private *priv) { int result; - ideapad_priv->platform_device = platform_device_alloc("Ideapad", -1); - if (!ideapad_priv->platform_device) + priv->platform_device = platform_device_alloc("Ideapad", -1); + if (!priv->platform_device) return -ENOMEM; - platform_set_drvdata(ideapad_priv->platform_device, ideapad_priv); + platform_set_drvdata(priv->platform_device, priv); - result = platform_device_add(ideapad_priv->platform_device); + result = platform_device_add(priv->platform_device); if (result) goto fail_platform_device; - result = sysfs_create_group(&ideapad_priv->platform_device->dev.kobj, + result = sysfs_create_group(&priv->platform_device->dev.kobj, &ideapad_attribute_group); if (result) goto fail_sysfs; return 0; fail_sysfs: - platform_device_del(ideapad_priv->platform_device); + platform_device_del(priv->platform_device); fail_platform_device: - platform_device_put(ideapad_priv->platform_device); + platform_device_put(priv->platform_device); return result; } -static void ideapad_platform_exit(void) +static void ideapad_platform_exit(struct ideapad_private *priv) { - sysfs_remove_group(&ideapad_priv->platform_device->dev.kobj, + sysfs_remove_group(&priv->platform_device->dev.kobj, &ideapad_attribute_group); - platform_device_unregister(ideapad_priv->platform_device); + platform_device_unregister(priv->platform_device); } /* @@ -341,7 +341,7 @@ static const struct key_entry ideapad_keymap[] = { { KE_END, 0 }, }; -static int __devinit ideapad_input_init(void) +static int __devinit ideapad_input_init(struct ideapad_private *priv) { struct input_dev *inputdev; int error; @@ -355,7 +355,7 @@ static int __devinit ideapad_input_init(void) inputdev->name = "Ideapad extra buttons"; inputdev->phys = "ideapad/input0"; inputdev->id.bustype = BUS_HOST; - inputdev->dev.parent = &ideapad_priv->platform_device->dev; + inputdev->dev.parent = &priv->platform_device->dev; error = sparse_keymap_setup(inputdev, ideapad_keymap, NULL); if (error) { @@ -369,7 +369,7 @@ static int __devinit ideapad_input_init(void) goto err_free_keymap; } - ideapad_priv->inputdev = inputdev; + priv->inputdev = inputdev; return 0; err_free_keymap: @@ -379,16 +379,17 @@ err_free_dev: return error; } -static void __devexit ideapad_input_exit(void) +static void __devexit ideapad_input_exit(struct ideapad_private *priv) { - sparse_keymap_free(ideapad_priv->inputdev); - input_unregister_device(ideapad_priv->inputdev); - ideapad_priv->inputdev = NULL; + sparse_keymap_free(priv->inputdev); + input_unregister_device(priv->inputdev); + priv->inputdev = NULL; } -static void ideapad_input_report(unsigned long scancode) +static void ideapad_input_report(struct ideapad_private *priv, + unsigned long scancode) { - sparse_keymap_report_event(ideapad_priv->inputdev, scancode, 1, true); + sparse_keymap_report_event(priv->inputdev, scancode, 1, true); } /* @@ -415,11 +416,11 @@ static int __devinit ideapad_acpi_add(struct acpi_device *adevice) priv->handle = adevice->handle; dev_set_drvdata(&adevice->dev, priv); - ret = ideapad_platform_init(); + ret = ideapad_platform_init(priv); if (ret) goto platform_failed; - ret = ideapad_input_init(); + ret = ideapad_input_init(priv); if (ret) goto input_failed; @@ -432,7 +433,7 @@ static int __devinit ideapad_acpi_add(struct acpi_device *adevice) return 0; input_failed: - ideapad_platform_exit(); + ideapad_platform_exit(priv); platform_failed: kfree(priv); return ret; @@ -445,8 +446,8 @@ static int __devexit ideapad_acpi_remove(struct acpi_device *adevice, int type) for (i = IDEAPAD_DEV_WLAN; i < IDEAPAD_DEV_KILLSW; i++) ideapad_unregister_rfkill(adevice, i); - ideapad_input_exit(); - ideapad_platform_exit(); + ideapad_input_exit(priv); + ideapad_platform_exit(priv); dev_set_drvdata(&adevice->dev, NULL); kfree(priv); @@ -455,6 +456,7 @@ static int __devexit ideapad_acpi_remove(struct acpi_device *adevice, int type) static void ideapad_acpi_notify(struct acpi_device *adevice, u32 event) { + struct ideapad_private *priv = dev_get_drvdata(&adevice->dev); acpi_handle handle = adevice->handle; unsigned long vpc1, vpc2, vpc_bit; @@ -469,7 +471,7 @@ static void ideapad_acpi_notify(struct acpi_device *adevice, u32 event) if (vpc_bit == 9) ideapad_sync_rfk_state(adevice); else - ideapad_input_report(vpc_bit); + ideapad_input_report(priv, vpc_bit); } } }