[media] bttv: separate GPIO part from function audio_mux()
authorFrank Schaefer <fschaefer.oss@googlemail.com>
Thu, 21 Mar 2013 16:51:17 +0000 (13:51 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 23 Mar 2013 14:31:49 +0000 (11:31 -0300)
Move the GPIO part of function audio_mux() to a separate function
audio_mux_gpio().
This prepares the code for the next patch which will separate mute and input
setting.

Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/pci/bt8xx/bttv-driver.c

index 81ee70d..f1cb0db 100644 (file)
@@ -989,11 +989,10 @@ static char *audio_modes[] = {
        "audio: intern", "audio: mute"
 };
 
-static int
-audio_mux(struct bttv *btv, int input, int mute)
+static void
+audio_mux_gpio(struct bttv *btv, int input, int mute)
 {
        int gpio_val, signal, mute_gpio;
-       struct v4l2_ctrl *ctrl;
 
        gpio_inout(bttv_tvcards[btv->c.type].gpiomask,
                   bttv_tvcards[btv->c.type].gpiomask);
@@ -1020,8 +1019,14 @@ audio_mux(struct bttv *btv, int input, int mute)
 
        if (bttv_gpio)
                bttv_gpio_tracking(btv, audio_modes[mute_gpio ? 4 : input]);
-       if (in_interrupt())
-               return 0;
+}
+
+static int
+audio_mux(struct bttv *btv, int input, int mute)
+{
+       struct v4l2_ctrl *ctrl;
+
+       audio_mux_gpio(btv, input, mute);
 
        if (btv->sd_msp34xx) {
                u32 in;
@@ -3846,7 +3851,8 @@ static irqreturn_t bttv_irq(int irq, void *dev_id)
                        bttv_irq_switch_video(btv);
 
                if ((astat & BT848_INT_HLOCK)  &&  btv->opt_automute)
-                       audio_mute(btv, btv->mute);  /* trigger automute */
+                       /* trigger automute */
+                       audio_mux_gpio(btv, btv->audio_input, btv->mute);
 
                if (astat & (BT848_INT_SCERR|BT848_INT_OCERR)) {
                        pr_info("%d: %s%s @ %08x,",