summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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
};