Staging: easycap: fix sparse warnings for module parameters
authorTomas Winkler <tomas.winkler@intel.com>
Tue, 18 Jan 2011 12:03:23 +0000 (14:03 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 21 Jan 2011 20:27:19 +0000 (12:27 -0800)
easycap_main.c:34:5: warning: symbol 'easycap_debug' was not declared. Should it be static?
easycap_main.c:36:5: warning: symbol 'easycap_gain' was not declared. Should it be static?

These two variables actually were declared in several places.
The variables are used in several files.
I've fixed "easycap_debug" so it gets declared in one place only and included properly.
For "easycap_gain" made it static and I created added a
->gain member to the easycap struct.  This seems cleaner than using a
global variable and later on we may make this controlable via sysfs.

Cc:Mike Thomas <rmthomas@sciolus.org>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Acked-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/easycap/easycap.h
drivers/staging/easycap/easycap_ioctl.h
drivers/staging/easycap/easycap_low.c
drivers/staging/easycap/easycap_low.h
drivers/staging/easycap/easycap_main.c
drivers/staging/easycap/easycap_settings.h
drivers/staging/easycap/easycap_sound.h
drivers/staging/easycap/easycap_testcard.h

index 111f53c..1205f5f 100644 (file)
@@ -475,6 +475,7 @@ int audio_idle;
 int audio_eof;
 int volume;
 int mute;
+s8 gain;
 
 struct data_buffer audio_isoc_buffer[AUDIO_ISOC_BUFFER_MANY];
 
@@ -639,6 +640,8 @@ struct signed_div_result {
 long long int quotient;
 unsigned long long int remainder;
 } signed_div(long long int, long long int);
+
+
 /*---------------------------------------------------------------------------*/
 /*
  *  MACROS
@@ -668,6 +671,7 @@ unsigned long long int remainder;
  *  IMMEDIATELY OBVIOUS FROM A CASUAL READING OF THE SOURCE CODE.  BEWARE.
 */
 /*---------------------------------------------------------------------------*/
+extern int easycap_debug;
 #define SAY(format, args...) do { \
        printk(KERN_DEBUG "easycap:: %s: " \
                        format, __func__, ##args); \
index 938de37..245386f 100644 (file)
@@ -27,8 +27,6 @@
 #if !defined(EASYCAP_IOCTL_H)
 #define EASYCAP_IOCTL_H
 
-extern int easycap_debug;
-extern int easycap_gain;
 extern struct easycap_dongle easycapdc60_dongle[];
 extern struct easycap_standard easycap_standard[];
 extern struct easycap_format easycap_format[];
index b618d4b..e9f3a36 100644 (file)
@@ -1091,11 +1091,7 @@ SAM("0x%04X:0x%04X is audio vendor id\n", id1, id2);
  *  SELECT AUDIO SOURCE "LINE IN" AND SET THE AUDIO GAIN.
 */
 /*---------------------------------------------------------------------------*/
-if (31 < easycap_gain)
-       easycap_gain = 31;
-if (0 > easycap_gain)
-       easycap_gain = 0;
-if (0 != audio_gainset(pusb_device, (__s8)easycap_gain))
+if (0 != audio_gainset(pusb_device, peasycap->gain))
        SAY("ERROR: audio_gainset() failed\n");
 check_vt(pusb_device);
 return 0;
index d2b69e9..7f3b393 100644 (file)
@@ -27,8 +27,6 @@
 #if !defined(EASYCAP_LOW_H)
 #define EASYCAP_LOW_H
 
-extern int easycap_debug;
-extern int easycap_gain;
 extern struct easycap_dongle easycapdc60_dongle[];
 
 #endif /*EASYCAP_LOW_H*/
index 84128cf..a0b954c 100644 (file)
@@ -33,7 +33,7 @@
 
 int easycap_debug;
 static int easycap_bars = 1;
-int easycap_gain = 16;
+static int easycap_gain = 16;
 module_param_named(debug, easycap_debug, int, S_IRUGO | S_IWUSR);
 module_param_named(bars, easycap_bars, int, S_IRUGO | S_IWUSR);
 module_param_named(gain, easycap_gain, int, S_IRUGO | S_IWUSR);
@@ -3412,6 +3412,8 @@ struct v4l2_device *pv4l2_device;
 #endif /*EASYCAP_IS_VIDEODEV_CLIENT*/
 /*^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
 
+/* setup modules params */
+
 if ((struct usb_interface *)NULL == pusb_interface) {
        SAY("ERROR: pusb_interface is NULL\n");
        return -EFAULT;
@@ -3547,6 +3549,9 @@ if (0 == bInterfaceNumber) {
                        "%i=peasycap->kref.refcount.counter\n", \
                        bInterfaceNumber, peasycap->kref.refcount.counter);
 
+       /* module params */
+       peasycap->gain = (s8)clamp(easycap_gain, 0, 31);
+
        init_waitqueue_head(&peasycap->wq_video);
        init_waitqueue_head(&peasycap->wq_audio);
        init_waitqueue_head(&peasycap->wq_trigger);
index 5fe6f07..09b11cb 100644 (file)
@@ -27,8 +27,6 @@
 #if !defined(EASYCAP_SETTINGS_H)
 #define EASYCAP_SETTINGS_H
 
-extern int easycap_debug;
-extern int easycap_gain;
 extern struct easycap_dongle easycapdc60_dongle[];
 
 #endif /*EASYCAP_SETTINGS_H*/
index 82104c8..ffcd6f2 100644 (file)
@@ -27,8 +27,6 @@
 #if !defined(EASYCAP_SOUND_H)
 #define EASYCAP_SOUND_H
 
-extern int easycap_debug;
-extern int easycap_gain;
 extern struct easycap_dongle easycapdc60_dongle[];
 extern struct easycap *peasycap;
 extern struct usb_driver easycap_usb_driver;
index 5159127..2a21e7c 100644 (file)
@@ -27,8 +27,6 @@
 #if !defined(EASYCAP_TESTCARD_H)
 #define EASYCAP_TESTCARD_H
 
-extern int easycap_debug;
-extern int easycap_gain;
 extern struct easycap_dongle easycapdc60_dongle[];
 
 #endif /*EASYCAP_TESTCARD_H*/