From: Albert H. <he...@us...> - 2007-02-18 22:57:58
|
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: |