In non S2 mode, the device is able to autodetect inversion. So
let's store it for tuning to S2 transponders.

Signed-off-by: Reinhard Nißl <rni...@gmx.de>
---
 drivers/media/dvb-frontends/stb0899_algo.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/media/dvb-frontends/stb0899_algo.c 
b/drivers/media/dvb-frontends/stb0899_algo.c
index 4b49efb..4ce542c 100644
--- a/drivers/media/dvb-frontends/stb0899_algo.c
+++ b/drivers/media/dvb-frontends/stb0899_algo.c
@@ -425,6 +425,14 @@ static enum stb0899_status stb0899_search_data(struct 
stb0899_state *state)
 
        if (internal->status == DATAOK) {
                stb0899_read_regs(state, STB0899_CFRM, cfr, 2); /* get 
derotator frequency */
+
+               /* store autodetected IQ swapping as default for DVB-S2 tuning 
*/
+               reg = stb0899_read_reg(state, STB0899_IQSWAP);
+               if (STB0899_GETFIELD(SYM, reg))
+                       internal->inversion = IQ_SWAP_ON;
+               else
+                       internal->inversion = IQ_SWAP_OFF;
+
                internal->derot_freq = state->config->inversion * 
MAKEWORD16(cfr[0], cfr[1]);
                dprintk(state->verbose, FE_DEBUG, 1, "------> DATAOK ! Derot 
Freq=%d", internal->derot_freq);
        }
-- 
1.8.1.4

--
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