On 2018-01-17 20:36, Antti Palosaari wrote: > On 01/18/2018 03:58 AM, Brad Love wrote: >> >> On 2018-01-17 16:08, Brad Love wrote: >>> On 2018-01-17 16:02, Antti Palosaari wrote: >>>> >>>> On 01/17/2018 11:52 PM, Brad Love wrote: >>>>> Some tuners produce inverted spectrum, but the si2168 is not >>>>> currently set up to accept it. This adds an optional parameter >>>>> to set the frontend up to receive inverted spectrum. >>>>> >>>>> Parameter is optional and only boards who enable inversion >>>>> will utilize this. >>>>> >>>>> Signed-off-by: Brad Love <brad@xxxxxxxxxxxxxxxx> >>>>> --- >>>>> Changes since v1: >>>>> - Embarassing build failure due to missing declaration. >>>>> >>>>> drivers/media/dvb-frontends/si2168.c | 3 +++ >>>>> drivers/media/dvb-frontends/si2168.h | 3 +++ >>>>> 2 files changed, 6 insertions(+) >>>>> >>>>> diff --git a/drivers/media/dvb-frontends/si2168.c >>>>> b/drivers/media/dvb-frontends/si2168.c >>>>> index c041e79..048b815 100644 >>>>> --- a/drivers/media/dvb-frontends/si2168.c >>>>> +++ b/drivers/media/dvb-frontends/si2168.c >>>>> @@ -213,6 +213,7 @@ static int si2168_set_frontend(struct >>>>> dvb_frontend *fe) >>>>> struct i2c_client *client = fe->demodulator_priv; >>>>> struct si2168_dev *dev = i2c_get_clientdata(client); >>>>> struct dtv_frontend_properties *c = &fe->dtv_property_cache; >>>>> + struct si2168_config *config = client->dev.platform_data; >>>> hmmm, are you sure platform data pointer points is const? I usually >>>> tend to store all config information to device state. Then there is no >>>> need to care if pointer is valid or not anymore. >>>> >>>> And inversion happens when those wires are cross-connected >>> It just dawned on me that the platform_data is stack allocated and >>> therefore not safe to access outside of probe. I will fix this >>> momentarily. >>> >>> I was informed by one of our hardware guys that the two models in patch >>> 2/2 are inverted spectrum, so I guess they have wires >>> cross-connected. I >>> can verify this again to be sure. >> >> >> Hello Antti, >> >> I have confirmation. No 'cross-connected' / swapped differential pair >> polarities (if that's what you meant) on the IF pins. The si2157 >> inverted spectrum output is configurable though, and Hauppauge >> have the tuner set up to output inverted. Sounds like it was a decision >> based on interoperability with older demods. > > yeah, that was what I was thinking for. That board single tuner and > two demods which other demod does not support if spectrum inversion? > > If there is just si2168 and si2157, you can set both to invert or both > to non-invert - the end result is same. > > Antti I will check on the HVR975 tomorrow, if it's affected as well I'll submit a patch. The lgdt3306a frontend is already set up for auto spectrum inversion, so it is able handle the si2157 in either config.