summary refs log tree commit diff
path: root/drivers/media
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/video/gspca/gspca.c2
-rw-r--r--drivers/media/video/gspca/gspca.h3
2 files changed, 4 insertions, 1 deletions
diff --git a/drivers/media/video/gspca/gspca.c b/drivers/media/video/gspca/gspca.c
index 2c662ed91b5b..d9a934b99a89 100644
--- a/drivers/media/video/gspca/gspca.c
+++ b/drivers/media/video/gspca/gspca.c
@@ -158,7 +158,7 @@ static int gspca_input_connect(struct gspca_dev *dev)
 	int err = 0;
 
 	dev->input_dev = NULL;
-	if (dev->sd_desc->int_pkt_scan)  {
+	if (dev->sd_desc->int_pkt_scan || dev->sd_desc->other_input)  {
 		input_dev = input_allocate_device();
 		if (!input_dev)
 			return -ENOMEM;
diff --git a/drivers/media/video/gspca/gspca.h b/drivers/media/video/gspca/gspca.h
index 0ed254b496a5..02c696a22be0 100644
--- a/drivers/media/video/gspca/gspca.h
+++ b/drivers/media/video/gspca/gspca.h
@@ -131,6 +131,9 @@ struct sd_desc {
 	cam_ident_op get_chip_ident;
 #ifdef CONFIG_INPUT
 	cam_int_pkt_op int_pkt_scan;
+	/* other_input makes the gspca core create gspca_dev->input even when
+	   int_pkt_scan is NULL, for cams with non interrupt driven buttons */
+	u8 other_input;
 #endif
 };