lkml.org 
[lkml]   [2005]   [Nov]   [1]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
FromIan Wienand <>
DateTue, 1 Nov 2005 16:50:52 +1100
SubjectRe: [PATCH] Convert dmasound_awacs to dynamic input_dev allocation
On Tue, Nov 01, 2005 at 12:14:56AM -0500, Dmitry Torokhov wrote:
> It seems that the change is pretty straightforward... Could you please try
> this one?

Ahh, ok!  I thought that that comment meant it was deliberately
ignoring the return of input_register_device (by which time it's got
memory, irq's, io, etc), but now I see it's void anyway.  So why not
just move the setup right to the top?

-i

Signed-off-by: Ian Wienand <ianw@gelato.unsw.edu.au>
---
diff --git a/sound/oss/dmasound/dmasound_awacs.c b/sound/oss/dmasound/dmasound_awacs.c
--- a/sound/oss/dmasound/dmasound_awacs.c
+++ b/sound/oss/dmasound/dmasound_awacs.c
@@ -2805,16 +2805,7 @@ __init setup_beep(void)
 	return 0 ;
 }
 
-static struct input_dev awacs_beep_dev = {
-	.evbit		= { BIT(EV_SND) },
-	.sndbit		= { BIT(SND_BELL) | BIT(SND_TONE) },
-	.event		= awacs_beep_event,
-	.name		= "dmasound beeper",
-	.phys		= "macio/input0", /* what the heck is this?? */
-	.id		= {
-		.bustype	= BUS_HOST,
-	},
-};
+static struct input_dev *awacs_beep_dev;
 
 int __init dmasound_awacs_init(void)
 {
@@ -2828,6 +2819,20 @@ int __init dmasound_awacs_init(void)
 	awacs_revision = 0;
 	hw_can_byteswap = 1 ; /* most can */
 
+	/* setup the beep input event */
+	awacs_beep_dev = input_allocate_device();
+	if (!awacs_beep_dev)
+	{
+		printk(KERN_ERR "dmasound: can't allocate input device!\n");
+		return -ENOMEM;
+	}
+	awacs_beep_dev->name = "dmasound beeper";
+	awacs_beep_dev->phys = "macio/input0";
+	awacs_beep_dev->id.bustype = BUS_HOST;
+	awacs_beep_dev->event = awacs_beep_event;
+	awacs_beep_dev->sndbit[0] = BIT(SND_BELL) | BIT(SND_TONE);
+	awacs_beep_dev->evbit[0] = BIT(EV_SND);
+
 	/* look for models we need to handle specially */
 	set_model() ;
 
@@ -3136,18 +3141,14 @@ printk("dmasound_pmac: Awacs/Screamer Co
 			break ;
 	}
 
-	/*
-	 * XXX: we should handle errors here, but that would mean
-	 * rewriting the whole init code.  later..
-	 */
-	input_register_device(&awacs_beep_dev);
+	input_register_device(awacs_beep_dev);
 
 	return dmasound_init();
 }
 
 static void __exit dmasound_awacs_cleanup(void)
 {
-	input_unregister_device(&awacs_beep_dev);
+	input_unregister_device(awacs_beep_dev);
 
 	switch (awacs_revision) {
 		case AWACS_TUMBLER:
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2005-11-01 05:54    [from the cache]
©2003-2008