From c260691ac775dd1aa14b1e7edc3fc15f9dbeec10 Mon Sep 17 00:00:00 2001 From: Matthias Schwarzott Date: Sat, 12 Apr 2008 15:04:50 -0300 Subject: [PATCH] --- yaml --- r: 92660 b: refs/heads/master c: 11d3f323930ef625c1018ed13adeb04127c356e0 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/media/dvb/frontends/mt312.c | 7 ++++++- trunk/drivers/media/dvb/frontends/mt312.h | 3 +++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index f26752f5b681..8eea41723078 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6a5cbd591c703491b62892682adc124ece67f3a9 +refs/heads/master: 11d3f323930ef625c1018ed13adeb04127c356e0 diff --git a/trunk/drivers/media/dvb/frontends/mt312.c b/trunk/drivers/media/dvb/frontends/mt312.c index e17a36180f9c..081ca3398c76 100644 --- a/trunk/drivers/media/dvb/frontends/mt312.c +++ b/trunk/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; const u8 volt_tab[3] = { 0x00, 0x40, 0x00 }; + u8 val; if (v > SEC_VOLTAGE_OFF) 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) diff --git a/trunk/drivers/media/dvb/frontends/mt312.h b/trunk/drivers/media/dvb/frontends/mt312.h index afe24fd822bd..96338f0c4dd4 100644 --- a/trunk/drivers/media/dvb/frontends/mt312.h +++ b/trunk/drivers/media/dvb/frontends/mt312.h @@ -31,6 +31,9 @@ struct mt312_config { /* the demodulator's i2c address */ u8 demod_address; + + /* inverted voltage setting */ + int voltage_inverted:1; }; #if defined(CONFIG_DVB_MT312) || (defined(CONFIG_DVB_MT312_MODULE) && defined(MODULE))