@@ -540,10 +540,11 @@ static int do_command(struct gspca_dev *gspca_dev, u16 command,
/* test button press */
a = ((gspca_dev->usb_buf[1] & 0x02) == 0);
if (a != sd->params.qx3.button) {
-#if IS_ENABLED(CONFIG_INPUT)
- input_report_key(gspca_dev->input_dev, KEY_CAMERA, a);
- input_sync(gspca_dev->input_dev);
-#endif
+ if (IS_ENABLED(CONFIG_INPUT)) {
+ input_report_key(gspca_dev->input_dev,
+ KEY_CAMERA, a);
+ input_sync(gspca_dev->input_dev);
+ }
sd->params.qx3.button = a;
}
if (sd->params.qx3.button) {
@@ -1637,16 +1638,14 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
/* Update the camera status */
do_command(gspca_dev, CPIA_COMMAND_GetCameraStatus, 0, 0, 0, 0);
-#if IS_ENABLED(CONFIG_INPUT)
/* If the last button state is pressed, release it now! */
- if (sd->params.qx3.button) {
+ if (IS_ENABLED(CONFIG_INPUT) && sd->params.qx3.button) {
/* The camera latch will hold the pressed state until we reset
the latch, so we do not reset sd->params.qx3.button now, to
avoid a false keypress being reported the next sd_start */
input_report_key(gspca_dev->input_dev, KEY_CAMERA, 0);
input_sync(gspca_dev->input_dev);
}
-#endif
}
/* this function is called at probe and resume time */
@@ -149,8 +149,8 @@ struct gspca_dev {
struct usb_device *dev;
struct file *capt_file; /* file doing video capture */
/* protected by queue_lock */
-#if IS_ENABLED(CONFIG_INPUT)
struct input_dev *input_dev;
+#if IS_ENABLED(CONFIG_INPUT)
char phys[64]; /* physical device path */
#endif
@@ -246,15 +246,13 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
struct sd *sd = (struct sd *) gspca_dev;
konica_stream_off(gspca_dev);
-#if IS_ENABLED(CONFIG_INPUT)
/* Don't keep the button in the pressed state "forever" if it was
pressed when streaming is stopped */
- if (sd->snapshot_pressed) {
+ if (IS_ENABLED(CONFIG_INPUT) && sd->snapshot_pressed) {
input_report_key(gspca_dev->input_dev, KEY_CAMERA, 0);
input_sync(gspca_dev->input_dev);
sd->snapshot_pressed = 0;
}
-#endif
}
/* reception of an URB */
@@ -341,8 +339,7 @@ static void sd_isoc_irq(struct urb *urb)
if (st & 0x80) {
gspca_frame_add(gspca_dev, LAST_PACKET, NULL, 0);
gspca_frame_add(gspca_dev, FIRST_PACKET, NULL, 0);
- } else {
-#if IS_ENABLED(CONFIG_INPUT)
+ } else if (IS_ENABLED(CONFIG_INPUT)) {
u8 button_state = st & 0x40 ? 1 : 0;
if (sd->snapshot_pressed != button_state) {
input_report_key(gspca_dev->input_dev,
@@ -351,7 +348,6 @@ static void sd_isoc_irq(struct urb *urb)
input_sync(gspca_dev->input_dev);
sd->snapshot_pressed = button_state;
}
-#endif
if (st & 0x01)
continue;
}
@@ -823,14 +823,12 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
msleep(20);
reg_w(gspca_dev, 0x0309);
}
-#if IS_ENABLED(CONFIG_INPUT)
/* If the last button state is pressed, release it now! */
- if (sd->button_pressed) {
+ if (IS_ENABLED(CONFIG_INPUT) && sd->button_pressed) {
input_report_key(gspca_dev->input_dev, KEY_CAMERA, 0);
input_sync(gspca_dev->input_dev);
sd->button_pressed = 0;
}
-#endif
}
static void sd_pkt_scan(struct gspca_dev *gspca_dev,
@@ -841,8 +839,7 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev,
int pkt_type;
if (data[0] == 0x5a) {
-#if IS_ENABLED(CONFIG_INPUT)
- if (len > 20) {
+ if (IS_ENABLED(CONFIG_INPUT) && len > 20) {
u8 state = (data[20] & 0x80) ? 1 : 0;
if (sd->button_pressed != state) {
input_report_key(gspca_dev->input_dev,
@@ -851,7 +848,6 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev,
sd->button_pressed = state;
}
}
-#endif
/* Control Packet, after this came the header again,
* but extra bytes came in the packet before this,
* sometimes an EOF arrives, sometimes not... */
When CONFIG_INPUT is disabled, multiple gspca backend drivers print compile-time warnings about unused variables: media/usb/gspca/cpia1.c: In function 'sd_stopN': media/usb/gspca/cpia1.c:1627:13: error: unused variable 'sd' [-Werror=unused-variable] media/usb/gspca/konica.c: In function 'sd_stopN': media/usb/gspca/konica.c:246:13: error: unused variable 'sd' [-Werror=unused-variable] This converts the #if check into an if(), to let the compiler see where the variables are used, at the expense of slightly enlarging the gspca_dev structure. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Fixes: ee186fd96a5f ("[media] gscpa_t613: Add support for the camera button") Fixes: c2f644aeeba3 ("[media] gspca_cpia1: Add support for button") Fixes: b517af722860 ("V4L/DVB: gspca_konica: New gspca subdriver for konica chipset using cams") --- This is one of two approaches to avoid the warning, please pick either this or the other one. --- drivers/media/usb/gspca/cpia1.c | 13 ++++++------- drivers/media/usb/gspca/gspca.h | 2 +- drivers/media/usb/gspca/konica.c | 8 ++------ drivers/media/usb/gspca/t613.c | 8 ++------ 4 files changed, 11 insertions(+), 20 deletions(-) -- 2.9.0