Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 241832
b: refs/heads/master
c: b577f96
h: refs/heads/master
v: v3
  • Loading branch information
Hans Verkuil authored and Mauro Carvalho Chehab committed Mar 21, 2011
1 parent e7145cd commit 3dcd623
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 14 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 5b2830298dc0534eb33277a31f353bb524e2cc2e
refs/heads/master: b577f962d27c055571f72ddd73ae3aded39a6261
16 changes: 3 additions & 13 deletions trunk/drivers/media/video/pwc/pwc-if.c
Original file line number Diff line number Diff line change
Expand Up @@ -1098,7 +1098,6 @@ static int pwc_video_open(struct file *file)
return -EBUSY;
}

mutex_lock(&pdev->modlock);
pwc_construct(pdev); /* set min/max sizes correct */
if (!pdev->usb_init) {
PWC_DEBUG_OPEN("Doing first time initialization.\n");
Expand Down Expand Up @@ -1130,7 +1129,6 @@ static int pwc_video_open(struct file *file)
if (i < 0) {
PWC_DEBUG_OPEN("Failed to allocate buffers memory.\n");
pwc_free_buffers(pdev);
mutex_unlock(&pdev->modlock);
return i;
}

Expand Down Expand Up @@ -1171,7 +1169,6 @@ static int pwc_video_open(struct file *file)
if (i) {
PWC_DEBUG_OPEN("Second attempt at set_video_mode failed.\n");
pwc_free_buffers(pdev);
mutex_unlock(&pdev->modlock);
return i;
}

Expand All @@ -1181,7 +1178,6 @@ static int pwc_video_open(struct file *file)

pdev->vopen++;
file->private_data = vdev;
mutex_unlock(&pdev->modlock);
PWC_DEBUG_OPEN("<< video_open() returns 0.\n");
return 0;
}
Expand Down Expand Up @@ -1210,7 +1206,6 @@ static int pwc_video_close(struct file *file)
PWC_DEBUG_OPEN(">> video_close called(vdev = 0x%p).\n", vdev);

pdev = video_get_drvdata(vdev);
mutex_lock(&pdev->modlock);
if (pdev->vopen == 0)
PWC_DEBUG_MODULE("video_close() called on closed device?\n");

Expand Down Expand Up @@ -1248,7 +1243,6 @@ static int pwc_video_close(struct file *file)
if (device_hint[hint].pdev == pdev)
device_hint[hint].pdev = NULL;
}
mutex_unlock(&pdev->modlock);

return 0;
}
Expand Down Expand Up @@ -1283,7 +1277,6 @@ static ssize_t pwc_video_read(struct file *file, char __user *buf,
if (pdev == NULL)
return -EFAULT;

mutex_lock(&pdev->modlock);
if (pdev->error_status) {
rv = -pdev->error_status; /* Something happened, report what. */
goto err_out;
Expand Down Expand Up @@ -1318,8 +1311,10 @@ static ssize_t pwc_video_read(struct file *file, char __user *buf,
rv = -ERESTARTSYS;
goto err_out;
}
mutex_unlock(&pdev->modlock);
schedule();
set_current_state(TASK_INTERRUPTIBLE);
mutex_lock(&pdev->modlock);
}
remove_wait_queue(&pdev->frameq, &wait);
set_current_state(TASK_RUNNING);
Expand Down Expand Up @@ -1352,10 +1347,8 @@ static ssize_t pwc_video_read(struct file *file, char __user *buf,
pdev->image_read_pos = 0;
pwc_next_image(pdev);
}
mutex_unlock(&pdev->modlock);
return count;
err_out:
mutex_unlock(&pdev->modlock);
return rv;
}

Expand All @@ -1372,9 +1365,7 @@ static unsigned int pwc_video_poll(struct file *file, poll_table *wait)
return -EFAULT;

/* Start the stream (if not already started) */
mutex_lock(&pdev->modlock);
ret = pwc_isoc_init(pdev);
mutex_unlock(&pdev->modlock);
if (ret)
return ret;

Expand All @@ -1398,10 +1389,8 @@ static long pwc_video_ioctl(struct file *file,
goto out;
pdev = video_get_drvdata(vdev);

mutex_lock(&pdev->modlock);
if (!pdev->unplugged)
r = video_usercopy(file, cmd, arg, pwc_video_do_ioctl);
mutex_unlock(&pdev->modlock);
out:
return r;
}
Expand Down Expand Up @@ -1754,6 +1743,7 @@ static int usb_pwc_probe(struct usb_interface *intf, const struct usb_device_id
}
memcpy(pdev->vdev, &pwc_template, sizeof(pwc_template));
pdev->vdev->parent = &intf->dev;
pdev->vdev->lock = &pdev->modlock;
strcpy(pdev->vdev->name, name);
video_set_drvdata(pdev->vdev, pdev);

Expand Down
2 changes: 2 additions & 0 deletions trunk/drivers/media/video/pwc/pwc-v4l.c
Original file line number Diff line number Diff line change
Expand Up @@ -830,8 +830,10 @@ long pwc_video_do_ioctl(struct file *file, unsigned int cmd, void *arg)
set_current_state(TASK_RUNNING);
return -ERESTARTSYS;
}
mutex_unlock(&pdev->modlock);
schedule();
set_current_state(TASK_INTERRUPTIBLE);
mutex_lock(&pdev->modlock);
}
remove_wait_queue(&pdev->frameq, &wait);
set_current_state(TASK_RUNNING);
Expand Down

0 comments on commit 3dcd623

Please sign in to comment.