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


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




More information about the fedora-extras-commits mailing list