diff options
author | Mauro Carvalho Chehab <mchehab@infradead.org> | 2006-11-20 11:23:04 -0200 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2006-11-20 11:23:04 -0200 |
commit | 1eab1d48fccb589c82e5f4ed660a2002fff802d2 (patch) | |
tree | 886070c7835355adfd7edb504da339ac7bc664ad /linux/drivers/media/video/usbvideo/quickcam_messenger.c | |
parent | 15f5fcbdd1131d103477ffcd53eebcdb30401eee (diff) | |
download | mediapointer-dvb-s2-1eab1d48fccb589c82e5f4ed660a2002fff802d2.tar.gz mediapointer-dvb-s2-1eab1d48fccb589c82e5f4ed660a2002fff802d2.tar.bz2 |
Handle errors from input_register_device()
From: Dmitry Torokhov <dtor@insightbb.com>
Also sprinkled some input_sync() throughout the code.
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Acked-by: Ricardo Cerqueira <v4l@cerqueira.org>
Acked-by: Oliver Endriss <o.endriss@gmx.de>
Acked-by: Andrew de Quincey <adq_dvb@lidskialf.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'linux/drivers/media/video/usbvideo/quickcam_messenger.c')
-rw-r--r-- | linux/drivers/media/video/usbvideo/quickcam_messenger.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/linux/drivers/media/video/usbvideo/quickcam_messenger.c b/linux/drivers/media/video/usbvideo/quickcam_messenger.c index 95f6b86f0..8c7504bba 100644 --- a/linux/drivers/media/video/usbvideo/quickcam_messenger.c +++ b/linux/drivers/media/video/usbvideo/quickcam_messenger.c @@ -91,6 +91,7 @@ MODULE_DEVICE_TABLE(usb, qcm_table); static void qcm_register_input(struct qcm *cam, struct usb_device *dev) { struct input_dev *input_dev; + int error; usb_make_path(dev, cam->input_physname, sizeof(cam->input_physname)); strncat(cam->input_physname, "/input0", sizeof(cam->input_physname)); @@ -111,7 +112,13 @@ static void qcm_register_input(struct qcm *cam, struct usb_device *dev) input_dev->private = cam; - input_register_device(cam->input); + error = input_register_device(cam->input); + if (error) { + warn("Failed to register camera's input device, err: %d\n", + error); + input_free_device(cam->input); + cam->input = NULL; + } } static void qcm_unregister_input(struct qcm *cam) |