From e30abcdc081f5ec0e16251b6caadac531948a3ad Mon Sep 17 00:00:00 2001 From: Mijhail Moreyra Date: Mon, 10 Oct 2011 11:09:53 -0300 Subject: [PATCH] --- yaml --- r: 271949 b: refs/heads/master c: 97ce5670fcee40b37f75d227ed88dcc51af63140 h: refs/heads/master i: 271947: 33099c211a7fbf7522efbe9d3407dc6aef6f9432 v: v3 --- [refs] | 2 +- .../media/video/cx23885/cx23885-video.c | 23 +++++++++++++------ 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index 12929e9b7473..839daaf028c6 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b12ab3f81c1ae129aae5ab0fe538ed0afd0cb7d1 +refs/heads/master: 97ce5670fcee40b37f75d227ed88dcc51af63140 diff --git a/trunk/drivers/media/video/cx23885/cx23885-video.c b/trunk/drivers/media/video/cx23885/cx23885-video.c index 0c463f97e6c4..acd6e0c2970e 100644 --- a/trunk/drivers/media/video/cx23885/cx23885-video.c +++ b/trunk/drivers/media/video/cx23885/cx23885-video.c @@ -37,6 +37,8 @@ #include "cx23885-ioctl.h" #include "tuner-xc2028.h" +#include + MODULE_DESCRIPTION("v4l2 driver module for cx23885 based TV cards"); MODULE_AUTHOR("Steven Toth "); MODULE_LICENSE("GPL"); @@ -884,8 +886,9 @@ static int cx23885_get_control(struct cx23885_dev *dev, static int cx23885_set_control(struct cx23885_dev *dev, struct v4l2_control *ctl) { - dprintk(1, "%s() calling cx25840(VIDIOC_S_CTRL)" - " (disabled - no action)\n", __func__); + dprintk(1, "%s() calling cx25840(VIDIOC_S_CTRL)\n", __func__); + call_all(dev, core, s_ctrl, ctl); + return 0; } @@ -1220,11 +1223,9 @@ static int vidioc_g_tuner(struct file *file, void *priv, if (0 != t->index) return -EINVAL; + memset(t, 0, sizeof(*t)); strcpy(t->name, "Television"); - t->type = V4L2_TUNER_ANALOG_TV; - t->capability = V4L2_TUNER_CAP_NORM; - t->rangehigh = 0xffffffffUL; - t->signal = 0xffff ; /* LOCKED */ + return 0; } @@ -1237,6 +1238,8 @@ static int vidioc_s_tuner(struct file *file, void *priv, return -EINVAL; if (0 != t->index) return -EINVAL; + /* Update the A/V core */ + return 0; } @@ -1438,6 +1441,9 @@ void cx23885_video_unregister(struct cx23885_dev *dev) btcx_riscmem_free(dev->pci, &dev->vidq.stopper); } + + if (dev->audio_dev) + cx23885_audio_finidev(dev); } int cx23885_video_register(struct cx23885_dev *dev) @@ -1504,7 +1510,6 @@ int cx23885_video_register(struct cx23885_dev *dev) } } - /* register v4l devices */ dev->video_dev = cx23885_vdev_init(dev, dev->pci, &cx23885_video_template, "video"); @@ -1517,6 +1522,10 @@ int cx23885_video_register(struct cx23885_dev *dev) } printk(KERN_INFO "%s/0: registered device %s [v4l2]\n", dev->name, video_device_node_name(dev->video_dev)); + + /* Register ALSA audio device */ + dev->audio_dev = cx23885_audio_initdev(dev); + /* initial device configuration */ mutex_lock(&dev->lock); cx23885_set_tvnorm(dev, dev->tvnorm);