diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-09-15 08:23:20 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-10-20 23:06:13 -0400 |
commit | da497e30c161963c413e259438b1b54672055b11 (patch) | |
tree | b2efa90e97f14051fc72bdcce2b8c9a81b9ebe2b /drivers/media/video/cx88 | |
parent | 8979e9d42b87648fd89bcc5d8b3157a8f3f4dfdb (diff) |
V4L/DVB: cx88: Remove BKL
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/cx88')
-rw-r--r-- | drivers/media/video/cx88/cx88-blackbird.c | 14 | ||||
-rw-r--r-- | drivers/media/video/cx88/cx88-video.c | 17 |
2 files changed, 16 insertions, 15 deletions
diff --git a/drivers/media/video/cx88/cx88-blackbird.c b/drivers/media/video/cx88/cx88-blackbird.c index e46e1ceef72c..ec3299585434 100644 --- a/drivers/media/video/cx88/cx88-blackbird.c +++ b/drivers/media/video/cx88/cx88-blackbird.c | |||
@@ -1057,7 +1057,7 @@ static int mpeg_open(struct file *file) | |||
1057 | 1057 | ||
1058 | dprintk( 1, "%s\n", __func__); | 1058 | dprintk( 1, "%s\n", __func__); |
1059 | 1059 | ||
1060 | lock_kernel(); | 1060 | mutex_lock(&dev->core->lock); |
1061 | 1061 | ||
1062 | /* Make sure we can acquire the hardware */ | 1062 | /* Make sure we can acquire the hardware */ |
1063 | drv = cx8802_get_driver(dev, CX88_MPEG_BLACKBIRD); | 1063 | drv = cx8802_get_driver(dev, CX88_MPEG_BLACKBIRD); |
@@ -1065,7 +1065,7 @@ static int mpeg_open(struct file *file) | |||
1065 | err = drv->request_acquire(drv); | 1065 | err = drv->request_acquire(drv); |
1066 | if(err != 0) { | 1066 | if(err != 0) { |
1067 | dprintk(1,"%s: Unable to acquire hardware, %d\n", __func__, err); | 1067 | dprintk(1,"%s: Unable to acquire hardware, %d\n", __func__, err); |
1068 | unlock_kernel(); | 1068 | mutex_unlock(&dev->core->lock);; |
1069 | return err; | 1069 | return err; |
1070 | } | 1070 | } |
1071 | } | 1071 | } |
@@ -1073,7 +1073,7 @@ static int mpeg_open(struct file *file) | |||
1073 | if (!atomic_read(&dev->core->mpeg_users) && blackbird_initialize_codec(dev) < 0) { | 1073 | if (!atomic_read(&dev->core->mpeg_users) && blackbird_initialize_codec(dev) < 0) { |
1074 | if (drv) | 1074 | if (drv) |
1075 | drv->request_release(drv); | 1075 | drv->request_release(drv); |
1076 | unlock_kernel(); | 1076 | mutex_unlock(&dev->core->lock); |
1077 | return -EINVAL; | 1077 | return -EINVAL; |
1078 | } | 1078 | } |
1079 | dprintk(1, "open dev=%s\n", video_device_node_name(vdev)); | 1079 | dprintk(1, "open dev=%s\n", video_device_node_name(vdev)); |
@@ -1083,7 +1083,7 @@ static int mpeg_open(struct file *file) | |||
1083 | if (NULL == fh) { | 1083 | if (NULL == fh) { |
1084 | if (drv) | 1084 | if (drv) |
1085 | drv->request_release(drv); | 1085 | drv->request_release(drv); |
1086 | unlock_kernel(); | 1086 | mutex_unlock(&dev->core->lock); |
1087 | return -ENOMEM; | 1087 | return -ENOMEM; |
1088 | } | 1088 | } |
1089 | file->private_data = fh; | 1089 | file->private_data = fh; |
@@ -1099,10 +1099,9 @@ static int mpeg_open(struct file *file) | |||
1099 | /* FIXME: locking against other video device */ | 1099 | /* FIXME: locking against other video device */ |
1100 | cx88_set_scale(dev->core, dev->width, dev->height, | 1100 | cx88_set_scale(dev->core, dev->width, dev->height, |
1101 | fh->mpegq.field); | 1101 | fh->mpegq.field); |
1102 | unlock_kernel(); | ||
1103 | 1102 | ||
1104 | atomic_inc(&dev->core->mpeg_users); | 1103 | atomic_inc(&dev->core->mpeg_users); |
1105 | 1104 | mutex_unlock(&dev->core->lock); | |
1106 | return 0; | 1105 | return 0; |
1107 | } | 1106 | } |
1108 | 1107 | ||
@@ -1120,8 +1119,11 @@ static int mpeg_release(struct file *file) | |||
1120 | videobuf_stop(&fh->mpegq); | 1119 | videobuf_stop(&fh->mpegq); |
1121 | 1120 | ||
1122 | videobuf_mmap_free(&fh->mpegq); | 1121 | videobuf_mmap_free(&fh->mpegq); |
1122 | |||
1123 | mutex_lock(&dev->core->lock); | ||
1123 | file->private_data = NULL; | 1124 | file->private_data = NULL; |
1124 | kfree(fh); | 1125 | kfree(fh); |
1126 | mutex_unlock(&dev->core->lock); | ||
1125 | 1127 | ||
1126 | /* Make sure we release the hardware */ | 1128 | /* Make sure we release the hardware */ |
1127 | drv = cx8802_get_driver(dev, CX88_MPEG_BLACKBIRD); | 1129 | drv = cx8802_get_driver(dev, CX88_MPEG_BLACKBIRD); |
diff --git a/drivers/media/video/cx88/cx88-video.c b/drivers/media/video/cx88/cx88-video.c index b755bf100a2b..2da9117b138e 100644 --- a/drivers/media/video/cx88/cx88-video.c +++ b/drivers/media/video/cx88/cx88-video.c | |||
@@ -769,19 +769,14 @@ static int video_open(struct file *file) | |||
769 | break; | 769 | break; |
770 | } | 770 | } |
771 | 771 | ||
772 | lock_kernel(); | ||
773 | |||
774 | core = dev->core; | ||
775 | |||
776 | dprintk(1, "open dev=%s radio=%d type=%s\n", | 772 | dprintk(1, "open dev=%s radio=%d type=%s\n", |
777 | video_device_node_name(vdev), radio, v4l2_type_names[type]); | 773 | video_device_node_name(vdev), radio, v4l2_type_names[type]); |
778 | 774 | ||
779 | /* allocate + initialize per filehandle data */ | 775 | /* allocate + initialize per filehandle data */ |
780 | fh = kzalloc(sizeof(*fh),GFP_KERNEL); | 776 | fh = kzalloc(sizeof(*fh),GFP_KERNEL); |
781 | if (NULL == fh) { | 777 | if (unlikely(!fh)) |
782 | unlock_kernel(); | ||
783 | return -ENOMEM; | 778 | return -ENOMEM; |
784 | } | 779 | |
785 | file->private_data = fh; | 780 | file->private_data = fh; |
786 | fh->dev = dev; | 781 | fh->dev = dev; |
787 | fh->radio = radio; | 782 | fh->radio = radio; |
@@ -790,6 +785,9 @@ static int video_open(struct file *file) | |||
790 | fh->height = 240; | 785 | fh->height = 240; |
791 | fh->fmt = format_by_fourcc(V4L2_PIX_FMT_BGR24); | 786 | fh->fmt = format_by_fourcc(V4L2_PIX_FMT_BGR24); |
792 | 787 | ||
788 | mutex_lock(&core->lock); | ||
789 | core = dev->core; | ||
790 | |||
793 | videobuf_queue_sg_init(&fh->vidq, &cx8800_video_qops, | 791 | videobuf_queue_sg_init(&fh->vidq, &cx8800_video_qops, |
794 | &dev->pci->dev, &dev->slock, | 792 | &dev->pci->dev, &dev->slock, |
795 | V4L2_BUF_TYPE_VIDEO_CAPTURE, | 793 | V4L2_BUF_TYPE_VIDEO_CAPTURE, |
@@ -826,9 +824,9 @@ static int video_open(struct file *file) | |||
826 | } | 824 | } |
827 | call_all(core, tuner, s_radio); | 825 | call_all(core, tuner, s_radio); |
828 | } | 826 | } |
829 | unlock_kernel(); | ||
830 | 827 | ||
831 | atomic_inc(&core->users); | 828 | atomic_inc(&core->users); |
829 | mutex_unlock(&core->lock); | ||
832 | 830 | ||
833 | return 0; | 831 | return 0; |
834 | } | 832 | } |
@@ -920,10 +918,11 @@ static int video_release(struct file *file) | |||
920 | 918 | ||
921 | videobuf_mmap_free(&fh->vidq); | 919 | videobuf_mmap_free(&fh->vidq); |
922 | videobuf_mmap_free(&fh->vbiq); | 920 | videobuf_mmap_free(&fh->vbiq); |
921 | |||
922 | mutex_lock(&dev->core->lock); | ||
923 | file->private_data = NULL; | 923 | file->private_data = NULL; |
924 | kfree(fh); | 924 | kfree(fh); |
925 | 925 | ||
926 | mutex_lock(&dev->core->lock); | ||
927 | if(atomic_dec_and_test(&dev->core->users)) | 926 | if(atomic_dec_and_test(&dev->core->users)) |
928 | call_all(dev->core, core, s_power, 0); | 927 | call_all(dev->core, core, s_power, 0); |
929 | mutex_unlock(&dev->core->lock); | 928 | mutex_unlock(&dev->core->lock); |