From patchwork Thu Dec 3 07:45:05 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Corentin Chary X-Patchwork-Id: 64444 X-Patchwork-Delegate: lenb@kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by demeter.kernel.org (8.14.2/8.14.2) with ESMTP id nB37id5j000819 for ; Thu, 3 Dec 2009 07:44:59 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753556AbZLCHov (ORCPT ); Thu, 3 Dec 2009 02:44:51 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754537AbZLCHou (ORCPT ); Thu, 3 Dec 2009 02:44:50 -0500 Received: from iksaif.net ([88.191.73.63]:44229 "EHLO iksaif.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754222AbZLCHog (ORCPT ); Thu, 3 Dec 2009 02:44:36 -0500 Received: from localhost.localdomain (cxr69-11-88-180-139-205.fbx.proxad.net [88.180.139.205]) (Authenticated sender: corentincj@iksaif.net) by iksaif.net (Postfix) with ESMTPA id DCDC6C90BBF; Thu, 3 Dec 2009 08:46:06 +0100 (CET) From: Corentin Chary To: Len Brown Cc: linux-acpi@vger.kernel.org, Alan Jenkins Subject: [PATCH 21/33] eeepc-laptop: move platform driver registration out of eeepc_hotk_add() Date: Thu, 3 Dec 2009 08:45:05 +0100 Message-Id: <1259826317-18809-22-git-send-email-corentincj@iksaif.net> X-Mailer: git-send-email 1.6.5.3 In-Reply-To: <1259826317-18809-21-git-send-email-corentincj@iksaif.net> References: <1259826317-18809-1-git-send-email-corentincj@iksaif.net> <1259826317-18809-2-git-send-email-corentincj@iksaif.net> <1259826317-18809-3-git-send-email-corentincj@iksaif.net> <1259826317-18809-4-git-send-email-corentincj@iksaif.net> <1259826317-18809-5-git-send-email-corentincj@iksaif.net> <1259826317-18809-6-git-send-email-corentincj@iksaif.net> <1259826317-18809-7-git-send-email-corentincj@iksaif.net> <1259826317-18809-8-git-send-email-corentincj@iksaif.net> <1259826317-18809-9-git-send-email-corentincj@iksaif.net> <1259826317-18809-10-git-send-email-corentincj@iksaif.net> <1259826317-18809-11-git-send-email-corentincj@iksaif.net> <1259826317-18809-12-git-send-email-corentincj@iksaif.net> <1259826317-18809-13-git-send-email-corentincj@iksaif.net> <1259826317-18809-14-git-send-email-corentincj@iksaif.net> <1259826317-18809-15-git-send-email-corentincj@iksaif.net> <1259826317-18809-16-git-send-email-corentincj@iksaif.net> <1259826317-18809-17-git-send-email-corentincj@iksaif.net> <1259826317-18809-18-git-send-email-corentincj@iksaif.net> <1259826317-18809-19-git-send-email-corentincj@iksaif.net> <1259826317-18809-20-git-send-email-corentincj@iksaif.net> <1259826317-18809-21-git-send-email-corentincj@iksaif.net> Sender: linux-acpi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org diff --git a/drivers/platform/x86/eeepc-laptop.c b/drivers/platform/x86/eeepc-laptop.c index b4eacb6..3f9b286 100644 --- a/drivers/platform/x86/eeepc-laptop.c +++ b/drivers/platform/x86/eeepc-laptop.c @@ -1276,13 +1276,10 @@ static int __devinit eeepc_hotk_add(struct acpi_device *device) result = eeepc_hotk_init(); if (result) - goto fail_platform_driver; + goto fail_platform_device1; eeepc_enable_camera(); /* Register platform stuff */ - result = platform_driver_register(&platform_driver); - if (result) - goto fail_platform_driver; platform_device = platform_device_alloc(EEEPC_HOTK_FILE, -1); if (!platform_device) { result = -ENOMEM; @@ -1340,8 +1337,6 @@ fail_sysfs: fail_platform_device2: platform_device_put(platform_device); fail_platform_device1: - platform_driver_unregister(&platform_driver); -fail_platform_driver: kfree(ehotk); return result; @@ -1357,7 +1352,6 @@ static int eeepc_hotk_remove(struct acpi_device *device, int type) sysfs_remove_group(&platform_device->dev.kobj, &platform_attribute_group); platform_device_unregister(platform_device); - platform_driver_unregister(&platform_driver); kfree(ehotk); return 0; @@ -1367,19 +1361,30 @@ static int __init eeepc_laptop_init(void) { int result; - result = acpi_bus_register_driver(&eeepc_hotk_driver); + result = platform_driver_register(&platform_driver); if (result < 0) return result; + + result = acpi_bus_register_driver(&eeepc_hotk_driver); + if (result < 0) + goto fail_acpi_driver; if (!ehotk) { - acpi_bus_unregister_driver(&eeepc_hotk_driver); - return -ENODEV; + result = -ENODEV; + goto fail_no_device; } return 0; + +fail_no_device: + acpi_bus_unregister_driver(&eeepc_hotk_driver); +fail_acpi_driver: + platform_driver_unregister(&platform_driver); + return result; } static void __exit eeepc_laptop_exit(void) { acpi_bus_unregister_driver(&eeepc_hotk_driver); + platform_driver_unregister(&platform_driver); } module_init(eeepc_laptop_init);