aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-context.c11
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-context.h2
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-v4l2.c27
3 files changed, 6 insertions, 34 deletions
diff --git a/drivers/media/video/pvrusb2/pvrusb2-context.c b/drivers/media/video/pvrusb2/pvrusb2-context.c
index 69786cdaa85..cf129746205 100644
--- a/drivers/media/video/pvrusb2/pvrusb2-context.c
+++ b/drivers/media/video/pvrusb2/pvrusb2-context.c
@@ -188,17 +188,6 @@ void pvr2_channel_done(struct pvr2_channel *cp)
}
-int pvr2_channel_check_stream_no_lock(struct pvr2_channel *cp,
- struct pvr2_context_stream *sp)
-{
- if (sp == cp->stream) return 0;
- if (sp->user) {
- return -EBUSY;
- }
- return 0;
-}
-
-
int pvr2_channel_claim_stream(struct pvr2_channel *cp,
struct pvr2_context_stream *sp)
{
diff --git a/drivers/media/video/pvrusb2/pvrusb2-context.h b/drivers/media/video/pvrusb2/pvrusb2-context.h
index 4d0f4ad6412..6327fa1f7e4 100644
--- a/drivers/media/video/pvrusb2/pvrusb2-context.h
+++ b/drivers/media/video/pvrusb2/pvrusb2-context.h
@@ -76,8 +76,6 @@ void pvr2_channel_init(struct pvr2_channel *,struct pvr2_context *);
void pvr2_channel_done(struct pvr2_channel *);
int pvr2_channel_claim_stream(struct pvr2_channel *,
struct pvr2_context_stream *);
-int pvr2_channel_check_stream_no_lock(struct pvr2_channel *,
- struct pvr2_context_stream *);
struct pvr2_ioread *pvr2_channel_create_mpeg_stream(
struct pvr2_context_stream *);
diff --git a/drivers/media/video/pvrusb2/pvrusb2-v4l2.c b/drivers/media/video/pvrusb2/pvrusb2-v4l2.c
index f74727983df..cc3260f37e8 100644
--- a/drivers/media/video/pvrusb2/pvrusb2-v4l2.c
+++ b/drivers/media/video/pvrusb2/pvrusb2-v4l2.c
@@ -925,29 +925,14 @@ static int pvr2_v4l2_open(struct inode *inode, struct file *file)
pvr2_trace(PVR2_TRACE_STRUCT,"Creating pvr_v4l2_fh id=%p",fhp);
pvr2_channel_init(&fhp->channel,vp->channel.mc_head);
- /* pk: warning, severe ugliness follows. 18+ only.
- please blaim V4L(ivtv) for braindamaged interfaces,
- not the implementor. This is probably flawed, but
- suggestions on how to do this "right" are welcome! */
+ /* Opening the /dev/radioX device implies a mode switch.
+ So execute that here. Note that you can get the
+ IDENTICAL effect merely by opening the normal video
+ device and setting the input appropriately. */
if (dip->config == pvr2_config_radio) {
- int ret;
- if ((pvr2_channel_check_stream_no_lock(&fhp->channel,
- fhp->dev_info->stream)) != 0) {
- /* We can 't switch modes while streaming */
- pvr2_channel_done(&fhp->channel);
- kfree(fhp);
- pvr2_context_exit(vp->channel.mc_head);
- return -EBUSY;
- }
-
- if ((ret = pvr2_ctrl_set_value(
+ pvr2_ctrl_set_value(
pvr2_hdw_get_ctrl_by_id(hdw,PVR2_CID_INPUT),
- PVR2_CVAL_INPUT_RADIO))) {
- pvr2_channel_done(&fhp->channel);
- kfree(fhp);
- pvr2_context_exit(vp->channel.mc_head);
- return ret;
- }
+ PVR2_CVAL_INPUT_RADIO);
}
fhp->vnext = NULL;