Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bd5f0ac9 authored by Ingo Molnar's avatar Ingo Molnar Committed by Mauro Carvalho Chehab
Browse files

V4L/DVB (3354e): bttv semaphore to mutex conversion



Semaphore to mutex conversion.

The conversion was generated via scripts, and the result was validated
automatically via a script as well.

build-tested.

Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent 9b565eb7
Loading
Loading
Loading
Loading
+30 −30
Original line number Diff line number Diff line
@@ -684,16 +684,16 @@ int check_alloc_btres(struct bttv *btv, struct bttv_fh *fh, int bit)
		return 1;

	/* is it free? */
	down(&btv->reslock);
	mutex_lock(&btv->reslock);
	if (btv->resources & bit) {
		/* no, someone else uses it */
		up(&btv->reslock);
		mutex_unlock(&btv->reslock);
		return 0;
	}
	/* it's free, grab it */
	fh->resources  |= bit;
	btv->resources |= bit;
	up(&btv->reslock);
	mutex_unlock(&btv->reslock);
	return 1;
}

@@ -716,10 +716,10 @@ void free_btres(struct bttv *btv, struct bttv_fh *fh, int bits)
		/* trying to free ressources not allocated by us ... */
		printk("bttv: BUG! (btres)\n");
	}
	down(&btv->reslock);
	mutex_lock(&btv->reslock);
	fh->resources  &= ~bits;
	btv->resources &= ~bits;
	up(&btv->reslock);
	mutex_unlock(&btv->reslock);
}

/* ----------------------------------------------------------------------- */
@@ -1536,12 +1536,12 @@ static int bttv_common_ioctls(struct bttv *btv, unsigned int cmd, void *arg)
	case VIDIOCSFREQ:
	{
		unsigned long *freq = arg;
		down(&btv->lock);
		mutex_lock(&btv->lock);
		btv->freq=*freq;
		bttv_call_i2c_clients(btv,VIDIOCSFREQ,freq);
		if (btv->has_matchbox && btv->radio_user)
			tea5757_set_freq(btv,*freq);
		up(&btv->lock);
		mutex_unlock(&btv->lock);
		return 0;
	}

@@ -1571,10 +1571,10 @@ static int bttv_common_ioctls(struct bttv *btv, unsigned int cmd, void *arg)
		if (v->mode >= BTTV_TVNORMS)
			return -EINVAL;

		down(&btv->lock);
		mutex_lock(&btv->lock);
		set_tvnorm(btv,v->mode);
		bttv_call_i2c_clients(btv,cmd,v);
		up(&btv->lock);
		mutex_unlock(&btv->lock);
		return 0;
	}

@@ -1611,17 +1611,17 @@ static int bttv_common_ioctls(struct bttv *btv, unsigned int cmd, void *arg)
		if (v->norm >= BTTV_TVNORMS)
			return -EINVAL;

		down(&btv->lock);
		mutex_lock(&btv->lock);
		if (channel == btv->input &&
		    v->norm == btv->tvnorm) {
			/* nothing to do */
			up(&btv->lock);
			mutex_unlock(&btv->lock);
			return 0;
		}

		btv->tvnorm = v->norm;
		set_input(btv,v->channel);
		up(&btv->lock);
		mutex_unlock(&btv->lock);
		return 0;
	}

@@ -1634,14 +1634,14 @@ static int bttv_common_ioctls(struct bttv *btv, unsigned int cmd, void *arg)
		v->flags |= VIDEO_AUDIO_MUTABLE;
		v->mode  = VIDEO_SOUND_MONO;

		down(&btv->lock);
		mutex_lock(&btv->lock);
		bttv_call_i2c_clients(btv,cmd,v);

		/* card specific hooks */
		if (btv->audio_hook)
			btv->audio_hook(btv,v,0);

		up(&btv->lock);
		mutex_unlock(&btv->lock);
		return 0;
	}
	case VIDIOCSAUDIO:
@@ -1652,7 +1652,7 @@ static int bttv_common_ioctls(struct bttv *btv, unsigned int cmd, void *arg)
		if (audio >= bttv_tvcards[btv->c.type].audio_inputs)
			return -EINVAL;

		down(&btv->lock);
		mutex_lock(&btv->lock);
		audio_mux(btv, (v->flags&VIDEO_AUDIO_MUTE) ? AUDIO_MUTE : AUDIO_UNMUTE);
		bttv_call_i2c_clients(btv,cmd,v);

@@ -1660,7 +1660,7 @@ static int bttv_common_ioctls(struct bttv *btv, unsigned int cmd, void *arg)
		if (btv->audio_hook)
			btv->audio_hook(btv,v,1);

		up(&btv->lock);
		mutex_unlock(&btv->lock);
		return 0;
	}

@@ -1694,10 +1694,10 @@ static int bttv_common_ioctls(struct bttv *btv, unsigned int cmd, void *arg)
		if (i == BTTV_TVNORMS)
			return -EINVAL;

		down(&btv->lock);
		mutex_lock(&btv->lock);
		set_tvnorm(btv,i);
		i2c_vidiocschan(btv);
		up(&btv->lock);
		mutex_unlock(&btv->lock);
		return 0;
	}
	case VIDIOC_QUERYSTD:
@@ -1755,9 +1755,9 @@ static int bttv_common_ioctls(struct bttv *btv, unsigned int cmd, void *arg)

		if (*i > bttv_tvcards[btv->c.type].video_inputs)
			return -EINVAL;
		down(&btv->lock);
		mutex_lock(&btv->lock);
		set_input(btv,*i);
		up(&btv->lock);
		mutex_unlock(&btv->lock);
		return 0;
	}

@@ -1769,7 +1769,7 @@ static int bttv_common_ioctls(struct bttv *btv, unsigned int cmd, void *arg)
			return -EINVAL;
		if (0 != t->index)
			return -EINVAL;
		down(&btv->lock);
		mutex_lock(&btv->lock);
		memset(t,0,sizeof(*t));
		strcpy(t->name, "Television");
		t->type       = V4L2_TUNER_ANALOG_TV;
@@ -1804,7 +1804,7 @@ static int bttv_common_ioctls(struct bttv *btv, unsigned int cmd, void *arg)
			}
		}
		/* FIXME: fill capability+audmode */
		up(&btv->lock);
		mutex_unlock(&btv->lock);
		return 0;
	}
	case VIDIOC_S_TUNER:
@@ -1815,7 +1815,7 @@ static int bttv_common_ioctls(struct bttv *btv, unsigned int cmd, void *arg)
			return -EINVAL;
		if (0 != t->index)
			return -EINVAL;
		down(&btv->lock);
		mutex_lock(&btv->lock);
		{
			struct video_audio va;
			memset(&va, 0, sizeof(struct video_audio));
@@ -1832,7 +1832,7 @@ static int bttv_common_ioctls(struct bttv *btv, unsigned int cmd, void *arg)
			if (btv->audio_hook)
				btv->audio_hook(btv,&va,1);
		}
		up(&btv->lock);
		mutex_unlock(&btv->lock);
		return 0;
	}

@@ -1853,12 +1853,12 @@ static int bttv_common_ioctls(struct bttv *btv, unsigned int cmd, void *arg)
			return -EINVAL;
		if (unlikely (f->type != V4L2_TUNER_ANALOG_TV))
			return -EINVAL;
		down(&btv->lock);
		mutex_lock(&btv->lock);
		btv->freq = f->frequency;
		bttv_call_i2c_clients(btv,VIDIOCSFREQ,&btv->freq);
		if (btv->has_matchbox && btv->radio_user)
			tea5757_set_freq(btv,btv->freq);
		up(&btv->lock);
		mutex_unlock(&btv->lock);
		return 0;
	}
	case VIDIOC_LOG_STATUS:
@@ -3156,7 +3156,7 @@ static int radio_open(struct inode *inode, struct file *file)
		return -ENODEV;

	dprintk("bttv%d: open called (radio)\n",btv->c.nr);
	down(&btv->lock);
	mutex_lock(&btv->lock);

	btv->radio_user++;

@@ -3165,7 +3165,7 @@ static int radio_open(struct inode *inode, struct file *file)
	bttv_call_i2c_clients(btv,AUDC_SET_RADIO,&btv->tuner_type);
	audio_mux(btv,AUDIO_RADIO);

	up(&btv->lock);
	mutex_unlock(&btv->lock);
	return 0;
}

@@ -3920,8 +3920,8 @@ static int __devinit bttv_probe(struct pci_dev *dev,
	sprintf(btv->c.name,"bttv%d",btv->c.nr);

	/* initialize structs / fill in defaults */
	init_MUTEX(&btv->lock);
	init_MUTEX(&btv->reslock);
	mutex_init(&btv->lock);
	mutex_init(&btv->reslock);
	spin_lock_init(&btv->s_lock);
	spin_lock_init(&btv->gpio_lock);
	init_waitqueue_head(&btv->gpioq);
+3 −2
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@
#include <linux/videodev.h>
#include <linux/pci.h>
#include <linux/input.h>
#include <linux/mutex.h>
#include <asm/scatterlist.h>
#include <asm/io.h>

@@ -309,9 +310,9 @@ struct bttv {

	/* locking */
	spinlock_t s_lock;
	struct semaphore lock;
	struct mutex lock;
	int resources;
	struct semaphore reslock;
	struct mutex reslock;
#ifdef VIDIOC_G_PRIORITY
	struct v4l2_prio_state prio;
#endif