* [PATCH 3/3] stkwebcam: simplify access to stk_camera struct
@ 2008-09-30 0:29 David Ellingsworth
2008-09-30 20:29 ` David Ellingsworth
0 siblings, 1 reply; 5+ messages in thread
From: David Ellingsworth @ 2008-09-30 0:29 UTC (permalink / raw)
To: v4l, Jaime Velasco Juan, Mauro Carvalho Chehab
[-- Attachment #1: Type: text/plain, Size: 3140 bytes --]
>From 4a7648e95119fb923f9c5656ea7512ae624dc4ba Mon Sep 17 00:00:00 2001
From: David Ellingsworth <david@identd.dyndns.org>
Date: Mon, 29 Sep 2008 20:00:26 -0400
Subject: [PATCH] stkwebcam: simplify access to stk_camera struct
Signed-off-by: David Ellingsworth <david@identd.dyndns.org>
---
drivers/media/video/stk-webcam.c | 40 ++++---------------------------------
1 files changed, 5 insertions(+), 35 deletions(-)
diff --git a/drivers/media/video/stk-webcam.c b/drivers/media/video/stk-webcam.c
index 442dcd2..8ca9a89 100644
--- a/drivers/media/video/stk-webcam.c
+++ b/drivers/media/video/stk-webcam.c
@@ -677,7 +677,7 @@ static int v4l_stk_open(struct inode *inode,
struct file *fp)
unlock_kernel();
return -ENXIO;
}
- fp->private_data = vdev;
+ fp->private_data = dev;
usb_autopm_get_interface(dev->interface);
unlock_kernel();
@@ -686,19 +686,7 @@ static int v4l_stk_open(struct inode *inode,
struct file *fp)
static int v4l_stk_release(struct inode *inode, struct file *fp)
{
- struct stk_camera *dev;
- struct video_device *vdev;
-
- vdev = video_devdata(fp);
- if (vdev == NULL) {
- STK_ERROR("v4l_release called w/o video devdata\n");
- return -EFAULT;
- }
- dev = vdev_to_camera(vdev);
- if (dev == NULL) {
- STK_ERROR("v4l_release called on removed device\n");
- return -ENODEV;
- }
+ struct stk_camera *dev = fp->private_data;
if (dev->owner == fp) {
stk_stop_stream(dev);
@@ -718,14 +706,8 @@ static ssize_t v4l_stk_read(struct file *fp, char
__user *buf,
int i;
int ret;
unsigned long flags;
- struct stk_camera *dev;
- struct video_device *vdev;
struct stk_sio_buffer *sbuf;
-
- vdev = video_devdata(fp);
- if (vdev == NULL)
- return -EFAULT;
- dev = vdev_to_camera(vdev);
+ struct stk_camera *dev = fp->private_data;
if (dev == NULL)
return -EIO;
@@ -784,15 +766,8 @@ static ssize_t v4l_stk_read(struct file *fp, char
__user *buf,
static unsigned int v4l_stk_poll(struct file *fp, poll_table *wait)
{
- struct stk_camera *dev;
- struct video_device *vdev;
-
- vdev = video_devdata(fp);
-
- if (vdev == NULL)
- return -EFAULT;
+ struct stk_camera *dev = fp->private_data;
- dev = vdev_to_camera(vdev);
if (dev == NULL)
return -ENODEV;
@@ -830,16 +805,12 @@ static int v4l_stk_mmap(struct file *fp, struct
vm_area_struct *vma)
unsigned int i;
int ret;
unsigned long offset = vma->vm_pgoff << PAGE_SHIFT;
- struct stk_camera *dev;
- struct video_device *vdev;
+ struct stk_camera *dev = fp->private_data;
struct stk_sio_buffer *sbuf = NULL;
if (!(vma->vm_flags & VM_WRITE) || !(vma->vm_flags & VM_SHARED))
return -EINVAL;
- vdev = video_devdata(fp);
- dev = vdev_to_camera(vdev);
-
for (i = 0; i < dev->n_sbufs; i++) {
if (dev->sio_bufs[i].v4lbuf.m.offset == offset) {
sbuf = dev->sio_bufs + i;
@@ -1361,7 +1332,6 @@ static int stk_register_video_device(struct
stk_camera *dev)
dev->vdev = stk_v4l_data;
dev->vdev.debug = debug;
dev->vdev.parent = &dev->interface->dev;
- video_set_drvdata(&dev->vdev, dev);
err = video_register_device(&dev->vdev, VFL_TYPE_GRABBER, -1);
if (err)
STK_ERROR("v4l registration failed\n");
--
1.5.6
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0003-stkwebcam-simplify-access-to-stk_camera-struct.patch --]
[-- Type: text/x-diff; name=0003-stkwebcam-simplify-access-to-stk_camera-struct.patch, Size: 3149 bytes --]
From 4a7648e95119fb923f9c5656ea7512ae624dc4ba Mon Sep 17 00:00:00 2001
From: David Ellingsworth <david@identd.dyndns.org>
Date: Mon, 29 Sep 2008 20:00:26 -0400
Subject: [PATCH] stkwebcam: simplify access to stk_camera struct
Signed-off-by: David Ellingsworth <david@identd.dyndns.org>
---
drivers/media/video/stk-webcam.c | 40 ++++---------------------------------
1 files changed, 5 insertions(+), 35 deletions(-)
diff --git a/drivers/media/video/stk-webcam.c b/drivers/media/video/stk-webcam.c
index 442dcd2..8ca9a89 100644
--- a/drivers/media/video/stk-webcam.c
+++ b/drivers/media/video/stk-webcam.c
@@ -677,7 +677,7 @@ static int v4l_stk_open(struct inode *inode, struct file *fp)
unlock_kernel();
return -ENXIO;
}
- fp->private_data = vdev;
+ fp->private_data = dev;
usb_autopm_get_interface(dev->interface);
unlock_kernel();
@@ -686,19 +686,7 @@ static int v4l_stk_open(struct inode *inode, struct file *fp)
static int v4l_stk_release(struct inode *inode, struct file *fp)
{
- struct stk_camera *dev;
- struct video_device *vdev;
-
- vdev = video_devdata(fp);
- if (vdev == NULL) {
- STK_ERROR("v4l_release called w/o video devdata\n");
- return -EFAULT;
- }
- dev = vdev_to_camera(vdev);
- if (dev == NULL) {
- STK_ERROR("v4l_release called on removed device\n");
- return -ENODEV;
- }
+ struct stk_camera *dev = fp->private_data;
if (dev->owner == fp) {
stk_stop_stream(dev);
@@ -718,14 +706,8 @@ static ssize_t v4l_stk_read(struct file *fp, char __user *buf,
int i;
int ret;
unsigned long flags;
- struct stk_camera *dev;
- struct video_device *vdev;
struct stk_sio_buffer *sbuf;
-
- vdev = video_devdata(fp);
- if (vdev == NULL)
- return -EFAULT;
- dev = vdev_to_camera(vdev);
+ struct stk_camera *dev = fp->private_data;
if (dev == NULL)
return -EIO;
@@ -784,15 +766,8 @@ static ssize_t v4l_stk_read(struct file *fp, char __user *buf,
static unsigned int v4l_stk_poll(struct file *fp, poll_table *wait)
{
- struct stk_camera *dev;
- struct video_device *vdev;
-
- vdev = video_devdata(fp);
-
- if (vdev == NULL)
- return -EFAULT;
+ struct stk_camera *dev = fp->private_data;
- dev = vdev_to_camera(vdev);
if (dev == NULL)
return -ENODEV;
@@ -830,16 +805,12 @@ static int v4l_stk_mmap(struct file *fp, struct vm_area_struct *vma)
unsigned int i;
int ret;
unsigned long offset = vma->vm_pgoff << PAGE_SHIFT;
- struct stk_camera *dev;
- struct video_device *vdev;
+ struct stk_camera *dev = fp->private_data;
struct stk_sio_buffer *sbuf = NULL;
if (!(vma->vm_flags & VM_WRITE) || !(vma->vm_flags & VM_SHARED))
return -EINVAL;
- vdev = video_devdata(fp);
- dev = vdev_to_camera(vdev);
-
for (i = 0; i < dev->n_sbufs; i++) {
if (dev->sio_bufs[i].v4lbuf.m.offset == offset) {
sbuf = dev->sio_bufs + i;
@@ -1361,7 +1332,6 @@ static int stk_register_video_device(struct stk_camera *dev)
dev->vdev = stk_v4l_data;
dev->vdev.debug = debug;
dev->vdev.parent = &dev->interface->dev;
- video_set_drvdata(&dev->vdev, dev);
err = video_register_device(&dev->vdev, VFL_TYPE_GRABBER, -1);
if (err)
STK_ERROR("v4l registration failed\n");
--
1.5.6
[-- Attachment #3: Type: text/plain, Size: 164 bytes --]
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [PATCH 3/3] stkwebcam: simplify access to stk_camera struct
2008-09-30 0:29 [PATCH 3/3] stkwebcam: simplify access to stk_camera struct David Ellingsworth
@ 2008-09-30 20:29 ` David Ellingsworth
2008-09-30 23:04 ` David Ellingsworth
0 siblings, 1 reply; 5+ messages in thread
From: David Ellingsworth @ 2008-09-30 20:29 UTC (permalink / raw)
To: v4l, Jaime Velasco Juan, Mauro Carvalho Chehab
I just noticed a small discrepancy in this patch. Since
fp->private_data is set to the current stk_camera struct whenever a
successful open occurs, it is unnecessary to verify that this pointer
is not NULL during the associated read and poll functions. I will fix
this discrepancy in a few hours and re-submit the updated patch.
Regards,
David Ellingsworth
On Mon, Sep 29, 2008 at 8:29 PM, David Ellingsworth
<david@identd.dyndns.org> wrote:
> From 4a7648e95119fb923f9c5656ea7512ae624dc4ba Mon Sep 17 00:00:00 2001
> From: David Ellingsworth <david@identd.dyndns.org>
> Date: Mon, 29 Sep 2008 20:00:26 -0400
> Subject: [PATCH] stkwebcam: simplify access to stk_camera struct
>
>
> Signed-off-by: David Ellingsworth <david@identd.dyndns.org>
> ---
> drivers/media/video/stk-webcam.c | 40 ++++---------------------------------
> 1 files changed, 5 insertions(+), 35 deletions(-)
>
> diff --git a/drivers/media/video/stk-webcam.c b/drivers/media/video/stk-webcam.c
> index 442dcd2..8ca9a89 100644
> --- a/drivers/media/video/stk-webcam.c
> +++ b/drivers/media/video/stk-webcam.c
> @@ -677,7 +677,7 @@ static int v4l_stk_open(struct inode *inode,
> struct file *fp)
> unlock_kernel();
> return -ENXIO;
> }
> - fp->private_data = vdev;
> + fp->private_data = dev;
> usb_autopm_get_interface(dev->interface);
> unlock_kernel();
>
> @@ -686,19 +686,7 @@ static int v4l_stk_open(struct inode *inode,
> struct file *fp)
>
> static int v4l_stk_release(struct inode *inode, struct file *fp)
> {
> - struct stk_camera *dev;
> - struct video_device *vdev;
> -
> - vdev = video_devdata(fp);
> - if (vdev == NULL) {
> - STK_ERROR("v4l_release called w/o video devdata\n");
> - return -EFAULT;
> - }
> - dev = vdev_to_camera(vdev);
> - if (dev == NULL) {
> - STK_ERROR("v4l_release called on removed device\n");
> - return -ENODEV;
> - }
> + struct stk_camera *dev = fp->private_data;
>
> if (dev->owner == fp) {
> stk_stop_stream(dev);
> @@ -718,14 +706,8 @@ static ssize_t v4l_stk_read(struct file *fp, char
> __user *buf,
> int i;
> int ret;
> unsigned long flags;
> - struct stk_camera *dev;
> - struct video_device *vdev;
> struct stk_sio_buffer *sbuf;
> -
> - vdev = video_devdata(fp);
> - if (vdev == NULL)
> - return -EFAULT;
> - dev = vdev_to_camera(vdev);
> + struct stk_camera *dev = fp->private_data;
>
> if (dev == NULL)
> return -EIO;
> @@ -784,15 +766,8 @@ static ssize_t v4l_stk_read(struct file *fp, char
> __user *buf,
>
> static unsigned int v4l_stk_poll(struct file *fp, poll_table *wait)
> {
> - struct stk_camera *dev;
> - struct video_device *vdev;
> -
> - vdev = video_devdata(fp);
> -
> - if (vdev == NULL)
> - return -EFAULT;
> + struct stk_camera *dev = fp->private_data;
>
> - dev = vdev_to_camera(vdev);
> if (dev == NULL)
> return -ENODEV;
>
> @@ -830,16 +805,12 @@ static int v4l_stk_mmap(struct file *fp, struct
> vm_area_struct *vma)
> unsigned int i;
> int ret;
> unsigned long offset = vma->vm_pgoff << PAGE_SHIFT;
> - struct stk_camera *dev;
> - struct video_device *vdev;
> + struct stk_camera *dev = fp->private_data;
> struct stk_sio_buffer *sbuf = NULL;
>
> if (!(vma->vm_flags & VM_WRITE) || !(vma->vm_flags & VM_SHARED))
> return -EINVAL;
>
> - vdev = video_devdata(fp);
> - dev = vdev_to_camera(vdev);
> -
> for (i = 0; i < dev->n_sbufs; i++) {
> if (dev->sio_bufs[i].v4lbuf.m.offset == offset) {
> sbuf = dev->sio_bufs + i;
> @@ -1361,7 +1332,6 @@ static int stk_register_video_device(struct
> stk_camera *dev)
> dev->vdev = stk_v4l_data;
> dev->vdev.debug = debug;
> dev->vdev.parent = &dev->interface->dev;
> - video_set_drvdata(&dev->vdev, dev);
> err = video_register_device(&dev->vdev, VFL_TYPE_GRABBER, -1);
> if (err)
> STK_ERROR("v4l registration failed\n");
> --
> 1.5.6
>
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH 3/3] stkwebcam: simplify access to stk_camera struct
2008-09-30 20:29 ` David Ellingsworth
@ 2008-09-30 23:04 ` David Ellingsworth
[not found] ` <34E2ED35C2EB67499BA8591290AF20D506B237@pnd-iet-msg.wipro.com>
0 siblings, 1 reply; 5+ messages in thread
From: David Ellingsworth @ 2008-09-30 23:04 UTC (permalink / raw)
To: v4l, Jaime Velasco Juan, Mauro Carvalho Chehab
[-- Attachment #1: Type: text/plain, Size: 3362 bytes --]
Here is the updated patch. It removes the now unnecessary checks for
NULL in the read and poll functions.
Regards,
David Ellingsworth
>From b11cdb579a64776eec1c87b0e3edbba23567a2fc Mon Sep 17 00:00:00 2001
From: David Ellingsworth <david@identd.dyndns.org>
Date: Tue, 30 Sep 2008 18:54:05 -0400
Subject: [PATCH] stkwebcam: simplify access to stk_camera struct
Signed-off-by: David Ellingsworth <david@identd.dyndns.org>
---
drivers/media/video/stk-webcam.c | 46 ++++---------------------------------
1 files changed, 5 insertions(+), 41 deletions(-)
diff --git a/drivers/media/video/stk-webcam.c b/drivers/media/video/stk-webcam.c
index 442dcd2..edaea49 100644
--- a/drivers/media/video/stk-webcam.c
+++ b/drivers/media/video/stk-webcam.c
@@ -677,7 +677,7 @@ static int v4l_stk_open(struct inode *inode,
struct file *fp)
unlock_kernel();
return -ENXIO;
}
- fp->private_data = vdev;
+ fp->private_data = dev;
usb_autopm_get_interface(dev->interface);
unlock_kernel();
@@ -686,19 +686,7 @@ static int v4l_stk_open(struct inode *inode,
struct file *fp)
static int v4l_stk_release(struct inode *inode, struct file *fp)
{
- struct stk_camera *dev;
- struct video_device *vdev;
-
- vdev = video_devdata(fp);
- if (vdev == NULL) {
- STK_ERROR("v4l_release called w/o video devdata\n");
- return -EFAULT;
- }
- dev = vdev_to_camera(vdev);
- if (dev == NULL) {
- STK_ERROR("v4l_release called on removed device\n");
- return -ENODEV;
- }
+ struct stk_camera *dev = fp->private_data;
if (dev->owner == fp) {
stk_stop_stream(dev);
@@ -718,17 +706,8 @@ static ssize_t v4l_stk_read(struct file *fp, char
__user *buf,
int i;
int ret;
unsigned long flags;
- struct stk_camera *dev;
- struct video_device *vdev;
struct stk_sio_buffer *sbuf;
-
- vdev = video_devdata(fp);
- if (vdev == NULL)
- return -EFAULT;
- dev = vdev_to_camera(vdev);
-
- if (dev == NULL)
- return -EIO;
+ struct stk_camera *dev = fp->private_data;
if (!is_present(dev))
return -EIO;
@@ -784,17 +763,7 @@ static ssize_t v4l_stk_read(struct file *fp, char
__user *buf,
static unsigned int v4l_stk_poll(struct file *fp, poll_table *wait)
{
- struct stk_camera *dev;
- struct video_device *vdev;
-
- vdev = video_devdata(fp);
-
- if (vdev == NULL)
- return -EFAULT;
-
- dev = vdev_to_camera(vdev);
- if (dev == NULL)
- return -ENODEV;
+ struct stk_camera *dev = fp->private_data;
poll_wait(fp, &dev->wait_frame, wait);
@@ -830,16 +799,12 @@ static int v4l_stk_mmap(struct file *fp, struct
vm_area_struct *vma)
unsigned int i;
int ret;
unsigned long offset = vma->vm_pgoff << PAGE_SHIFT;
- struct stk_camera *dev;
- struct video_device *vdev;
+ struct stk_camera *dev = fp->private_data;
struct stk_sio_buffer *sbuf = NULL;
if (!(vma->vm_flags & VM_WRITE) || !(vma->vm_flags & VM_SHARED))
return -EINVAL;
- vdev = video_devdata(fp);
- dev = vdev_to_camera(vdev);
-
for (i = 0; i < dev->n_sbufs; i++) {
if (dev->sio_bufs[i].v4lbuf.m.offset == offset) {
sbuf = dev->sio_bufs + i;
@@ -1361,7 +1326,6 @@ static int stk_register_video_device(struct
stk_camera *dev)
dev->vdev = stk_v4l_data;
dev->vdev.debug = debug;
dev->vdev.parent = &dev->interface->dev;
- video_set_drvdata(&dev->vdev, dev);
err = video_register_device(&dev->vdev, VFL_TYPE_GRABBER, -1);
if (err)
STK_ERROR("v4l registration failed\n");
--
1.5.6
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0003-stkwebcam-simplify-access-to-stk_camera-struct.patch --]
[-- Type: text/x-diff; name=0003-stkwebcam-simplify-access-to-stk_camera-struct.patch, Size: 3234 bytes --]
From b11cdb579a64776eec1c87b0e3edbba23567a2fc Mon Sep 17 00:00:00 2001
From: David Ellingsworth <david@identd.dyndns.org>
Date: Tue, 30 Sep 2008 18:54:05 -0400
Subject: [PATCH] stkwebcam: simplify access to stk_camera struct
Signed-off-by: David Ellingsworth <david@identd.dyndns.org>
---
drivers/media/video/stk-webcam.c | 46 ++++---------------------------------
1 files changed, 5 insertions(+), 41 deletions(-)
diff --git a/drivers/media/video/stk-webcam.c b/drivers/media/video/stk-webcam.c
index 442dcd2..edaea49 100644
--- a/drivers/media/video/stk-webcam.c
+++ b/drivers/media/video/stk-webcam.c
@@ -677,7 +677,7 @@ static int v4l_stk_open(struct inode *inode, struct file *fp)
unlock_kernel();
return -ENXIO;
}
- fp->private_data = vdev;
+ fp->private_data = dev;
usb_autopm_get_interface(dev->interface);
unlock_kernel();
@@ -686,19 +686,7 @@ static int v4l_stk_open(struct inode *inode, struct file *fp)
static int v4l_stk_release(struct inode *inode, struct file *fp)
{
- struct stk_camera *dev;
- struct video_device *vdev;
-
- vdev = video_devdata(fp);
- if (vdev == NULL) {
- STK_ERROR("v4l_release called w/o video devdata\n");
- return -EFAULT;
- }
- dev = vdev_to_camera(vdev);
- if (dev == NULL) {
- STK_ERROR("v4l_release called on removed device\n");
- return -ENODEV;
- }
+ struct stk_camera *dev = fp->private_data;
if (dev->owner == fp) {
stk_stop_stream(dev);
@@ -718,17 +706,8 @@ static ssize_t v4l_stk_read(struct file *fp, char __user *buf,
int i;
int ret;
unsigned long flags;
- struct stk_camera *dev;
- struct video_device *vdev;
struct stk_sio_buffer *sbuf;
-
- vdev = video_devdata(fp);
- if (vdev == NULL)
- return -EFAULT;
- dev = vdev_to_camera(vdev);
-
- if (dev == NULL)
- return -EIO;
+ struct stk_camera *dev = fp->private_data;
if (!is_present(dev))
return -EIO;
@@ -784,17 +763,7 @@ static ssize_t v4l_stk_read(struct file *fp, char __user *buf,
static unsigned int v4l_stk_poll(struct file *fp, poll_table *wait)
{
- struct stk_camera *dev;
- struct video_device *vdev;
-
- vdev = video_devdata(fp);
-
- if (vdev == NULL)
- return -EFAULT;
-
- dev = vdev_to_camera(vdev);
- if (dev == NULL)
- return -ENODEV;
+ struct stk_camera *dev = fp->private_data;
poll_wait(fp, &dev->wait_frame, wait);
@@ -830,16 +799,12 @@ static int v4l_stk_mmap(struct file *fp, struct vm_area_struct *vma)
unsigned int i;
int ret;
unsigned long offset = vma->vm_pgoff << PAGE_SHIFT;
- struct stk_camera *dev;
- struct video_device *vdev;
+ struct stk_camera *dev = fp->private_data;
struct stk_sio_buffer *sbuf = NULL;
if (!(vma->vm_flags & VM_WRITE) || !(vma->vm_flags & VM_SHARED))
return -EINVAL;
- vdev = video_devdata(fp);
- dev = vdev_to_camera(vdev);
-
for (i = 0; i < dev->n_sbufs; i++) {
if (dev->sio_bufs[i].v4lbuf.m.offset == offset) {
sbuf = dev->sio_bufs + i;
@@ -1361,7 +1326,6 @@ static int stk_register_video_device(struct stk_camera *dev)
dev->vdev = stk_v4l_data;
dev->vdev.debug = debug;
dev->vdev.parent = &dev->interface->dev;
- video_set_drvdata(&dev->vdev, dev);
err = video_register_device(&dev->vdev, VFL_TYPE_GRABBER, -1);
if (err)
STK_ERROR("v4l registration failed\n");
--
1.5.6
[-- Attachment #3: Type: text/plain, Size: 164 bytes --]
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2008-10-01 18:24 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-30 0:29 [PATCH 3/3] stkwebcam: simplify access to stk_camera struct David Ellingsworth
2008-09-30 20:29 ` David Ellingsworth
2008-09-30 23:04 ` David Ellingsworth
[not found] ` <34E2ED35C2EB67499BA8591290AF20D506B237@pnd-iet-msg.wipro.com>
2008-10-01 16:28 ` mic issue in usb webcam David Ellingsworth
2008-10-01 18:24 ` Nicolas
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox