diff options
author | Antti Palosaari <crope@iki.fi> | 2013-06-03 18:39:51 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2013-06-08 20:45:22 -0400 |
commit | d716ef46fbb9de22de09516ecff990fe4e7799e3 (patch) | |
tree | 8bf5b0605ac44db5da3ad454f4f90397d468ab65 | |
parent | e8292e28e3543fec62406551a026fcc0f2ca3cff (diff) |
[media] af9035: correct TS mode handling
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r-- | drivers/media/usb/dvb-usb-v2/af9035.c | 14 | ||||
-rw-r--r-- | drivers/media/usb/dvb-usb-v2/af9035.h | 11 |
2 files changed, 16 insertions, 9 deletions
diff --git a/drivers/media/usb/dvb-usb-v2/af9035.c b/drivers/media/usb/dvb-usb-v2/af9035.c index e855ee6c86b5..1ea17dc2a76e 100644 --- a/drivers/media/usb/dvb-usb-v2/af9035.c +++ b/drivers/media/usb/dvb-usb-v2/af9035.c | |||
@@ -518,11 +518,11 @@ static int af9035_download_firmware(struct dvb_usb_device *d, | |||
518 | * which is done by master demod. | 518 | * which is done by master demod. |
519 | * Master feeds also clock and controls power via GPIO. | 519 | * Master feeds also clock and controls power via GPIO. |
520 | */ | 520 | */ |
521 | ret = af9035_rd_reg(d, state->eeprom_addr + EEPROM_DUAL_MODE, &tmp); | 521 | ret = af9035_rd_reg(d, state->eeprom_addr + EEPROM_TS_MODE, &tmp); |
522 | if (ret < 0) | 522 | if (ret < 0) |
523 | goto err; | 523 | goto err; |
524 | 524 | ||
525 | if (tmp) { | 525 | if (tmp == 1 || tmp == 3) { |
526 | /* configure gpioh1, reset & power slave demod */ | 526 | /* configure gpioh1, reset & power slave demod */ |
527 | ret = af9035_wr_reg_mask(d, 0x00d8b0, 0x01, 0x01); | 527 | ret = af9035_wr_reg_mask(d, 0x00d8b0, 0x01, 0x01); |
528 | if (ret < 0) | 528 | if (ret < 0) |
@@ -640,13 +640,15 @@ static int af9035_read_config(struct dvb_usb_device *d) | |||
640 | } | 640 | } |
641 | 641 | ||
642 | /* check if there is dual tuners */ | 642 | /* check if there is dual tuners */ |
643 | ret = af9035_rd_reg(d, state->eeprom_addr + EEPROM_DUAL_MODE, &tmp); | 643 | ret = af9035_rd_reg(d, state->eeprom_addr + EEPROM_TS_MODE, &tmp); |
644 | if (ret < 0) | 644 | if (ret < 0) |
645 | goto err; | 645 | goto err; |
646 | 646 | ||
647 | state->dual_mode = tmp; | 647 | if (tmp == 1 || tmp == 3) |
648 | dev_dbg(&d->udev->dev, "%s: dual mode=%d\n", __func__, | 648 | state->dual_mode = true; |
649 | state->dual_mode); | 649 | |
650 | dev_dbg(&d->udev->dev, "%s: ts mode=%d dual mode=%d\n", __func__, | ||
651 | tmp, state->dual_mode); | ||
650 | 652 | ||
651 | if (state->dual_mode) { | 653 | if (state->dual_mode) { |
652 | /* read 2nd demodulator I2C address */ | 654 | /* read 2nd demodulator I2C address */ |
diff --git a/drivers/media/usb/dvb-usb-v2/af9035.h b/drivers/media/usb/dvb-usb-v2/af9035.h index b5827ca3a01e..a1c68d829b8c 100644 --- a/drivers/media/usb/dvb-usb-v2/af9035.h +++ b/drivers/media/usb/dvb-usb-v2/af9035.h | |||
@@ -100,8 +100,13 @@ static const u32 clock_lut_it9135[] = { | |||
100 | * eeprom is memory mapped as read only. Writing that memory mapped address | 100 | * eeprom is memory mapped as read only. Writing that memory mapped address |
101 | * will not corrupt eeprom. | 101 | * will not corrupt eeprom. |
102 | * | 102 | * |
103 | * eeprom has value 0x00 single mode and 0x03 for dual mode as far as I have | 103 | * TS mode: |
104 | * seen to this day. | 104 | * 0 TS |
105 | * 1 DCA + PIP | ||
106 | * 3 PIP | ||
107 | * n DCA | ||
108 | * | ||
109 | * Values 0 and 3 are seen to this day. 0 for single TS and 3 for dual TS. | ||
105 | */ | 110 | */ |
106 | 111 | ||
107 | #define EEPROM_BASE_AF9035 0x42fd | 112 | #define EEPROM_BASE_AF9035 0x42fd |
@@ -109,7 +114,7 @@ static const u32 clock_lut_it9135[] = { | |||
109 | #define EEPROM_SHIFT 0x10 | 114 | #define EEPROM_SHIFT 0x10 |
110 | 115 | ||
111 | #define EEPROM_IR_MODE 0x10 | 116 | #define EEPROM_IR_MODE 0x10 |
112 | #define EEPROM_DUAL_MODE 0x29 | 117 | #define EEPROM_TS_MODE 0x29 |
113 | #define EEPROM_2ND_DEMOD_ADDR 0x2a | 118 | #define EEPROM_2ND_DEMOD_ADDR 0x2a |
114 | #define EEPROM_IR_TYPE 0x2c | 119 | #define EEPROM_IR_TYPE 0x2c |
115 | #define EEPROM_1_IF_L 0x30 | 120 | #define EEPROM_1_IF_L 0x30 |