[media] gspca_main: Simplify read mode memory type checks
gspca_dev->memory == GSPCA_MEMORY_NO implies gspca_dev->nframes == 0, so there is no need to check for both in dev_poll. The check in dev_read also is more complex then needed, as dqbuf which dev_read calls already does all necessary checks. Moreover dqbuf is holding the proper locks while checking where as dev_read itself is not. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Acked-by: Jean-Francois Moine <moinejf@free.fr> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
d642de2ed4
commit
ee3629914b
1 changed files with 2 additions and 12 deletions
|
@ -2019,9 +2019,7 @@ static unsigned int dev_poll(struct file *file, poll_table *wait)
|
|||
poll_wait(file, &gspca_dev->wq, wait);
|
||||
|
||||
/* if reqbufs is not done, the user would use read() */
|
||||
if (gspca_dev->nframes == 0) {
|
||||
if (gspca_dev->memory != GSPCA_MEMORY_NO)
|
||||
return POLLERR; /* not the 1st time */
|
||||
if (gspca_dev->memory == GSPCA_MEMORY_NO) {
|
||||
ret = read_alloc(gspca_dev, file);
|
||||
if (ret != 0)
|
||||
return POLLERR;
|
||||
|
@ -2053,18 +2051,10 @@ static ssize_t dev_read(struct file *file, char __user *data,
|
|||
PDEBUG(D_FRAM, "read (%zd)", count);
|
||||
if (!gspca_dev->present)
|
||||
return -ENODEV;
|
||||
switch (gspca_dev->memory) {
|
||||
case GSPCA_MEMORY_NO: /* first time */
|
||||
if (gspca_dev->memory == GSPCA_MEMORY_NO) { /* first time ? */
|
||||
ret = read_alloc(gspca_dev, file);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
break;
|
||||
case GSPCA_MEMORY_READ:
|
||||
if (gspca_dev->capt_file == file)
|
||||
break;
|
||||
/* fall thru */
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/* get a frame */
|
||||
|
|
Loading…
Add table
Reference in a new issue