diff options
Diffstat (limited to 'drivers/media/video/cx23885/cx23885-video.c')
-rw-r--r-- | drivers/media/video/cx23885/cx23885-video.c | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/drivers/media/video/cx23885/cx23885-video.c b/drivers/media/video/cx23885/cx23885-video.c index 4e44dcda3875..da66e5f8d91d 100644 --- a/drivers/media/video/cx23885/cx23885-video.c +++ b/drivers/media/video/cx23885/cx23885-video.c | |||
@@ -441,7 +441,7 @@ static int cx23885_start_video_dma(struct cx23885_dev *dev, | |||
441 | q->count = 1; | 441 | q->count = 1; |
442 | 442 | ||
443 | /* enable irq */ | 443 | /* enable irq */ |
444 | cx_set(PCI_INT_MSK, cx_read(PCI_INT_MSK) | 0x01); | 444 | cx23885_irq_add_enable(dev, 0x01); |
445 | cx_set(VID_A_INT_MSK, 0x000011); | 445 | cx_set(VID_A_INT_MSK, 0x000011); |
446 | 446 | ||
447 | /* start dma */ | 447 | /* start dma */ |
@@ -1205,6 +1205,21 @@ static int vidioc_s_input(struct file *file, void *priv, unsigned int i) | |||
1205 | return 0; | 1205 | return 0; |
1206 | } | 1206 | } |
1207 | 1207 | ||
1208 | static int vidioc_log_status(struct file *file, void *priv) | ||
1209 | { | ||
1210 | struct cx23885_fh *fh = priv; | ||
1211 | struct cx23885_dev *dev = fh->dev; | ||
1212 | |||
1213 | printk(KERN_INFO | ||
1214 | "%s/0: ============ START LOG STATUS ============\n", | ||
1215 | dev->name); | ||
1216 | call_all(dev, core, log_status); | ||
1217 | printk(KERN_INFO | ||
1218 | "%s/0: ============= END LOG STATUS =============\n", | ||
1219 | dev->name); | ||
1220 | return 0; | ||
1221 | } | ||
1222 | |||
1208 | static int vidioc_queryctrl(struct file *file, void *priv, | 1223 | static int vidioc_queryctrl(struct file *file, void *priv, |
1209 | struct v4l2_queryctrl *qctrl) | 1224 | struct v4l2_queryctrl *qctrl) |
1210 | { | 1225 | { |
@@ -1410,6 +1425,7 @@ static const struct v4l2_ioctl_ops video_ioctl_ops = { | |||
1410 | .vidioc_enum_input = vidioc_enum_input, | 1425 | .vidioc_enum_input = vidioc_enum_input, |
1411 | .vidioc_g_input = vidioc_g_input, | 1426 | .vidioc_g_input = vidioc_g_input, |
1412 | .vidioc_s_input = vidioc_s_input, | 1427 | .vidioc_s_input = vidioc_s_input, |
1428 | .vidioc_log_status = vidioc_log_status, | ||
1413 | .vidioc_queryctrl = vidioc_queryctrl, | 1429 | .vidioc_queryctrl = vidioc_queryctrl, |
1414 | .vidioc_g_ctrl = vidioc_g_ctrl, | 1430 | .vidioc_g_ctrl = vidioc_g_ctrl, |
1415 | .vidioc_s_ctrl = vidioc_s_ctrl, | 1431 | .vidioc_s_ctrl = vidioc_s_ctrl, |
@@ -1449,7 +1465,7 @@ static const struct v4l2_file_operations radio_fops = { | |||
1449 | void cx23885_video_unregister(struct cx23885_dev *dev) | 1465 | void cx23885_video_unregister(struct cx23885_dev *dev) |
1450 | { | 1466 | { |
1451 | dprintk(1, "%s()\n", __func__); | 1467 | dprintk(1, "%s()\n", __func__); |
1452 | cx_clear(PCI_INT_MSK, 1); | 1468 | cx23885_irq_remove(dev, 0x01); |
1453 | 1469 | ||
1454 | if (dev->video_dev) { | 1470 | if (dev->video_dev) { |
1455 | if (video_is_registered(dev->video_dev)) | 1471 | if (video_is_registered(dev->video_dev)) |
@@ -1486,7 +1502,8 @@ int cx23885_video_register(struct cx23885_dev *dev) | |||
1486 | VID_A_DMA_CTL, 0x11, 0x00); | 1502 | VID_A_DMA_CTL, 0x11, 0x00); |
1487 | 1503 | ||
1488 | /* Don't enable VBI yet */ | 1504 | /* Don't enable VBI yet */ |
1489 | cx_set(PCI_INT_MSK, 1); | 1505 | |
1506 | cx23885_irq_add_enable(dev, 0x01); | ||
1490 | 1507 | ||
1491 | if (TUNER_ABSENT != dev->tuner_type) { | 1508 | if (TUNER_ABSENT != dev->tuner_type) { |
1492 | struct v4l2_subdev *sd = NULL; | 1509 | struct v4l2_subdev *sd = NULL; |