Update of /cvsroot/gc-linux/linux/drivers/input/si
In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv22637/drivers/input/si
Modified Files:
gcn-si.c
Log Message:
Merged 2.6.19.
Index: gcn-si.c
===================================================================
RCS file: /cvsroot/gc-linux/linux/drivers/input/si/gcn-si.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- gcn-si.c 17 Feb 2007 23:43:41 -0000 1.5
+++ gcn-si.c 18 Feb 2007 22:56:02 -0000 1.6
@@ -406,11 +406,13 @@
/**
*
*/
-static void si_setup_pad(struct input_dev *idev)
+static int si_setup_pad(struct input_dev *idev)
{
+ struct ff_device *ff;
+ int error;
+
set_bit(EV_KEY, idev->evbit);
set_bit(EV_ABS, idev->evbit);
- set_bit(EV_FF, idev->evbit);
set_bit(BTN_A, idev->keybit);
set_bit(BTN_B, idev->keybit);
@@ -474,9 +476,14 @@
idev->absflat[ABS_BRAKE] = 16;
/* rumbling */
+ set_bit(EV_FF, idev->evbit);
set_bit(FF_RUMBLE, idev->ffbit);
+ error = input_ff_create(idev, 1);
+ if (error)
+ return error;
+ ff = idev->ff;
idev->event = gcn_si_event;
- idev->ff_effects_max = 1;
+ return 0;
}
/**
@@ -556,7 +563,7 @@
switch (sdev->id) {
case CTL_PAD:
- si_setup_pad(idev);
+ result = si_setup_pad(idev);
break;
case CTL_KEYBOARD:
si_setup_keyboard(idev);
@@ -566,6 +573,11 @@
break;
}
+ if (result) {
+ input_free_device(idev);
+ goto done;
+ }
+
sdev->idev = idev;
done:
|