summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/usbvideo/quickcam_messenger.c
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@infradead.org>2006-11-20 11:23:04 -0200
committerMauro Carvalho Chehab <mchehab@infradead.org>2006-11-20 11:23:04 -0200
commit1eab1d48fccb589c82e5f4ed660a2002fff802d2 (patch)
tree886070c7835355adfd7edb504da339ac7bc664ad /linux/drivers/media/video/usbvideo/quickcam_messenger.c
parent15f5fcbdd1131d103477ffcd53eebcdb30401eee (diff)
downloadmediapointer-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.c9
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)