Commit a71e479c authored by Antti Palosaari's avatar Antti Palosaari Committed by Mauro Carvalho Chehab

[media] af9035: correct demod i2c addresses

Chip uses so called 8-bit i2c addresses, but on bus there is of
course correct 7-bit addresses with rw bit as lsb - verified
with oscilloscope.

Lets still use correct addresses in driver.
Signed-off-by: default avatarAntti Palosaari <crope@iki.fi>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent 8efb34b2
...@@ -772,9 +772,9 @@ static int af9035_download_firmware(struct dvb_usb_device *d, ...@@ -772,9 +772,9 @@ static int af9035_download_firmware(struct dvb_usb_device *d,
/* tell the slave I2C address */ /* tell the slave I2C address */
tmp = state->eeprom[EEPROM_2ND_DEMOD_ADDR]; tmp = state->eeprom[EEPROM_2ND_DEMOD_ADDR];
/* use default I2C address if eeprom has no address set */ /* Use default I2C address if eeprom has no address set */
if (!tmp) if (!tmp)
tmp = 0x3a; tmp = 0x1d << 1; /* 8-bit format used by chip */
if ((state->chip_type == 0x9135) || if ((state->chip_type == 0x9135) ||
(state->chip_type == 0x9306)) { (state->chip_type == 0x9306)) {
...@@ -837,9 +837,9 @@ static int af9035_read_config(struct dvb_usb_device *d) ...@@ -837,9 +837,9 @@ static int af9035_read_config(struct dvb_usb_device *d)
u8 tmp; u8 tmp;
u16 tmp16; u16 tmp16;
/* demod I2C "address" */ /* Demod I2C address */
state->af9033_i2c_addr[0] = 0x38; state->af9033_i2c_addr[0] = 0x1c;
state->af9033_i2c_addr[1] = 0x3a; state->af9033_i2c_addr[1] = 0x1d;
state->af9033_config[0].adc_multiplier = AF9033_ADC_MULTIPLIER_2X; state->af9033_config[0].adc_multiplier = AF9033_ADC_MULTIPLIER_2X;
state->af9033_config[1].adc_multiplier = AF9033_ADC_MULTIPLIER_2X; state->af9033_config[1].adc_multiplier = AF9033_ADC_MULTIPLIER_2X;
state->af9033_config[0].ts_mode = AF9033_TS_MODE_USB; state->af9033_config[0].ts_mode = AF9033_TS_MODE_USB;
...@@ -878,12 +878,13 @@ static int af9035_read_config(struct dvb_usb_device *d) ...@@ -878,12 +878,13 @@ static int af9035_read_config(struct dvb_usb_device *d)
state->ir_type = state->eeprom[EEPROM_IR_TYPE]; state->ir_type = state->eeprom[EEPROM_IR_TYPE];
if (state->dual_mode) { if (state->dual_mode) {
/* read 2nd demodulator I2C address */ /* Read 2nd demodulator I2C address. 8-bit format on eeprom */
tmp = state->eeprom[EEPROM_2ND_DEMOD_ADDR]; tmp = state->eeprom[EEPROM_2ND_DEMOD_ADDR];
if (tmp) if (tmp)
state->af9033_i2c_addr[1] = tmp; state->af9033_i2c_addr[1] = tmp >> 1;
dev_dbg(&intf->dev, "2nd demod I2C addr=%02x\n", tmp); dev_dbg(&intf->dev, "2nd demod I2C addr=%02x\n",
state->af9033_i2c_addr[1]);
} }
for (i = 0; i < state->dual_mode + 1; i++) { for (i = 0; i < state->dual_mode + 1; i++) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment