Message ID | 6929939.mWPG6Zt5A4@ubuntu (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
That patch does more than it says and due to that I don't want it. Just implement cxd2820r clock inversion and nothing more. Put the rest stuff, which does not belong to cxd2820r, to another patch. Antti On 05.05.2014 23:46, CrazyCat wrote: > TS clock inversion in config. > > Signed-off-by: Evgeny Plehov <EvgenyPlehov@ukr.net> > > diff --git a/drivers/media/dvb-frontends/cxd2820r.h b/drivers/media/dvb-frontends/cxd2820r.h > index 82b3d93..6095dbc 100644 > --- a/drivers/media/dvb-frontends/cxd2820r.h > +++ b/drivers/media/dvb-frontends/cxd2820r.h > @@ -52,6 +52,12 @@ struct cxd2820r_config { > */ > u8 ts_mode; > > + /* TS clock inverted. > + * Default: 0 > + * Values: 0, 1 > + */ > + bool ts_clock_inv; > + > /* IF AGC polarity. > * Default: 0 > * Values: 0, 1 > diff --git a/drivers/media/dvb-frontends/cxd2820r_c.c b/drivers/media/dvb-frontends/cxd2820r_c.c > index 5c6ab49..0f4657e 100644 > --- a/drivers/media/dvb-frontends/cxd2820r_c.c > +++ b/drivers/media/dvb-frontends/cxd2820r_c.c > @@ -45,6 +45,7 @@ int cxd2820r_set_frontend_c(struct dvb_frontend *fe) > { 0x1008b, 0x07, 0xff }, > { 0x1001f, priv->cfg.if_agc_polarity << 7, 0x80 }, > { 0x10070, priv->cfg.ts_mode, 0xff }, > + { 0x10071, !priv->cfg.ts_clock_inv << 4, 0x10 }, > }; > > dev_dbg(&priv->i2c->dev, "%s: frequency=%d symbol_rate=%d\n", __func__, > diff --git a/drivers/media/dvb-frontends/cxd2820r_t.c b/drivers/media/dvb-frontends/cxd2820r_t.c > index fa184ca..9b5a45b 100644 > --- a/drivers/media/dvb-frontends/cxd2820r_t.c > +++ b/drivers/media/dvb-frontends/cxd2820r_t.c > @@ -46,6 +46,7 @@ int cxd2820r_set_frontend_t(struct dvb_frontend *fe) > { 0x00088, 0x01, 0xff }, > > { 0x00070, priv->cfg.ts_mode, 0xff }, > + { 0x00071, !priv->cfg.ts_clock_inv << 4, 0x10 }, > { 0x000cb, priv->cfg.if_agc_polarity << 6, 0x40 }, > { 0x000a5, 0x00, 0x01 }, > { 0x00082, 0x20, 0x60 }, > diff --git a/drivers/media/dvb-frontends/cxd2820r_t2.c b/drivers/media/dvb-frontends/cxd2820r_t2.c > index 2ba130e..9c0c4f4 100644 > --- a/drivers/media/dvb-frontends/cxd2820r_t2.c > +++ b/drivers/media/dvb-frontends/cxd2820r_t2.c > @@ -47,6 +47,7 @@ int cxd2820r_set_frontend_t2(struct dvb_frontend *fe) > { 0x02083, 0x0a, 0xff }, > { 0x020cb, priv->cfg.if_agc_polarity << 6, 0x40 }, > { 0x02070, priv->cfg.ts_mode, 0xff }, > + { 0x02071, !priv->cfg.ts_clock_inv << 6, 0x40 }, > { 0x020b5, priv->cfg.spec_inv << 4, 0x10 }, > { 0x02567, 0x07, 0x0f }, > { 0x02569, 0x03, 0x03 }, > diff --git a/drivers/media/usb/dvb-usb/dw2102.c b/drivers/media/usb/dvb-usb/dw2102.c > index ae0f56a..7135a3e 100644 > --- a/drivers/media/usb/dvb-usb/dw2102.c > +++ b/drivers/media/usb/dvb-usb/dw2102.c > @@ -1109,6 +1109,7 @@ static struct ds3000_config su3000_ds3000_config = { > static struct cxd2820r_config cxd2820r_config = { > .i2c_address = 0x6c, /* (0xd8 >> 1) */ > .ts_mode = 0x38, > + .ts_clock_inv = 1, > }; > > static struct tda18271_config tda18271_config = { > @@ -1387,20 +1388,27 @@ static int su3000_frontend_attach(struct dvb_usb_adapter *d) > > static int t220_frontend_attach(struct dvb_usb_adapter *d) > { > - u8 obuf[3] = { 0xe, 0x80, 0 }; > + u8 obuf[3] = { 0xe, 0x87, 0 }; > u8 ibuf[] = { 0 }; > > if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0) > err("command 0x0e transfer failed."); > > obuf[0] = 0xe; > - obuf[1] = 0x83; > + obuf[1] = 0x86; > + obuf[2] = 1; > + > + if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0) > + err("command 0x0e transfer failed."); > + > + obuf[0] = 0xe; > + obuf[1] = 0x80; > obuf[2] = 0; > > if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0) > err("command 0x0e transfer failed."); > > - msleep(100); > + msleep(50); > > obuf[0] = 0xe; > obuf[1] = 0x80; > > -- > To unsubscribe from this list: send the line "unsubscribe linux-media" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >
This specific cxd2820r option need for Geniatech T220 https://patchwork.linuxtv.org/patch/23836/ On Tuesday 06 May 2014 00:11:17 you wrote: > That patch does more than it says and due to that I don't want it. Just > implement cxd2820r clock inversion and nothing more. Put the rest stuff, > which does not belong to cxd2820r, to another patch. -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/media/dvb-frontends/cxd2820r.h b/drivers/media/dvb-frontends/cxd2820r.h index 82b3d93..6095dbc 100644 --- a/drivers/media/dvb-frontends/cxd2820r.h +++ b/drivers/media/dvb-frontends/cxd2820r.h @@ -52,6 +52,12 @@ struct cxd2820r_config { */ u8 ts_mode; + /* TS clock inverted. + * Default: 0 + * Values: 0, 1 + */ + bool ts_clock_inv; + /* IF AGC polarity. * Default: 0 * Values: 0, 1 diff --git a/drivers/media/dvb-frontends/cxd2820r_c.c b/drivers/media/dvb-frontends/cxd2820r_c.c index 5c6ab49..0f4657e 100644 --- a/drivers/media/dvb-frontends/cxd2820r_c.c +++ b/drivers/media/dvb-frontends/cxd2820r_c.c @@ -45,6 +45,7 @@ int cxd2820r_set_frontend_c(struct dvb_frontend *fe) { 0x1008b, 0x07, 0xff }, { 0x1001f, priv->cfg.if_agc_polarity << 7, 0x80 }, { 0x10070, priv->cfg.ts_mode, 0xff }, + { 0x10071, !priv->cfg.ts_clock_inv << 4, 0x10 }, }; dev_dbg(&priv->i2c->dev, "%s: frequency=%d symbol_rate=%d\n", __func__, diff --git a/drivers/media/dvb-frontends/cxd2820r_t.c b/drivers/media/dvb-frontends/cxd2820r_t.c index fa184ca..9b5a45b 100644 --- a/drivers/media/dvb-frontends/cxd2820r_t.c +++ b/drivers/media/dvb-frontends/cxd2820r_t.c @@ -46,6 +46,7 @@ int cxd2820r_set_frontend_t(struct dvb_frontend *fe) { 0x00088, 0x01, 0xff }, { 0x00070, priv->cfg.ts_mode, 0xff }, + { 0x00071, !priv->cfg.ts_clock_inv << 4, 0x10 }, { 0x000cb, priv->cfg.if_agc_polarity << 6, 0x40 }, { 0x000a5, 0x00, 0x01 }, { 0x00082, 0x20, 0x60 }, diff --git a/drivers/media/dvb-frontends/cxd2820r_t2.c b/drivers/media/dvb-frontends/cxd2820r_t2.c index 2ba130e..9c0c4f4 100644 --- a/drivers/media/dvb-frontends/cxd2820r_t2.c +++ b/drivers/media/dvb-frontends/cxd2820r_t2.c @@ -47,6 +47,7 @@ int cxd2820r_set_frontend_t2(struct dvb_frontend *fe) { 0x02083, 0x0a, 0xff }, { 0x020cb, priv->cfg.if_agc_polarity << 6, 0x40 }, { 0x02070, priv->cfg.ts_mode, 0xff }, + { 0x02071, !priv->cfg.ts_clock_inv << 6, 0x40 }, { 0x020b5, priv->cfg.spec_inv << 4, 0x10 }, { 0x02567, 0x07, 0x0f }, { 0x02569, 0x03, 0x03 }, diff --git a/drivers/media/usb/dvb-usb/dw2102.c b/drivers/media/usb/dvb-usb/dw2102.c index ae0f56a..7135a3e 100644 --- a/drivers/media/usb/dvb-usb/dw2102.c +++ b/drivers/media/usb/dvb-usb/dw2102.c @@ -1109,6 +1109,7 @@ static struct ds3000_config su3000_ds3000_config = { static struct cxd2820r_config cxd2820r_config = { .i2c_address = 0x6c, /* (0xd8 >> 1) */ .ts_mode = 0x38, + .ts_clock_inv = 1, }; static struct tda18271_config tda18271_config = { @@ -1387,20 +1388,27 @@ static int su3000_frontend_attach(struct dvb_usb_adapter *d) static int t220_frontend_attach(struct dvb_usb_adapter *d) { - u8 obuf[3] = { 0xe, 0x80, 0 }; + u8 obuf[3] = { 0xe, 0x87, 0 }; u8 ibuf[] = { 0 }; if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0) err("command 0x0e transfer failed."); obuf[0] = 0xe; - obuf[1] = 0x83; + obuf[1] = 0x86; + obuf[2] = 1; + + if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0) + err("command 0x0e transfer failed."); + + obuf[0] = 0xe; + obuf[1] = 0x80; obuf[2] = 0; if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0) err("command 0x0e transfer failed."); - msleep(100); + msleep(50); obuf[0] = 0xe; obuf[1] = 0x80;
TS clock inversion in config. Signed-off-by: Evgeny Plehov <EvgenyPlehov@ukr.net> -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html