aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDevin Heitmueller <dheitmueller@hauppauge.com>2010-08-18 16:50:07 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2010-10-20 23:17:29 -0400
commit888062188cfbed50bbe14f7e180cdc70336dfc4c (patch)
tree7e699b0724af3479623ab3f311a5fa170730f6f5
parent4270c3cac41e248ee339d18e01251989b74a30f1 (diff)
[media] cx231xx: make output mode configurable via the board profile
Extend the board profile structure to allow configuration of the output mode. Right now they are all doing VIP 1.1 format, but we have a board that needs ITU656 format (which hasn't been checked in yet). Signed-off-by: Devin Heitmueller <dheitmueller@hauppauge.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/video/cx231xx/cx231xx-avcore.c12
-rw-r--r--drivers/media/video/cx231xx/cx231xx-cards.c9
-rw-r--r--drivers/media/video/cx231xx/cx231xx.h1
3 files changed, 16 insertions, 6 deletions
diff --git a/drivers/media/video/cx231xx/cx231xx-avcore.c b/drivers/media/video/cx231xx/cx231xx-avcore.c
index 917812d6ab21..76677cb17908 100644
--- a/drivers/media/video/cx231xx/cx231xx-avcore.c
+++ b/drivers/media/video/cx231xx/cx231xx-avcore.c
@@ -656,12 +656,12 @@ int cx231xx_set_decoder_video_input(struct cx231xx *dev,
656 value |= (1 << 7); 656 value |= (1 << 7);
657 status = vid_blk_write_word(dev, OUT_CTRL1, value); 657 status = vid_blk_write_word(dev, OUT_CTRL1, value);
658 658
659 /* Set vip 1.1 output mode */ 659 /* Set output mode */
660 status = cx231xx_read_modify_write_i2c_dword(dev, 660 status = cx231xx_read_modify_write_i2c_dword(dev,
661 VID_BLK_I2C_ADDRESS, 661 VID_BLK_I2C_ADDRESS,
662 OUT_CTRL1, 662 OUT_CTRL1,
663 FLD_OUT_MODE, 663 FLD_OUT_MODE,
664 OUT_MODE_VIP11); 664 dev->board.output_mode);
665 665
666 /* Tell DIF object to go to baseband mode */ 666 /* Tell DIF object to go to baseband mode */
667 status = cx231xx_dif_set_standard(dev, DIF_USE_BASEBAND); 667 status = cx231xx_dif_set_standard(dev, DIF_USE_BASEBAND);
@@ -779,11 +779,11 @@ int cx231xx_set_decoder_video_input(struct cx231xx *dev,
779 value |= (1 << 7); 779 value |= (1 << 7);
780 status = vid_blk_write_word(dev, OUT_CTRL1, value); 780 status = vid_blk_write_word(dev, OUT_CTRL1, value);
781 781
782 /* Set vip 1.1 output mode */ 782 /* Set output mode */
783 status = cx231xx_read_modify_write_i2c_dword(dev, 783 status = cx231xx_read_modify_write_i2c_dword(dev,
784 VID_BLK_I2C_ADDRESS, 784 VID_BLK_I2C_ADDRESS,
785 OUT_CTRL1, FLD_OUT_MODE, 785 OUT_CTRL1, FLD_OUT_MODE,
786 OUT_MODE_VIP11); 786 dev->board.output_mode);
787 787
788 /* Tell DIF object to go to baseband mode */ 788 /* Tell DIF object to go to baseband mode */
789 status = cx231xx_dif_set_standard(dev, 789 status = cx231xx_dif_set_standard(dev,
@@ -870,11 +870,11 @@ int cx231xx_set_decoder_video_input(struct cx231xx *dev,
870 (FLD_OEF_AGC_IF); 870 (FLD_OEF_AGC_IF);
871 status = vid_blk_write_word(dev, PIN_CTRL, value); 871 status = vid_blk_write_word(dev, PIN_CTRL, value);
872 872
873 /* Set vip 1.1 output mode */ 873 /* Set output mode */
874 status = cx231xx_read_modify_write_i2c_dword(dev, 874 status = cx231xx_read_modify_write_i2c_dword(dev,
875 VID_BLK_I2C_ADDRESS, 875 VID_BLK_I2C_ADDRESS,
876 OUT_CTRL1, FLD_OUT_MODE, 876 OUT_CTRL1, FLD_OUT_MODE,
877 OUT_MODE_VIP11); 877 dev->board.output_mode);
878 878
879 /* Disable auto config of registers */ 879 /* Disable auto config of registers */
880 status = cx231xx_read_modify_write_i2c_dword(dev, 880 status = cx231xx_read_modify_write_i2c_dword(dev,
diff --git a/drivers/media/video/cx231xx/cx231xx-cards.c b/drivers/media/video/cx231xx/cx231xx-cards.c
index 4d37cb7b0750..f05c5ad490b5 100644
--- a/drivers/media/video/cx231xx/cx231xx-cards.c
+++ b/drivers/media/video/cx231xx/cx231xx-cards.c
@@ -99,6 +99,7 @@ struct cx231xx_board cx231xx_boards[] = {
99 .tuner_scl_gpio = 0x1a, 99 .tuner_scl_gpio = 0x1a,
100 .tuner_sda_gpio = 0x1b, 100 .tuner_sda_gpio = 0x1b,
101 .decoder = CX231XX_AVDECODER, 101 .decoder = CX231XX_AVDECODER,
102 .output_mode = OUT_MODE_VIP11,
102 .demod_xfer_mode = 0, 103 .demod_xfer_mode = 0,
103 .ctl_pin_status_mask = 0xFFFFFFC4, 104 .ctl_pin_status_mask = 0xFFFFFFC4,
104 .agc_analog_digital_select_gpio = 0x0c, 105 .agc_analog_digital_select_gpio = 0x0c,
@@ -138,6 +139,7 @@ struct cx231xx_board cx231xx_boards[] = {
138 .tuner_scl_gpio = 0x1a, 139 .tuner_scl_gpio = 0x1a,
139 .tuner_sda_gpio = 0x1b, 140 .tuner_sda_gpio = 0x1b,
140 .decoder = CX231XX_AVDECODER, 141 .decoder = CX231XX_AVDECODER,
142 .output_mode = OUT_MODE_VIP11,
141 .demod_xfer_mode = 0, 143 .demod_xfer_mode = 0,
142 .ctl_pin_status_mask = 0xFFFFFFC4, 144 .ctl_pin_status_mask = 0xFFFFFFC4,
143 .agc_analog_digital_select_gpio = 0x0c, 145 .agc_analog_digital_select_gpio = 0x0c,
@@ -177,6 +179,7 @@ struct cx231xx_board cx231xx_boards[] = {
177 .tuner_scl_gpio = 0x1a, 179 .tuner_scl_gpio = 0x1a,
178 .tuner_sda_gpio = 0x1b, 180 .tuner_sda_gpio = 0x1b,
179 .decoder = CX231XX_AVDECODER, 181 .decoder = CX231XX_AVDECODER,
182 .output_mode = OUT_MODE_VIP11,
180 .demod_xfer_mode = 0, 183 .demod_xfer_mode = 0,
181 .ctl_pin_status_mask = 0xFFFFFFC4, 184 .ctl_pin_status_mask = 0xFFFFFFC4,
182 .agc_analog_digital_select_gpio = 0x1c, 185 .agc_analog_digital_select_gpio = 0x1c,
@@ -217,6 +220,7 @@ struct cx231xx_board cx231xx_boards[] = {
217 .tuner_scl_gpio = 0x1a, 220 .tuner_scl_gpio = 0x1a,
218 .tuner_sda_gpio = 0x1b, 221 .tuner_sda_gpio = 0x1b,
219 .decoder = CX231XX_AVDECODER, 222 .decoder = CX231XX_AVDECODER,
223 .output_mode = OUT_MODE_VIP11,
220 .demod_xfer_mode = 0, 224 .demod_xfer_mode = 0,
221 .ctl_pin_status_mask = 0xFFFFFFC4, 225 .ctl_pin_status_mask = 0xFFFFFFC4,
222 .agc_analog_digital_select_gpio = 0x1c, 226 .agc_analog_digital_select_gpio = 0x1c,
@@ -256,6 +260,7 @@ struct cx231xx_board cx231xx_boards[] = {
256 .tuner_scl_gpio = 0x1a, 260 .tuner_scl_gpio = 0x1a,
257 .tuner_sda_gpio = 0x1b, 261 .tuner_sda_gpio = 0x1b,
258 .decoder = CX231XX_AVDECODER, 262 .decoder = CX231XX_AVDECODER,
263 .output_mode = OUT_MODE_VIP11,
259 .demod_xfer_mode = 0, 264 .demod_xfer_mode = 0,
260 .ctl_pin_status_mask = 0xFFFFFFC4, 265 .ctl_pin_status_mask = 0xFFFFFFC4,
261 .agc_analog_digital_select_gpio = 0x1c, 266 .agc_analog_digital_select_gpio = 0x1c,
@@ -295,6 +300,7 @@ struct cx231xx_board cx231xx_boards[] = {
295 .tuner_scl_gpio = 0x1a, 300 .tuner_scl_gpio = 0x1a,
296 .tuner_sda_gpio = 0x1b, 301 .tuner_sda_gpio = 0x1b,
297 .decoder = CX231XX_AVDECODER, 302 .decoder = CX231XX_AVDECODER,
303 .output_mode = OUT_MODE_VIP11,
298 .demod_xfer_mode = 0, 304 .demod_xfer_mode = 0,
299 .ctl_pin_status_mask = 0xFFFFFFC4, 305 .ctl_pin_status_mask = 0xFFFFFFC4,
300 .agc_analog_digital_select_gpio = 0x0c, 306 .agc_analog_digital_select_gpio = 0x0c,
@@ -322,6 +328,7 @@ struct cx231xx_board cx231xx_boards[] = {
322 .tuner_scl_gpio = 0x1a, 328 .tuner_scl_gpio = 0x1a,
323 .tuner_sda_gpio = 0x1b, 329 .tuner_sda_gpio = 0x1b,
324 .decoder = CX231XX_AVDECODER, 330 .decoder = CX231XX_AVDECODER,
331 .output_mode = OUT_MODE_VIP11,
325 .demod_xfer_mode = 0, 332 .demod_xfer_mode = 0,
326 .ctl_pin_status_mask = 0xFFFFFFC4, 333 .ctl_pin_status_mask = 0xFFFFFFC4,
327 .agc_analog_digital_select_gpio = 0x0c, 334 .agc_analog_digital_select_gpio = 0x0c,
@@ -349,6 +356,7 @@ struct cx231xx_board cx231xx_boards[] = {
349 .tuner_scl_gpio = 0x1a, 356 .tuner_scl_gpio = 0x1a,
350 .tuner_sda_gpio = 0x1b, 357 .tuner_sda_gpio = 0x1b,
351 .decoder = CX231XX_AVDECODER, 358 .decoder = CX231XX_AVDECODER,
359 .output_mode = OUT_MODE_VIP11,
352 .demod_xfer_mode = 0, 360 .demod_xfer_mode = 0,
353 .ctl_pin_status_mask = 0xFFFFFFC4, 361 .ctl_pin_status_mask = 0xFFFFFFC4,
354 .agc_analog_digital_select_gpio = 0x0c, 362 .agc_analog_digital_select_gpio = 0x0c,
@@ -382,6 +390,7 @@ struct cx231xx_board cx231xx_boards[] = {
382 .name = "Hauppauge USB Live 2", 390 .name = "Hauppauge USB Live 2",
383 .tuner_type = TUNER_ABSENT, 391 .tuner_type = TUNER_ABSENT,
384 .decoder = CX231XX_AVDECODER, 392 .decoder = CX231XX_AVDECODER,
393 .output_mode = OUT_MODE_VIP11,
385 .demod_xfer_mode = 0, 394 .demod_xfer_mode = 0,
386 .ctl_pin_status_mask = 0xFFFFFFC4, 395 .ctl_pin_status_mask = 0xFFFFFFC4,
387 .agc_analog_digital_select_gpio = 0x0c, 396 .agc_analog_digital_select_gpio = 0x0c,
diff --git a/drivers/media/video/cx231xx/cx231xx.h b/drivers/media/video/cx231xx/cx231xx.h
index 8d4fcf70387f..e65e0fd88e4b 100644
--- a/drivers/media/video/cx231xx/cx231xx.h
+++ b/drivers/media/video/cx231xx/cx231xx.h
@@ -353,6 +353,7 @@ struct cx231xx_board {
353 unsigned char xclk, i2c_speed; 353 unsigned char xclk, i2c_speed;
354 354
355 enum cx231xx_decoder decoder; 355 enum cx231xx_decoder decoder;
356 int output_mode;
356 357
357 struct cx231xx_input input[MAX_CX231XX_INPUT]; 358 struct cx231xx_input input[MAX_CX231XX_INPUT];
358 struct cx231xx_input radio; 359 struct cx231xx_input radio;