Re: [PATCH]cxd2820r: TS clock inversion in config
Reviewed-by: Antti Palosaari cr...@iki.fi Acked-by: Antti Palosaari cr...@iki.fi On 06/03/2014 08:19 PM, CrazyCat wrote: TS clock inversion in config. Signed-off-by: Evgeny Plehov evgenyple...@ukr.net --- drivers/media/dvb-frontends/cxd2820r.h| 6 ++ drivers/media/dvb-frontends/cxd2820r_c.c | 1 + drivers/media/dvb-frontends/cxd2820r_t.c | 1 + drivers/media/dvb-frontends/cxd2820r_t2.c | 1 + 4 files changed, 9 insertions(+) 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 }, -- http://palosaari.fi/ -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH]cxd2820r: TS clock inversion in config
TS clock inversion in config. Signed-off-by: Evgeny Plehov evgenyple...@ukr.net --- drivers/media/dvb-frontends/cxd2820r.h| 6 ++ drivers/media/dvb-frontends/cxd2820r_c.c | 1 + drivers/media/dvb-frontends/cxd2820r_t.c | 1 + drivers/media/dvb-frontends/cxd2820r_t2.c | 1 + 4 files changed, 9 insertions(+) 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 }, -- 1.9.1 -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] cxd2820r: TS clock inversion in config
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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] cxd2820r: TS clock inversion in config
TS clock inversion in config. Signed-off-by: Evgeny Plehov evgenyple...@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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] cxd2820r: TS clock inversion in config
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 evgenyple...@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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html -- http://palosaari.fi/ -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html