Jelajahi Sumber

V4L/DVB (7575): mt312: add attach-time setting to invert lnb-voltage

Add a setting to config struct for inversion of lnb-voltage.
Needed for support of Avermedia A700 cards.

Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Matthias Schwarzott 17 tahun lalu
induk
melakukan
11d3f32393
2 mengubah file dengan 9 tambahan dan 1 penghapusan
  1. 6 1
      drivers/media/dvb/frontends/mt312.c
  2. 3 0
      drivers/media/dvb/frontends/mt312.h

+ 6 - 1
drivers/media/dvb/frontends/mt312.c

@@ -422,11 +422,16 @@ static int mt312_set_voltage(struct dvb_frontend *fe, const fe_sec_voltage_t v)
 {
 {
 	struct mt312_state *state = fe->demodulator_priv;
 	struct mt312_state *state = fe->demodulator_priv;
 	const u8 volt_tab[3] = { 0x00, 0x40, 0x00 };
 	const u8 volt_tab[3] = { 0x00, 0x40, 0x00 };
+	u8 val;
 
 
 	if (v > SEC_VOLTAGE_OFF)
 	if (v > SEC_VOLTAGE_OFF)
 		return -EINVAL;
 		return -EINVAL;
 
 
-	return mt312_writereg(state, DISEQC_MODE, volt_tab[v]);
+	val = volt_tab[v];
+	if (state->config->voltage_inverted)
+		val ^= 0x40;
+
+	return mt312_writereg(state, DISEQC_MODE, val);
 }
 }
 
 
 static int mt312_read_status(struct dvb_frontend *fe, fe_status_t *s)
 static int mt312_read_status(struct dvb_frontend *fe, fe_status_t *s)

+ 3 - 0
drivers/media/dvb/frontends/mt312.h

@@ -31,6 +31,9 @@
 struct mt312_config {
 struct mt312_config {
 	/* the demodulator's i2c address */
 	/* the demodulator's i2c address */
 	u8 demod_address;
 	u8 demod_address;
+
+	/* inverted voltage setting */
+	int voltage_inverted:1;
 };
 };
 
 
 #if defined(CONFIG_DVB_MT312) || (defined(CONFIG_DVB_MT312_MODULE) && defined(MODULE))
 #if defined(CONFIG_DVB_MT312) || (defined(CONFIG_DVB_MT312_MODULE) && defined(MODULE))