22kHz workaround must also be performed for the 2nd frontend.

Signed-off-by: Oliver Endriss <o.endr...@gmx.de>
Signed-off-by: Manu Abraham <m...@linuxtv.org>
---
 drivers/media/dvb/frontends/stv090x.c |   26 +++++++++++---------------
 1 files changed, 11 insertions(+), 15 deletions(-)

diff --git a/drivers/media/dvb/frontends/stv090x.c 
b/drivers/media/dvb/frontends/stv090x.c
index 1675c2a..6c4c6ef 100644
--- a/drivers/media/dvb/frontends/stv090x.c
+++ b/drivers/media/dvb/frontends/stv090x.c
@@ -4688,10 +4688,6 @@ static int stv090x_setup(struct dvb_frontend *fe)
        if (stv090x_write_reg(state, STV090x_TSTRES0, 0x00) < 0)
                goto err;
 
-       /* workaround for stuck DiSEqC output */
-       if (config->diseqc_envelope_mode)
-               stv090x_send_diseqc_burst(fe, SEC_MINI_A);
-
        return 0;
 err:
        dprintk(FE_ERROR, 1, "I/O error");
@@ -4762,11 +4758,6 @@ struct dvb_frontend *stv090x_attach(const struct 
stv090x_config *config,
                state->internal = temp_int->internal;
                state->internal->num_used++;
                dprintk(FE_INFO, 1, "Found Internal Structure!");
-               dprintk(FE_ERROR, 1, "Attaching %s demodulator(%d) Cut=0x%02x",
-                       state->device == STV0900 ? "STV0900" : "STV0903",
-                       demod,
-                       state->internal->dev_ver);
-               return &state->frontend;
        } else {
                state->internal = kmalloc(sizeof(struct stv090x_internal),
                                          GFP_KERNEL);
@@ -4777,15 +4768,20 @@ struct dvb_frontend *stv090x_attach(const struct 
stv090x_config *config,
                state->internal->i2c_adap = state->i2c;
                state->internal->i2c_addr = state->config->address;
                dprintk(FE_INFO, 1, "Create New Internal Structure!");
-       }
 
-       mutex_init(&state->internal->demod_lock);
-       mutex_init(&state->internal->tuner_lock);
+               mutex_init(&state->internal->demod_lock);
+               mutex_init(&state->internal->tuner_lock);
 
-       if (stv090x_setup(&state->frontend) < 0) {
-               dprintk(FE_ERROR, 1, "Error setting up device");
-               goto error;
+               if (stv090x_setup(&state->frontend) < 0) {
+                       dprintk(FE_ERROR, 1, "Error setting up device");
+                       goto error;
+               }
        }
+
+       /* workaround for stuck DiSEqC output */
+       if (config->diseqc_envelope_mode)
+               stv090x_send_diseqc_burst(&state->frontend, SEC_MINI_A);
+
        dprintk(FE_ERROR, 1, "Attaching %s demodulator(%d) Cut=0x%02x",
               state->device == STV0900 ? "STV0900" : "STV0903",
               demod,
-- 
1.6.5.3

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to