From: mchehab@infradead.org
To: linux-kernel@vger.kernel.org
Cc: linux-dvb-maintainer@linuxtv.org, video4linux-list@redhat.com,
akpm@osdl.org, Ingo Molnar <mingo@elte.hu>,
Mauro Carvalho Chehab <mchehab@infradead.org>
Subject: [PATCH 02/25] bttv semaphore to mutex conversion
Date: Mon, 16 Jan 2006 07:11:19 -0200 [thread overview]
Message-ID: <20060116091119.PS17726800002@infradead.org> (raw)
In-Reply-To: <20060116091105.PS83611600000@infradead.org>
From: Ingo Molnar <mingo@elte.hu>
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: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
---
drivers/media/video/bttv-driver.c | 60 +++++++++++++++++++------------------
drivers/media/video/bttvp.h | 5 ++-
2 files changed, 33 insertions(+), 32 deletions(-)
diff --git a/drivers/media/video/bttv-driver.c b/drivers/media/video/bttv-driver.c
index 1c6cfe9..aa4c4c5 100644
--- a/drivers/media/video/bttv-driver.c
+++ b/drivers/media/video/bttv-driver.c
@@ -684,16 +684,16 @@ int check_alloc_btres(struct bttv *btv,
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
/* 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 btt
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 btt
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 btt
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 btt
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 btt
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 btt
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 btt
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 btt
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 btt
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 btt
}
}
/* 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 btt
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 btt
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 btt
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 *inod
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 *inod
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 p
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);
diff --git a/drivers/media/video/bttvp.h b/drivers/media/video/bttvp.h
index dd00c20..9cb72f1 100644
--- a/drivers/media/video/bttvp.h
+++ b/drivers/media/video/bttvp.h
@@ -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
next prev parent reply other threads:[~2006-01-16 9:23 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-01-16 9:11 [PATCH 00/25] V4L/DVB updates mchehab
2006-01-16 9:11 ` [PATCH 04/25] Include missing MODULE_* macros mchehab
2006-01-16 9:11 ` [PATCH 03/25] removed uneeded init on structs like static int foo=0 mchehab
2006-01-16 9:11 ` [PATCH 01/25] Remove old MODULE_PARM in media/video/ mchehab
2006-01-16 9:11 ` mchehab [this message]
2006-01-16 9:11 ` [PATCH 07/25] Redesign tuners struct for maximum flexibility mchehab
2006-01-16 9:11 ` [PATCH 05/25] Build cx88-alsa when CONFIG_VIDEO_CX88_ALSA is selected mchehab
2006-01-16 9:11 ` [PATCH 06/25] Updated MODULE_AUTHOR mchehab
2006-01-16 9:11 ` [PATCH 09/25] disable all dvb tuner param_types until we need them mchehab
2006-01-16 9:11 ` [PATCH 10/25] i2c ids for upd64031a saa717x upd64083 wm8739 mchehab
2006-01-16 9:11 ` [PATCH 11/25] Turn frame locked sound on, basic support for FM radio with TDA8275(a) mchehab
2006-01-16 9:11 ` [PATCH 08/25] Add support for Samsung tuner TCPN 2121P30A mchehab
2006-01-16 9:11 ` [PATCH 14/25] make some code static mchehab
2006-01-16 9:11 ` [PATCH 12/25] git dvb callbacks fix mchehab
2006-01-16 9:11 ` [PATCH 13/25] cx88 Kconfig fixes for cx88-alsa mchehab
2006-01-16 21:10 ` Adrian Bunk
2006-01-16 9:11 ` [PATCH 16/25] Semaphore to mutex conversion on drivers/media mchehab
2006-01-16 9:11 ` [PATCH 15/25] Fix for lack of analog output on some cx88 boards mchehab
2006-01-16 9:11 ` [PATCH 17/25] Fix compilation with Alpha mchehab
2006-01-16 9:11 ` [PATCH 18/25] Move tda988x options into tuner_params struct mchehab
2006-01-16 9:11 ` [PATCH 20/25] Return -EINVAL for unknown commands in msp3400 module mchehab
2006-01-16 9:11 ` [PATCH 19/25] Separate tv & radio freqs, fix cb/freq transmit order for tuners that need this mchehab
2006-01-16 9:11 ` [PATCH 21/25] fix some sound quality & distortion problems mchehab
2006-01-16 9:11 ` [PATCH 22/25] clean up some comments mchehab
2006-01-16 9:11 ` [PATCH 24/25] Samsung TBMV30111IN has 6 entries mchehab
2006-01-16 9:11 ` [PATCH 23/25] tuner_params->tda988x is currently unused, so disable mchehab
2006-01-16 9:11 ` [PATCH 25/25] Added remote control support for pinnacle pctv mchehab
2006-01-17 20:58 ` victorhom
2006-01-17 18:22 ` Markus Rechberger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060116091119.PS17726800002@infradead.org \
--to=mchehab@infradead.org \
--cc=akpm@osdl.org \
--cc=linux-dvb-maintainer@linuxtv.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=video4linux-list@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).