From f5bbec9360ccd1d58b9f199a0a176d1d6d42a3d7 Mon Sep 17 00:00:00 2001 From: Patrick Boettcher Date: Sat, 28 Feb 2009 10:19:30 -0300 Subject: [PATCH] --- yaml --- r: 138373 b: refs/heads/master c: 1662070a593b5a862b5bf8c843ebfab0deb058a6 h: refs/heads/master i: 138371: 5550f18d64bc15ac3956221477573026258cf2e6 v: v3 --- [refs] | 2 +- trunk/drivers/media/dvb/b2c2/flexcop-i2c.c | 12 ++++++++++++ trunk/drivers/media/dvb/frontends/itd1000_priv.h | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index b33bdcf86285..59054795b07a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: aef822074b88397968560b650a9f4bdbf973e2b3 +refs/heads/master: 1662070a593b5a862b5bf8c843ebfab0deb058a6 diff --git a/trunk/drivers/media/dvb/b2c2/flexcop-i2c.c b/trunk/drivers/media/dvb/b2c2/flexcop-i2c.c index f13783f08f0f..a0cfde18e640 100644 --- a/trunk/drivers/media/dvb/b2c2/flexcop-i2c.c +++ b/trunk/drivers/media/dvb/b2c2/flexcop-i2c.c @@ -47,6 +47,18 @@ static int flexcop_i2c_read4(struct flexcop_i2c_adapter *i2c, int len = r100.tw_sm_c_100.total_bytes, /* remember total_bytes is buflen-1 */ ret; + /* work-around to have CableStar2 and SkyStar2 rev 2.7 work + * correctly: + * + * the ITD1000 is behind an i2c-gate which closes automatically + * after an i2c-transaction the STV0297 needs 2 consecutive reads + * one with no_base_addr = 0 and one with 1 + * + * those two work-arounds are conflictin: we check for the card + * type, it is set when probing the ITD1000 */ + if (i2c->fc->dev_type == FC_SKY_REV27) + r100.tw_sm_c_100.no_base_addr_ack_error = i2c->no_base_addr; + ret = flexcop_i2c_operation(i2c->fc, &r100); if (ret != 0) { deb_i2c("Retrying operation\n"); diff --git a/trunk/drivers/media/dvb/frontends/itd1000_priv.h b/trunk/drivers/media/dvb/frontends/itd1000_priv.h index 8cdc54e57903..08ca851223c9 100644 --- a/trunk/drivers/media/dvb/frontends/itd1000_priv.h +++ b/trunk/drivers/media/dvb/frontends/itd1000_priv.h @@ -31,7 +31,7 @@ struct itd1000_state { /* ugly workaround for flexcop's incapable i2c-controller * FIXME, if possible */ - u8 shadow[255]; + u8 shadow[256]; }; enum itd1000_register {