lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 4 Apr 2007 00:01:41 -0400
From:	Dmitry Torokhov <dtor@...ightbb.com>
To:	Yoichi Yuasa <yoichi_yuasa@...peaks.co.jp>
Cc:	linux-input@...ey.karlin.mff.cuni.cz, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] Add Cobalt button interface driver support

Hi Yoichi,

Could you please try the patch below? It moves platform device creation
code into cobalt arch code to belletr follow driver model.

Thank you!

-- 
Dmitry

Input: cobalt buttons - separate device and driver registration

Create platform device for cobalt buttons as part of arch setup.
This makes the driver follow current driver model more closely.

Signed-off-by: Dmitry Torokhov <dtor@...l.ru>
---

 arch/mips/cobalt/Makefile        |    2 -
 arch/mips/cobalt/buttons.c       |   54 +++++++++++++++++++++++++++++++++++++++
 drivers/input/misc/cobalt_btns.c |   24 -----------------
 3 files changed, 56 insertions(+), 24 deletions(-)

Index: work/arch/mips/cobalt/Makefile
===================================================================
--- work.orig/arch/mips/cobalt/Makefile
+++ work/arch/mips/cobalt/Makefile
@@ -2,7 +2,7 @@
 # Makefile for the Cobalt micro systems family specific parts of the kernel
 #
 
-obj-y	 := irq.o reset.o setup.o
+obj-y	 := irq.o reset.o setup.o buttons.o
 
 obj-$(CONFIG_EARLY_PRINTK)	+= console.o
 obj-$(CONFIG_MTD_PHYSMAP)	+= mtd.o
Index: work/arch/mips/cobalt/buttons.c
===================================================================
--- /dev/null
+++ work/arch/mips/cobalt/buttons.c
@@ -0,0 +1,54 @@
+/*
+ *  Cobalt buttons platform device.
+ *
+ *  Copyright (C) 2007  Yoichi Yuasa <yoichi_yuasa@...peaks.co.jp>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#include <linux/platform_device.h>
+#include <linux/errno.h>
+#include <linux/init.h>
+
+static struct resource cobalt_buttons_resource __initdata = {
+	.start	= 0x1d000000,
+	.end	= 0x1d000003,
+	.flags	= IORESOURCE_MEM,
+};
+
+static __init int cobalt_add_buttons(void)
+{
+	struct platform_device *pd;
+	int error;
+
+	pd = platform_device_alloc("Cobalt buttons", -1);
+	if (!pd)
+		return -ENOMEM;
+
+	error = platform_device_add_resources(pd, &cobalt_buttons_resource, 1);
+	if (error)
+		goto err_free_device;
+
+	error = platform_device_add(pd);
+	if (error)
+		goto err_free_device;
+
+	return 0;
+
+ err_free_device:
+	platform_device_put(pd);
+	return error;
+}
+device_initcall(cobalt_add_buttons);
Index: work/drivers/input/misc/cobalt_btns.c
===================================================================
--- work.orig/drivers/input/misc/cobalt_btns.c
+++ work/drivers/input/misc/cobalt_btns.c
@@ -50,14 +50,6 @@ static struct buttons_map buttons_map[] 
 	{ 0x80000000, KEY_SELECT, },
 };
 
-static struct resource cobalt_buttons_resource __initdata = {
-	.start	= 0x1d000000,
-	.end	= 0x1d000003,
-	.flags	= IORESOURCE_MEM,
-};
-
-static struct platform_device *cobalt_buttons_device;
-
 static struct timer_list buttons_timer;
 
 static void handle_buttons(unsigned long data)
@@ -183,26 +175,12 @@ static struct platform_driver cobalt_but
 
 static int __init cobalt_buttons_init(void)
 {
-	int retval;
-
-	cobalt_buttons_device = platform_device_register_simple("Cobalt buttons", -1,
-	                                                        &cobalt_buttons_resource, 1);
-	if (IS_ERR(cobalt_buttons_device)) {
-		retval = PTR_ERR(cobalt_buttons_device);
-		return retval;
-	}
-
-	retval = platform_driver_register(&cobalt_buttons_driver);
-	if (retval < 0)
-		platform_device_unregister(cobalt_buttons_device);
-
-	return retval;
+	return platform_driver_register(&cobalt_buttons_driver);
 }
 
 static void __exit cobalt_buttons_exit(void)
 {
 	platform_driver_unregister(&cobalt_buttons_driver);
-	platform_device_unregister(cobalt_buttons_device);
 }
 
 module_init(cobalt_buttons_init);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ