cxd2820r: TS clock inversion in config
Subsystems (2)
PATCH 1/1 cxd2820r: TS clock inversion in config
TS clock inversion in config.
drivers/media/dvb-frontends/cxd2820r.h +6 -0
@@ -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
drivers/media/dvb-frontends/cxd2820r_c.c +1 -0
@@ -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__,
drivers/media/dvb-frontends/cxd2820r_t.c +1 -0
@@ -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 },
drivers/media/dvb-frontends/cxd2820r_t2.c +1 -0
@@ -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 },
drivers/media/usb/dvb-usb/dw2102.c +11 -3
@@ -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 ;
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
Quoted 106 lines · CrazyCat
TS clock inversion in config.
Signed-off-by Evgeny Plehov <[email protected]>drivers/media/dvb-frontends/cxd2820r.h +6
-0@@ -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 drivers/media/dvb-frontends/cxd2820r_c.c +1
-0@@ -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__,drivers/media/dvb-frontends/cxd2820r_t.c +1
-0@@ -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 },drivers/media/dvb-frontends/cxd2820r_t2.c +1
-0@@ -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 },drivers/media/usb/dvb-usb/dw2102.c +11
-4@@ -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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Signature · 1 line
http://palosaari.fi/
This specific cxd2820r option need for Geniatech T220
https://patchwork.linuxtv.org/patch/23836/
Quoted 3 lines · 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.