aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/gspca/gspca.c
diff options
context:
space:
mode:
authorJim Paris <jim@jtan.com>2008-12-10 04:02:42 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2008-12-30 06:39:01 -0500
commit627a5ef7893fa127925b99e2597c8210202c75aa (patch)
treef7b542b02bb4888dc3efe3b250c823d17931905e /drivers/media/video/gspca/gspca.c
parentc06eb61941459b1981817fb675d0104ac0cd6df8 (diff)
V4L/DVB (9876): gspca - main: Allow subdrivers to handle v4l2_streamparm requests.
Add get_streamparm and set_streamparm operations so subdrivers can get/set stream parameters such as framerate. Signed-off-by: Jim Paris <jim@jtan.com> Signed-off-by: Jean-Francois Moine <moinejf@free.fr> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/gspca/gspca.c')
-rw-r--r--drivers/media/video/gspca/gspca.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/drivers/media/video/gspca/gspca.c b/drivers/media/video/gspca/gspca.c
index a5c21ca959d8..76cfb096e4f8 100644
--- a/drivers/media/video/gspca/gspca.c
+++ b/drivers/media/video/gspca/gspca.c
@@ -1327,6 +1327,17 @@ static int vidioc_g_parm(struct file *filp, void *priv,
1327 memset(parm, 0, sizeof *parm); 1327 memset(parm, 0, sizeof *parm);
1328 parm->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; 1328 parm->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
1329 parm->parm.capture.readbuffers = gspca_dev->nbufread; 1329 parm->parm.capture.readbuffers = gspca_dev->nbufread;
1330
1331 if (gspca_dev->sd_desc->get_streamparm) {
1332 int ret;
1333
1334 if (mutex_lock_interruptible(&gspca_dev->usb_lock))
1335 return -ERESTARTSYS;
1336 ret = gspca_dev->sd_desc->get_streamparm(gspca_dev, parm);
1337 mutex_unlock(&gspca_dev->usb_lock);
1338 return ret;
1339 }
1340
1330 return 0; 1341 return 0;
1331} 1342}
1332 1343
@@ -1341,6 +1352,17 @@ static int vidioc_s_parm(struct file *filp, void *priv,
1341 parm->parm.capture.readbuffers = gspca_dev->nbufread; 1352 parm->parm.capture.readbuffers = gspca_dev->nbufread;
1342 else 1353 else
1343 gspca_dev->nbufread = n; 1354 gspca_dev->nbufread = n;
1355
1356 if (gspca_dev->sd_desc->set_streamparm) {
1357 int ret;
1358
1359 if (mutex_lock_interruptible(&gspca_dev->usb_lock))
1360 return -ERESTARTSYS;
1361 ret = gspca_dev->sd_desc->set_streamparm(gspca_dev, parm);
1362 mutex_unlock(&gspca_dev->usb_lock);
1363 return ret;
1364 }
1365
1344 return 0; 1366 return 0;
1345} 1367}
1346 1368