V4L/DVB (7672): dib7000p: Add output mode param to the attach struct
authorSteven Toth <stoth@hauppauge.com>
Tue, 22 Apr 2008 18:37:01 +0000 (15:37 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Thu, 24 Apr 2008 17:09:45 +0000 (14:09 -0300)
This allows future drivers to select the most appropriate output mode.

Signed-off-by: Steven Toth <stoth@hauppauge.com>
Reviewed-by: Patrick Boettcher <pb@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/dvb/frontends/dib7000p.c
drivers/media/dvb/frontends/dib7000p.h

index 47c23e29753e6dc20dd32ae2d550e8d832d7204c..1a0142e0d74166a5576d11f27f4159403fcd78f0 100644 (file)
@@ -1168,7 +1168,7 @@ static int dib7000p_set_frontend(struct dvb_frontend* fe,
        ret = dib7000p_tune(fe, fep);
 
        /* make this a config parameter */
-       dib7000p_set_output_mode(state, OUTMODE_MPEG2_FIFO);
+       dib7000p_set_output_mode(state, state->cfg.output_mode);
     return ret;
 }
 
@@ -1330,6 +1330,12 @@ struct dvb_frontend * dib7000p_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr,
        st->gpio_val = cfg->gpio_val;
        st->gpio_dir = cfg->gpio_dir;
 
+       /* Ensure the output mode remains at the previous default if it's
+        * not specifically set by the caller.
+        */
+       if (st->cfg.output_mode != OUTMODE_MPEG2_SERIAL)
+               st->cfg.output_mode = OUTMODE_MPEG2_FIFO;
+
        demod                   = &st->demod;
        demod->demodulator_priv = st;
        memcpy(&st->demod.ops, &dib7000p_ops, sizeof(struct dvb_frontend_ops));
index eefcac8b5244197d0cf9390960a77d8cd954afe5..081bd81f3da2ec5a2b61b797df57ca63b68d8ffe 100644 (file)
@@ -31,6 +31,8 @@ struct dib7000p_config {
        u8 spur_protect;
 
        int (*agc_control) (struct dvb_frontend *, u8 before);
+
+       u8 output_mode;
 };
 
 #define DEFAULT_DIB7000P_I2C_ADDRESS 18