Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6
[pandora-kernel.git] / drivers / media / video / pwc / pwc.h
index 601a549..0e4e2d7 100644 (file)
@@ -42,7 +42,6 @@
 #include <linux/input.h>
 #endif
 
-#include "pwc-uncompress.h"
 #include <media/pwc-ioctl.h>
 
 /* Version block */
 #define DEVICE_USE_CODEC3(x) ((x)>=700)
 #define DEVICE_USE_CODEC23(x) ((x)>=675)
 
+/* from pwc-dec.h */
+#define PWCX_FLAG_PLANAR        0x0001
+
 /* Request types: video */
 #define SET_LUM_CTL                    0x01
 #define GET_LUM_CTL                    0x02
@@ -200,6 +202,9 @@ struct pwc_device
 
        /* Pointer to our usb_device, may be NULL after unplug */
        struct usb_device *udev;
+       /* Protects the setting of udev to NULL by our disconnect handler */
+       struct mutex udevlock;
+
        /* type of cam (645, 646, 675, 680, 690, 720, 730, 740, 750) */
        int type;
        int release;            /* release number */
@@ -323,6 +328,13 @@ struct pwc_device
        struct v4l2_ctrl                *save_user;
        struct v4l2_ctrl                *restore_user;
        struct v4l2_ctrl                *restore_factory;
+       struct {
+               /* motor control cluster */
+               struct v4l2_ctrl        *motor_pan;
+               struct v4l2_ctrl        *motor_tilt;
+               struct v4l2_ctrl        *motor_pan_reset;
+               struct v4l2_ctrl        *motor_tilt_reset;
+       };
        /* CODEC3 models have both gain and exposure controlled by autogain */
        struct v4l2_ctrl                *autogain_expo_cluster[3];
 };
@@ -347,6 +359,8 @@ extern int pwc_mpt_reset(struct pwc_device *pdev, int flags);
 extern int pwc_mpt_set_angle(struct pwc_device *pdev, int pan, int tilt);
 extern int pwc_set_leds(struct pwc_device *pdev, int on_value, int off_value);
 extern int pwc_get_cmos_sensor(struct pwc_device *pdev, int *sensor);
+extern int send_control_msg(struct pwc_device *pdev,
+                           u8 request, u16 value, void *buf, int buflen);
 
 /* Control get / set helpers */
 int pwc_get_u8_ctrl(struct pwc_device *pdev, u8 request, u16 value, int *data);