rpms/kernel/devel config-generic, 1.251, 1.252 kernel.spec, 1.1382, 1.1383 linux-2.6-v4l-dvb-update.patch, 1.2, 1.3
Mauro Carvalho Chehab
mchehab at fedoraproject.org
Wed Mar 4 20:58:42 UTC 2009
- Previous message (by thread): rpms/hdparm/devel .cvsignore, 1.20, 1.21 hdparm.spec, 1.45, 1.46 sources, 1.21, 1.22
- Next message (by thread): rpms/kdebase/F-10 kdebase-4.2.1-konsole-selection.patch, NONE, 1.1 kdebase.spec, 1.359, 1.360
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: mchehab
Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv29800
Modified Files:
config-generic kernel.spec linux-2.6-v4l-dvb-update.patch
Log Message:
Updated drivers/media with the latest development tree.
This time, two new DVB drivers were added, being one for DVB-S and another
for DVB-T.
Index: config-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/config-generic,v
retrieving revision 1.251
retrieving revision 1.252
diff -u -r1.251 -r1.252
--- config-generic 2 Mar 2009 23:09:52 -0000 1.251
+++ config-generic 4 Mar 2009 20:58:11 -0000 1.252
@@ -2355,6 +2355,8 @@
CONFIG_DVB_LGS8GL5=m
# CONFIG_DVB_DUMMY_FE is not set
CONFIG_DVB_AF9013=m
+CONFIG_DVB_STV6110=m
+CONFIG_DVB_STV0900=m
#
# Supported SAA7146 based PCI Adapters
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.1382
retrieving revision 1.1383
diff -u -r1.1382 -r1.1383
--- kernel.spec 4 Mar 2009 18:11:14 -0000 1.1382
+++ kernel.spec 4 Mar 2009 20:58:11 -0000 1.1383
@@ -1792,6 +1792,9 @@
# and build.
%changelog
+* Wed Mar 4 2009 Mauro Carvalho Chehab <mchehab at redhat.com>
+- drivers/media: fixes and improvements on devel tree
+
* Wed Mar 4 2009 <krh at redhat.com>
- Add fix for deadlock in drm setmaster.
linux-2.6-v4l-dvb-update.patch:
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.2 -r 1.3 linux-2.6-v4l-dvb-update.patch
Index: linux-2.6-v4l-dvb-update.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-v4l-dvb-update.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-v4l-dvb-update.patch 28 Feb 2009 03:08:27 -0000 1.2
+++ linux-2.6-v4l-dvb-update.patch 4 Mar 2009 20:58:11 -0000 1.3
@@ -11,25 +11,28 @@
'f' 00-1F linux/ext2_fs.h
'h' 00-7F Charon filesystem
diff --git a/Documentation/video4linux/CARDLIST.bttv b/Documentation/video4linux/CARDLIST.bttv
-index 0d93fa1..4dfe626 100644
+index 0d93fa1..1da2c62 100644
--- a/Documentation/video4linux/CARDLIST.bttv
+++ b/Documentation/video4linux/CARDLIST.bttv
-@@ -154,3 +154,4 @@
+@@ -154,3 +154,6 @@
153 -> PHYTEC VD-012 (bt878)
154 -> PHYTEC VD-012-X1 (bt878)
155 -> PHYTEC VD-012-X2 (bt878)
+156 -> IVCE-8784 [0000:f050,0001:f050,0002:f050,0003:f050]
++157 -> Geovision GV-800(S) (master) [800a:763d]
++158 -> Geovision GV-800(S) (slave) [800b:763d,800c:763d,800d:763d]
diff --git a/Documentation/video4linux/CARDLIST.cx23885 b/Documentation/video4linux/CARDLIST.cx23885
-index 35ea130..5937ff9 100644
+index 35ea130..91aa3c0 100644
--- a/Documentation/video4linux/CARDLIST.cx23885
+++ b/Documentation/video4linux/CARDLIST.cx23885
-@@ -12,3 +12,6 @@
+@@ -12,3 +12,7 @@
11 -> DViCO FusionHDTV DVB-T Dual Express [18ac:db78]
12 -> Leadtek Winfast PxDVR3200 H [107d:6681]
13 -> Compro VideoMate E650F [185b:e800]
+ 14 -> TurboSight TBS 6920 [6920:8888]
+ 15 -> TeVii S470 [d470:9022]
+ 16 -> DVBWorld DVB-S2 2005 [0001:2005]
++ 17 -> NetUP Dual DVB-S2 CI [1b55:2a2c]
diff --git a/Documentation/video4linux/CARDLIST.em28xx b/Documentation/video4linux/CARDLIST.em28xx
index 75bded8..78d0a6e 100644
--- a/Documentation/video4linux/CARDLIST.em28xx
@@ -854,7 +857,7 @@
i2c_adapter->algo = &saa7146_algo;
i2c_adapter->algo_data = NULL;
diff --git a/drivers/media/common/saa7146_video.c b/drivers/media/common/saa7146_video.c
-index 47fee05..8d8cb7f 100644
+index 47fee05..8035285 100644
--- a/drivers/media/common/saa7146_video.c
+++ b/drivers/media/common/saa7146_video.c
@@ -1,4 +1,5 @@
@@ -1281,7 +1284,7 @@
/********************************************************************************/
/* common pagetable functions */
-@@ -829,231 +497,451 @@ static int video_end(struct saa7146_fh *fh, struct file *file)
+@@ -829,231 +497,448 @@ static int video_end(struct saa7146_fh *fh, struct file *file)
return 0;
}
@@ -1384,11 +1387,6 @@
+ return 0;
+}
+
-+static int vidioc_enum_fmt_vid_overlay(struct file *file, void *fh, struct v4l2_fmtdesc *f)
-+{
-+ return vidioc_enum_fmt_vid_cap(file, fh, f);
-+}
-+
+static int vidioc_queryctrl(struct file *file, void *fh, struct v4l2_queryctrl *c)
+{
+ const struct v4l2_queryctrl *ctrl;
@@ -1468,11 +1466,7 @@
- /* fixme: add handle "after" case (is it still needed?) */
+ mutex_lock(&dev->lock);
-
-- switch (fh->type) {
-- case V4L2_BUF_TYPE_VIDEO_CAPTURE: {
-- ops = &saa7146_video_uops;
-- q = &fh->video_q;
++
+ switch (ctrl->type) {
+ case V4L2_CTRL_TYPE_BOOLEAN:
+ case V4L2_CTRL_TYPE_MENU:
@@ -1481,11 +1475,15 @@
+ c->value = ctrl->minimum;
+ if (c->value > ctrl->maximum)
+ c->value = ctrl->maximum;
- break;
++ break;
+ default:
+ /* nothing */;
+ }
-+
+
+- switch (fh->type) {
+- case V4L2_BUF_TYPE_VIDEO_CAPTURE: {
+- ops = &saa7146_video_uops;
+- q = &fh->video_q;
+ switch (c->id) {
+ case V4L2_CID_BRIGHTNESS: {
+ u32 value = saa7146_read(dev, BCS_CTRL);
@@ -1493,7 +1491,7 @@
+ value |= (c->value << 24);
+ saa7146_write(dev, BCS_CTRL, value);
+ saa7146_write(dev, MC2, MASK_22 | MASK_06);
-+ break;
+ break;
+ }
+ case V4L2_CID_CONTRAST: {
+ u32 value = saa7146_read(dev, BCS_CTRL);
@@ -1565,19 +1563,8 @@
- case VIDIOC_G_FBUF:
- {
- struct v4l2_framebuffer *fb = arg;
-+ return 0;
-+}
-
+-
- DEB_EE(("VIDIOC_G_FBUF\n"));
-+static int vidioc_g_parm(struct file *file, void *fh,
-+ struct v4l2_streamparm *parm)
-+{
-+ if (parm->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
-+ return -EINVAL;
-+ parm->parm.capture.readbuffers = 1;
-+ /* fixme: only for PAL! */
-+ parm->parm.capture.timeperframe.numerator = 1;
-+ parm->parm.capture.timeperframe.denominator = 25;
+ return 0;
+}
@@ -1589,25 +1576,27 @@
- {
- struct v4l2_framebuffer *fb = arg;
- struct saa7146_format *fmt;
-+static int vidioc_g_fmt_vid_cap(struct file *file, void *fh, struct v4l2_format *f)
++static int vidioc_g_parm(struct file *file, void *fh,
++ struct v4l2_streamparm *parm)
+{
-+ f->fmt.pix = ((struct saa7146_fh *)fh)->video_fmt;
-+ return 0;
-+}
++ struct saa7146_dev *dev = ((struct saa7146_fh *)fh)->dev;
++ struct saa7146_vv *vv = dev->vv_data;
- DEB_EE(("VIDIOC_S_FBUF\n"));
-+static int vidioc_g_fmt_vid_overlay(struct file *file, void *fh, struct v4l2_format *f)
-+{
-+ f->fmt.win = ((struct saa7146_fh *)fh)->ov.win;
++ if (parm->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
++ return -EINVAL;
++ parm->parm.capture.readbuffers = 1;
++ v4l2_video_std_frame_period(vv->standard->id,
++ &parm->parm.capture.timeperframe);
+ return 0;
+}
- if(!capable(CAP_SYS_ADMIN) &&
- !capable(CAP_SYS_RAWIO))
- return -EPERM;
-+static int vidioc_g_fmt_vbi_cap(struct file *file, void *fh, struct v4l2_format *f)
++static int vidioc_g_fmt_vid_cap(struct file *file, void *fh, struct v4l2_format *f)
+{
-+ f->fmt.vbi = ((struct saa7146_fh *)fh)->vbi_fmt;
++ f->fmt.pix = ((struct saa7146_fh *)fh)->video_fmt;
+ return 0;
+}
@@ -1616,20 +1605,21 @@
- if (NULL == fmt) {
- return -EINVAL;
- }
-+static int vidioc_try_fmt_vid_cap(struct file *file, void *fh, struct v4l2_format *f)
++static int vidioc_g_fmt_vid_overlay(struct file *file, void *fh, struct v4l2_format *f)
+{
-+ struct saa7146_dev *dev = ((struct saa7146_fh *)fh)->dev;
-+ struct saa7146_vv *vv = dev->vv_data;
-+ struct saa7146_format *fmt;
-+ enum v4l2_field field;
-+ int maxw, maxh;
-+ int calc_bpl;
++ f->fmt.win = ((struct saa7146_fh *)fh)->ov.win;
++ return 0;
++}
- /* planar formats are not allowed for overlay video, clipping and video dma would clash */
- if (0 != (fmt->flags & FORMAT_IS_PLANAR)) {
- DEB_S(("planar pixelformat '%4.4s' not allowed for overlay\n",(char *)&fmt->pixelformat));
- }
-+ DEB_EE(("V4L2_BUF_TYPE_VIDEO_CAPTURE: dev:%p, fh:%p\n", dev, fh));
++static int vidioc_g_fmt_vbi_cap(struct file *file, void *fh, struct v4l2_format *f)
++{
++ f->fmt.vbi = ((struct saa7146_fh *)fh)->vbi_fmt;
++ return 0;
++}
- /* check if overlay is running */
- if (IS_OVERLAY_ACTIVE(fh) != 0) {
@@ -1638,43 +1628,17 @@
[...16650 lines suppressed...]
+- break;
+static int zoran_s_ctrl(struct file *file, void *__fh, struct v4l2_control *ctrl)
+{
+ struct zoran_fh *fh = __fh;
+ struct zoran *zr = fh->zr;
-- dprintk(3, KERN_DEBUG "%s: VIDIOC_S_OUTPUT - output=%d\n",
-- ZR_DEVNAME(zr), *output);
+- case VIDIOC_S_OUTPUT:
+- {
+- int *output = arg;
+ /* we only support hue/saturation/contrast/brightness */
+ if (ctrl->id < V4L2_CID_BRIGHTNESS ||
+ ctrl->id > V4L2_CID_HUE)
+ return -EINVAL;
-- if (*output != 0)
-- return -EINVAL;
+- dprintk(3, KERN_DEBUG "%s: VIDIOC_S_OUTPUT - output=%d\n",
+- ZR_DEVNAME(zr), *output);
+ mutex_lock(&zr->resource_lock);
+ decoder_call(zr, core, s_ctrl, ctrl);
+ mutex_unlock(&zr->resource_lock);
+- if (*output != 0)
+- return -EINVAL;
++ return 0;
++}
+
- return 0;
- }
- break;
-+ return 0;
-+}
++static int zoran_g_std(struct file *file, void *__fh, v4l2_std_id *std)
++{
++ struct zoran_fh *fh = __fh;
++ struct zoran *zr = fh->zr;
- /* cropping (sub-frame capture) */
- case VIDIOC_CROPCAP:
- {
- struct v4l2_cropcap *cropcap = arg;
- int type = cropcap->type, res = 0;
-+static int zoran_g_std(struct file *file, void *__fh, v4l2_std_id *std)
-+{
-+ struct zoran_fh *fh = __fh;
-+ struct zoran *zr = fh->zr;
-
-- dprintk(3, KERN_ERR "%s: VIDIOC_CROPCAP - type=%d\n",
-- ZR_DEVNAME(zr), cropcap->type);
+ mutex_lock(&zr->resource_lock);
+ *std = zr->norm;
+ mutex_unlock(&zr->resource_lock);
+ return 0;
+}
-- memset(cropcap, 0, sizeof(*cropcap));
-- cropcap->type = type;
+- dprintk(3, KERN_ERR "%s: VIDIOC_CROPCAP - type=%d\n",
+- ZR_DEVNAME(zr), cropcap->type);
+static int zoran_s_std(struct file *file, void *__fh, v4l2_std_id *std)
+{
+ struct zoran_fh *fh = __fh;
+ struct zoran *zr = fh->zr;
+ int res = 0;
-- mutex_lock(&zr->resource_lock);
+- memset(cropcap, 0, sizeof(*cropcap));
+- cropcap->type = type;
+ mutex_lock(&zr->resource_lock);
+ res = zoran_set_norm(zr, *std);
+ if (res)
+ goto sstd_unlock_and_return;
+- mutex_lock(&zr->resource_lock);
++ res = wait_grab_pending(zr);
++sstd_unlock_and_return:
++ mutex_unlock(&zr->resource_lock);
++ return res;
++}
+
- if (cropcap->type != V4L2_BUF_TYPE_VIDEO_OUTPUT &&
- (cropcap->type != V4L2_BUF_TYPE_VIDEO_CAPTURE ||
- fh->map_mode == ZORAN_MAP_MODE_RAW)) {
@@ -51832,11 +65728,11 @@
- res = -EINVAL;
- goto cropcap_unlock_and_return;
- }
-+ res = wait_grab_pending(zr);
-+sstd_unlock_and_return:
-+ mutex_unlock(&zr->resource_lock);
-+ return res;
-+}
++static int zoran_enum_input(struct file *file, void *__fh,
++ struct v4l2_input *inp)
++{
++ struct zoran_fh *fh = __fh;
++ struct zoran *zr = fh->zr;
- cropcap->bounds.top = cropcap->bounds.left = 0;
- cropcap->bounds.width = BUZ_MAX_WIDTH;
@@ -51847,33 +65743,27 @@
- cropcap_unlock_and_return:
- mutex_unlock(&zr->resource_lock);
- return res;
-- }
-- break;
-+static int zoran_enum_input(struct file *file, void *__fh,
-+ struct v4l2_input *inp)
-+{
-+ struct zoran_fh *fh = __fh;
-+ struct zoran *zr = fh->zr;
-
-- case VIDIOC_G_CROP:
-- {
-- struct v4l2_crop *crop = arg;
-- int type = crop->type, res = 0;
+ if (inp->index < 0 || inp->index >= zr->card.inputs)
+ return -EINVAL;
+ else {
+ int id = inp->index;
+ memset(inp, 0, sizeof(*inp));
+ inp->index = id;
-+ }
+ }
+- break;
-- dprintk(3, KERN_ERR "%s: VIDIOC_G_CROP - type=%d\n",
-- ZR_DEVNAME(zr), crop->type);
+- case VIDIOC_G_CROP:
+- {
+- struct v4l2_crop *crop = arg;
+- int type = crop->type, res = 0;
+ strncpy(inp->name, zr->card.input[inp->index].name,
+ sizeof(inp->name) - 1);
+ inp->type = V4L2_INPUT_TYPE_CAMERA;
+ inp->std = V4L2_STD_ALL;
+- dprintk(3, KERN_ERR "%s: VIDIOC_G_CROP - type=%d\n",
+- ZR_DEVNAME(zr), crop->type);
+-
- memset(crop, 0, sizeof(*crop));
- crop->type = type;
+ /* Get status of video decoder */
@@ -52381,7 +66271,7 @@
}
static unsigned int
-@@ -4300,10 +3260,7 @@ zoran_vm_close (struct vm_area_struct *vma)
+@@ -4300,10 +3255,7 @@ zoran_vm_close (struct vm_area_struct *vma)
fh->jpg_buffers.active =
ZORAN_FREE;
}
@@ -52393,7 +66283,7 @@
mutex_unlock(&zr->resource_lock);
}
-@@ -4340,10 +3297,7 @@ zoran_vm_close (struct vm_area_struct *vma)
+@@ -4340,10 +3292,7 @@ zoran_vm_close (struct vm_area_struct *vma)
ZORAN_FREE;
spin_unlock_irqrestore(&zr->spinlock, flags);
}
@@ -52405,7 +66295,7 @@
mutex_unlock(&zr->resource_lock);
}
-@@ -4582,11 +3536,56 @@ zoran_mmap (struct file *file,
+@@ -4582,11 +3531,56 @@ zoran_mmap (struct file *file,
return 0;
}
@@ -52463,7 +66353,7 @@
.read = zoran_read,
.write = zoran_write,
.mmap = zoran_mmap,
-@@ -4596,7 +3595,9 @@ static const struct v4l2_file_operations zoran_fops = {
+@@ -4596,7 +3590,9 @@ static const struct v4l2_file_operations zoran_fops = {
struct video_device zoran_template __devinitdata = {
.name = ZORAN_NAME,
.fops = &zoran_fops,
@@ -53087,6 +66977,18 @@
!(grpid) || sd->grp_id == (grpid), o, f , ##args)
#endif
+diff --git a/include/media/v4l2-ioctl.h b/include/media/v4l2-ioctl.h
+index b01c044..a8b4c0b 100644
+--- a/include/media/v4l2-ioctl.h
++++ b/include/media/v4l2-ioctl.h
+@@ -267,6 +267,7 @@ struct v4l2_ioctl_ops {
+
+ /* Video standard functions */
+ extern const char *v4l2_norm_to_name(v4l2_std_id id);
++extern void v4l2_video_std_frame_period(int id, struct v4l2_fract *frameperiod);
+ extern int v4l2_video_std_construct(struct v4l2_standard *vs,
+ int id, const char *name);
+ /* Prints the ioctl in a human-readable format */
diff --git a/include/media/v4l2-subdev.h b/include/media/v4l2-subdev.h
index 37b09e5..05b6965 100644
--- a/include/media/v4l2-subdev.h
- Previous message (by thread): rpms/hdparm/devel .cvsignore, 1.20, 1.21 hdparm.spec, 1.45, 1.46 sources, 1.21, 1.22
- Next message (by thread): rpms/kdebase/F-10 kdebase-4.2.1-konsole-selection.patch, NONE, 1.1 kdebase.spec, 1.359, 1.360
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list