This is an automatic generated email to let you know that the following patch 
were queued at the 
http://git.linuxtv.org/media_tree.git tree:

Subject: [media] stk-webcam: remove V4L1 compatibility code, replace with V4L2 
controls
Author:  Hans Verkuil <[email protected]>
Date:    Sat Dec 25 08:01:38 2010 -0300

Signed-off-by: Hans Verkuil <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>

 drivers/media/video/stk-webcam.c |  148 ++++++++------------------------------
 1 files changed, 30 insertions(+), 118 deletions(-)

---

http://git.linuxtv.org/media_tree.git?a=commitdiff;h=fca540c283ba5c032a4c498f0ba4cb4903dc6ca0

diff --git a/drivers/media/video/stk-webcam.c b/drivers/media/video/stk-webcam.c
index b5afe5f..d1a2cef 100644
--- a/drivers/media/video/stk-webcam.c
+++ b/drivers/media/video/stk-webcam.c
@@ -230,120 +230,6 @@ static int stk_initialise(struct stk_camera *dev)
                return -1;
 }
 
-#ifdef CONFIG_VIDEO_V4L1_COMPAT
-
-/* sysfs functions */
-/*FIXME cleanup this */
-
-static ssize_t show_brightness(struct device *class,
-                       struct device_attribute *attr, char *buf)
-{
-       struct video_device *vdev = to_video_device(class);
-       struct stk_camera *dev = vdev_to_camera(vdev);
-
-       return sprintf(buf, "%X\n", dev->vsettings.brightness);
-}
-
-static ssize_t store_brightness(struct device *class,
-               struct device_attribute *attr, const char *buf, size_t count)
-{
-       char *endp;
-       unsigned long value;
-       int ret;
-
-       struct video_device *vdev = to_video_device(class);
-       struct stk_camera *dev = vdev_to_camera(vdev);
-
-       value = simple_strtoul(buf, &endp, 16);
-
-       dev->vsettings.brightness = (int) value;
-
-       ret = stk_sensor_set_brightness(dev, value >> 8);
-       if (ret)
-               return ret;
-       else
-               return count;
-}
-
-static ssize_t show_hflip(struct device *class,
-               struct device_attribute *attr, char *buf)
-{
-       struct video_device *vdev = to_video_device(class);
-       struct stk_camera *dev = vdev_to_camera(vdev);
-
-       return sprintf(buf, "%d\n", dev->vsettings.hflip);
-}
-
-static ssize_t store_hflip(struct device *class,
-               struct device_attribute *attr, const char *buf, size_t count)
-{
-       struct video_device *vdev = to_video_device(class);
-       struct stk_camera *dev = vdev_to_camera(vdev);
-
-       if (strncmp(buf, "1", 1) == 0)
-               dev->vsettings.hflip = 1;
-       else if (strncmp(buf, "0", 1) == 0)
-               dev->vsettings.hflip = 0;
-       else
-               return -EINVAL;
-
-       return strlen(buf);
-}
-
-static ssize_t show_vflip(struct device *class,
-               struct device_attribute *attr, char *buf)
-{
-       struct video_device *vdev = to_video_device(class);
-       struct stk_camera *dev = vdev_to_camera(vdev);
-
-       return sprintf(buf, "%d\n", dev->vsettings.vflip);
-}
-
-static ssize_t store_vflip(struct device *class,
-               struct device_attribute *attr, const char *buf, size_t count)
-{
-       struct video_device *vdev = to_video_device(class);
-       struct stk_camera *dev = vdev_to_camera(vdev);
-
-       if (strncmp(buf, "1", 1) == 0)
-               dev->vsettings.vflip = 1;
-       else if (strncmp(buf, "0", 1) == 0)
-               dev->vsettings.vflip = 0;
-       else
-               return -EINVAL;
-
-       return strlen(buf);
-}
-
-static DEVICE_ATTR(brightness, S_IRUGO | S_IWUGO,
-                       show_brightness, store_brightness);
-static DEVICE_ATTR(hflip, S_IRUGO | S_IWUGO, show_hflip, store_hflip);
-static DEVICE_ATTR(vflip, S_IRUGO | S_IWUGO, show_vflip, store_vflip);
-
-static int stk_create_sysfs_files(struct video_device *vdev)
-{
-       int ret;
-
-       ret = device_create_file(&vdev->dev, &dev_attr_brightness);
-       ret += device_create_file(&vdev->dev, &dev_attr_hflip);
-       ret += device_create_file(&vdev->dev, &dev_attr_vflip);
-       if (ret)
-               STK_WARNING("Could not create sysfs files\n");
-       return ret;
-}
-
-static void stk_remove_sysfs_files(struct video_device *vdev)
-{
-       device_remove_file(&vdev->dev, &dev_attr_brightness);
-       device_remove_file(&vdev->dev, &dev_attr_hflip);
-       device_remove_file(&vdev->dev, &dev_attr_vflip);
-}
-
-#else
-#define stk_create_sysfs_files(a)
-#define stk_remove_sysfs_files(a)
-#endif
-
 /* *********************************************** */
 /*
  * This function is called as an URB transfert is complete (Isochronous pipe).
@@ -878,7 +764,24 @@ static struct v4l2_queryctrl stk_controls[] = {
                .step    = 0x0100,
                .default_value = 0x6000,
        },
-       /*TODO: get more controls to work */
+       {
+               .id      = V4L2_CID_HFLIP,
+               .type    = V4L2_CTRL_TYPE_BOOLEAN,
+               .name    = "Horizontal Flip",
+               .minimum = 0,
+               .maximum = 1,
+               .step    = 1,
+               .default_value = 1,
+       },
+       {
+               .id      = V4L2_CID_VFLIP,
+               .type    = V4L2_CTRL_TYPE_BOOLEAN,
+               .name    = "Vertical Flip",
+               .minimum = 0,
+               .maximum = 1,
+               .step    = 1,
+               .default_value = 1,
+       },
 };
 
 static int stk_vidioc_queryctrl(struct file *filp,
@@ -906,6 +809,12 @@ static int stk_vidioc_g_ctrl(struct file *filp,
        case V4L2_CID_BRIGHTNESS:
                c->value = dev->vsettings.brightness;
                break;
+       case V4L2_CID_HFLIP:
+               c->value = dev->vsettings.hflip;
+               break;
+       case V4L2_CID_VFLIP:
+               c->value = dev->vsettings.vflip;
+               break;
        default:
                return -EINVAL;
        }
@@ -920,6 +829,12 @@ static int stk_vidioc_s_ctrl(struct file *filp,
        case V4L2_CID_BRIGHTNESS:
                dev->vsettings.brightness = c->value;
                return stk_sensor_set_brightness(dev, c->value >> 8);
+       case V4L2_CID_HFLIP:
+               dev->vsettings.hflip = c->value;
+               return 0;
+       case V4L2_CID_VFLIP:
+               dev->vsettings.vflip = c->value;
+               return 0;
        default:
                return -EINVAL;
        }
@@ -1394,8 +1309,6 @@ static int stk_camera_probe(struct usb_interface 
*interface,
                goto error;
        }
 
-       stk_create_sysfs_files(&dev->vdev);
-
        return 0;
 
 error:
@@ -1411,7 +1324,6 @@ static void stk_camera_disconnect(struct usb_interface 
*interface)
        unset_present(dev);
 
        wake_up_interruptible(&dev->wait_frame);
-       stk_remove_sysfs_files(&dev->vdev);
 
        STK_INFO("Syntek USB2.0 Camera release resources device %s\n",
                 video_device_node_name(&dev->vdev));

_______________________________________________
linuxtv-commits mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to