diff options
Diffstat (limited to 'drivers/media/common/b2c2')
-rw-r--r-- | drivers/media/common/b2c2/flexcop-fe-tuner.c | 4 | ||||
-rw-r--r-- | drivers/media/common/b2c2/flexcop-i2c.c | 47 | ||||
-rw-r--r-- | drivers/media/common/b2c2/flexcop.c | 2 | ||||
-rw-r--r-- | drivers/media/common/b2c2/flexcop.h | 1 |
4 files changed, 23 insertions, 31 deletions
diff --git a/drivers/media/common/b2c2/flexcop-fe-tuner.c b/drivers/media/common/b2c2/flexcop-fe-tuner.c index a1ce3e8eb1d3..aac1aadb0cb1 100644 --- a/drivers/media/common/b2c2/flexcop-fe-tuner.c +++ b/drivers/media/common/b2c2/flexcop-fe-tuner.c @@ -495,7 +495,6 @@ static int airstar_atsc2_attach(struct flexcop_device *fc, /* AirStar ATSC 3rd generation */ #if FE_SUPPORTED(LGDT330X) static struct lgdt330x_config air2pc_atsc_hd5000_config = { - .demod_address = 0x59, .demod_chip = LGDT3303, .serial_mpeg = 0x04, .clock_polarity_flip = 1, @@ -504,7 +503,8 @@ static struct lgdt330x_config air2pc_atsc_hd5000_config = { static int airstar_atsc3_attach(struct flexcop_device *fc, struct i2c_adapter *i2c) { - fc->fe = dvb_attach(lgdt330x_attach, &air2pc_atsc_hd5000_config, i2c); + fc->fe = dvb_attach(lgdt330x_attach, &air2pc_atsc_hd5000_config, + 0x59, i2c); if (!fc->fe) return 0; diff --git a/drivers/media/common/b2c2/flexcop-i2c.c b/drivers/media/common/b2c2/flexcop-i2c.c index 564da6fa900d..6675b605eb6f 100644 --- a/drivers/media/common/b2c2/flexcop-i2c.c +++ b/drivers/media/common/b2c2/flexcop-i2c.c @@ -105,40 +105,36 @@ static int flexcop_i2c_write4(struct flexcop_device *fc, } int flexcop_i2c_request(struct flexcop_i2c_adapter *i2c, - flexcop_access_op_t op, u8 chipaddr, u8 addr, u8 *buf, u16 len) + flexcop_access_op_t op, u8 chipaddr, + u8 start_addr, u8 *buf, u16 size) { int ret; - -#ifdef DUMP_I2C_MESSAGES - int i; -#endif + int len = size; + u8 *p; + u8 addr = start_addr; u16 bytes_to_transfer; flexcop_ibi_value r100; - deb_i2c("op = %d\n",op); + deb_i2c("port %d %s(%02x): register %02x, size: %d\n", + i2c->port, + op == FC_READ ? "rd" : "wr", + chipaddr, start_addr, size); r100.raw = 0; r100.tw_sm_c_100.chipaddr = chipaddr; r100.tw_sm_c_100.twoWS_rw = op; r100.tw_sm_c_100.twoWS_port_reg = i2c->port; -#ifdef DUMP_I2C_MESSAGES - printk(KERN_DEBUG "%d ", i2c->port); - if (op == FC_READ) - printk(KERN_CONT "rd("); - else - printk(KERN_CONT "wr("); - printk(KERN_CONT "%02x): %02x ", chipaddr, addr); -#endif - /* in that case addr is the only value -> * we write it twice as baseaddr and val0 * BBTI is doing it like that for ISL6421 at least */ if (i2c->no_base_addr && len == 0 && op == FC_WRITE) { - buf = &addr; + buf = &start_addr; len = 1; } + p = buf; + while (len != 0) { bytes_to_transfer = len > 4 ? 4 : len; @@ -146,26 +142,21 @@ int flexcop_i2c_request(struct flexcop_i2c_adapter *i2c, r100.tw_sm_c_100.baseaddr = addr; if (op == FC_READ) - ret = flexcop_i2c_read4(i2c, r100, buf); + ret = flexcop_i2c_read4(i2c, r100, p); else - ret = flexcop_i2c_write4(i2c->fc, r100, buf); - -#ifdef DUMP_I2C_MESSAGES - for (i = 0; i < bytes_to_transfer; i++) - printk(KERN_CONT "%02x ", buf[i]); -#endif + ret = flexcop_i2c_write4(i2c->fc, r100, p); if (ret < 0) return ret; - buf += bytes_to_transfer; + p += bytes_to_transfer; addr += bytes_to_transfer; len -= bytes_to_transfer; } - -#ifdef DUMP_I2C_MESSAGES - printk(KERN_CONT "\n"); -#endif + deb_i2c_dump("port %d %s(%02x): register %02x: %*ph\n", + i2c->port, + op == FC_READ ? "rd" : "wr", + chipaddr, start_addr, size, buf); return 0; } diff --git a/drivers/media/common/b2c2/flexcop.c b/drivers/media/common/b2c2/flexcop.c index 2e0ab55cd67e..cbaa61f10d5f 100644 --- a/drivers/media/common/b2c2/flexcop.c +++ b/drivers/media/common/b2c2/flexcop.c @@ -42,7 +42,7 @@ int b2c2_flexcop_debug; EXPORT_SYMBOL_GPL(b2c2_flexcop_debug); module_param_named(debug, b2c2_flexcop_debug, int, 0644); MODULE_PARM_DESC(debug, - "set debug level (1=info,2=tuner,4=i2c,8=ts,16=sram,32=reg (|-able))." + "set debug level (1=info,2=tuner,4=i2c,8=ts,16=sram,32=reg,64=i2cdump (|-able))." DEBSTATUS); #undef DEBSTATUS diff --git a/drivers/media/common/b2c2/flexcop.h b/drivers/media/common/b2c2/flexcop.h index 911ece59ea02..486fe2380b92 100644 --- a/drivers/media/common/b2c2/flexcop.h +++ b/drivers/media/common/b2c2/flexcop.h @@ -26,5 +26,6 @@ extern int b2c2_flexcop_debug; #define deb_ts(args...) dprintk(0x08, args) #define deb_sram(args...) dprintk(0x10, args) #define deb_rdump(args...) dprintk(0x20, args) +#define deb_i2c_dump(args...) dprintk(0x40, args) #endif |