diff options
| author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-08 19:59:34 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-08 19:59:34 -0500 |
| commit | 7a2fe8c49f0f346601a18c69ba0f75227c0c5993 (patch) | |
| tree | c42b1a4734fd23b5c71f43180c3f0bccaeb9023c | |
| parent | 2ec5e3a867d63d04932e11c6097f63760d9be3fe (diff) | |
| parent | 155ec9e63da962bf26ffc65a4088c6cc935f28db (diff) | |
Merge master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb
* master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb:
Merge branch 'work-fixes'
V4L/DVB (3413): Typos grab bag of the month
V4L/DVB (3403): Workaround to fix initialization for Nexus CA
Merge branch 'work-fixes'
V4L/DVB (3395): Fixed Pinnacle 300i DVB-T support
V4L/DVB (3399): ELSA EX-VISION 500TV: fix incorrect PCI subsystem ID
V4L/DVB (3382): Fix stv0297 for qam128 on tt c1500 (saa7146)
V4L/DVB (3300a): Removing personal email from DVB maintainers
V4L/DVB (3385): Dvb: fix __init/__exit section references in av7110 driver
V4L/DVB (3378): Restore power on defaults of tda9887 after tda8290 probe
V4L/DVB (3354): Fix maximum for the saturation and contrast controls.
V4L/DVB (3352): Cxusb: fix lgdt3303 naming
V4L/DVB (3348): Fixed saa7134 ALSA initialization with multiple cards
V4L/DVB (3347): Pinnacle PCTV 40i: add filtered Composite2 input
V4L/DVB (3341): Upstream sync - make 2 structs static
V4L/DVB (3340): Make a struct static
V4L/DVB (3337): Drivers/media/dvb/frontends/mt312.c: cleanups
V4L/DVB (3336): Bt8xx documentation authors fix
29 files changed, 117 insertions, 126 deletions
diff --git a/Documentation/dvb/bt8xx.txt b/Documentation/dvb/bt8xx.txt index df6c05453cb5..52ed462061df 100644 --- a/Documentation/dvb/bt8xx.txt +++ b/Documentation/dvb/bt8xx.txt | |||
| @@ -111,4 +111,8 @@ source: linux/Documentation/video4linux/CARDLIST.bttv | |||
| 111 | If you have problems with this please do ask on the mailing list. | 111 | If you have problems with this please do ask on the mailing list. |
| 112 | 112 | ||
| 113 | -- | 113 | -- |
| 114 | Authors: Richard Walker, Jamie Honan, Michael Hunold, Manu Abraham | 114 | Authors: Richard Walker, |
| 115 | Jamie Honan, | ||
| 116 | Michael Hunold, | ||
| 117 | Manu Abraham, | ||
| 118 | Michael Krufky | ||
diff --git a/Documentation/video4linux/CARDLIST.saa7134 b/Documentation/video4linux/CARDLIST.saa7134 index 8a352597830f..da4fb890165f 100644 --- a/Documentation/video4linux/CARDLIST.saa7134 +++ b/Documentation/video4linux/CARDLIST.saa7134 | |||
| @@ -13,7 +13,7 @@ | |||
| 13 | 12 -> Medion 7134 [16be:0003] | 13 | 12 -> Medion 7134 [16be:0003] |
| 14 | 13 -> Typhoon TV+Radio 90031 | 14 | 13 -> Typhoon TV+Radio 90031 |
| 15 | 14 -> ELSA EX-VISION 300TV [1048:226b] | 15 | 14 -> ELSA EX-VISION 300TV [1048:226b] |
| 16 | 15 -> ELSA EX-VISION 500TV [1048:226b] | 16 | 15 -> ELSA EX-VISION 500TV [1048:226a] |
| 17 | 16 -> ASUS TV-FM 7134 [1043:4842,1043:4830,1043:4840] | 17 | 16 -> ASUS TV-FM 7134 [1043:4842,1043:4830,1043:4840] |
| 18 | 17 -> AOPEN VA1000 POWER [1131:7133] | 18 | 17 -> AOPEN VA1000 POWER [1131:7133] |
| 19 | 18 -> BMK MPEX No Tuner | 19 | 18 -> BMK MPEX No Tuner |
| @@ -75,7 +75,7 @@ | |||
| 75 | 74 -> LifeView FlyTV Platinum Mini2 [14c0:1212] | 75 | 74 -> LifeView FlyTV Platinum Mini2 [14c0:1212] |
| 76 | 75 -> AVerMedia AVerTVHD MCE A180 [1461:1044] | 76 | 75 -> AVerMedia AVerTVHD MCE A180 [1461:1044] |
| 77 | 76 -> SKNet MonsterTV Mobile [1131:4ee9] | 77 | 76 -> SKNet MonsterTV Mobile [1131:4ee9] |
| 78 | 77 -> Pinnacle PCTV 110i (saa7133) [11bd:002e] | 78 | 77 -> Pinnacle PCTV 40i/50i/110i (saa7133) [11bd:002e] |
| 79 | 78 -> ASUSTeK P7131 Dual [1043:4862] | 79 | 78 -> ASUSTeK P7131 Dual [1043:4862] |
| 80 | 79 -> Sedna/MuchTV PC TV Cardbus TV/Radio (ITO25 Rev:2B) | 80 | 79 -> Sedna/MuchTV PC TV Cardbus TV/Radio (ITO25 Rev:2B) |
| 81 | 80 -> ASUS Digimatrix TV [1043:0210] | 81 | 80 -> ASUS Digimatrix TV [1043:0210] |
diff --git a/MAINTAINERS b/MAINTAINERS index 9c592aa0280c..c39fb20f8589 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
| @@ -838,7 +838,6 @@ S: Maintained | |||
| 838 | 838 | ||
| 839 | DVB SUBSYSTEM AND DRIVERS | 839 | DVB SUBSYSTEM AND DRIVERS |
| 840 | P: LinuxTV.org Project | 840 | P: LinuxTV.org Project |
| 841 | M: mchehab@infradead.org | ||
| 842 | M: v4l-dvb-maintainer@linuxtv.org | 841 | M: v4l-dvb-maintainer@linuxtv.org |
| 843 | L: linux-dvb@linuxtv.org (subscription required) | 842 | L: linux-dvb@linuxtv.org (subscription required) |
| 844 | W: http://linuxtv.org/ | 843 | W: http://linuxtv.org/ |
diff --git a/drivers/media/dvb/b2c2/flexcop-fe-tuner.c b/drivers/media/dvb/b2c2/flexcop-fe-tuner.c index 390cc3a99ce6..9c7f122826e0 100644 --- a/drivers/media/dvb/b2c2/flexcop-fe-tuner.c +++ b/drivers/media/dvb/b2c2/flexcop-fe-tuner.c | |||
| @@ -526,7 +526,7 @@ int flexcop_frontend_init(struct flexcop_device *fc) | |||
| 526 | info("found the stv0297 at i2c address: 0x%02x",alps_tdee4_stv0297_config.demod_address); | 526 | info("found the stv0297 at i2c address: 0x%02x",alps_tdee4_stv0297_config.demod_address); |
| 527 | } else | 527 | } else |
| 528 | /* try the sky v2.3 (vp310/Samsung tbdu18132(tsa5059)) */ | 528 | /* try the sky v2.3 (vp310/Samsung tbdu18132(tsa5059)) */ |
| 529 | if ((fc->fe = vp310_attach(&skystar23_samsung_tbdu18132_config, &fc->i2c_adap)) != NULL) { | 529 | if ((fc->fe = vp310_mt312_attach(&skystar23_samsung_tbdu18132_config, &fc->i2c_adap)) != NULL) { |
| 530 | ops = fc->fe->ops; | 530 | ops = fc->fe->ops; |
| 531 | 531 | ||
| 532 | ops->diseqc_send_master_cmd = flexcop_diseqc_send_master_cmd; | 532 | ops->diseqc_send_master_cmd = flexcop_diseqc_send_master_cmd; |
diff --git a/drivers/media/dvb/bt8xx/bt878.c b/drivers/media/dvb/bt8xx/bt878.c index 34c3189a1a33..356f447ee2ab 100644 --- a/drivers/media/dvb/bt8xx/bt878.c +++ b/drivers/media/dvb/bt8xx/bt878.c | |||
| @@ -382,7 +382,7 @@ bt878_device_control(struct bt878 *bt, unsigned int cmd, union dst_gpio_packet * | |||
| 382 | EXPORT_SYMBOL(bt878_device_control); | 382 | EXPORT_SYMBOL(bt878_device_control); |
| 383 | 383 | ||
| 384 | 384 | ||
| 385 | struct cards card_list[] __devinitdata = { | 385 | static struct cards card_list[] __devinitdata = { |
| 386 | 386 | ||
| 387 | { 0x01010071, BTTV_BOARD_NEBULA_DIGITV, "Nebula Electronics DigiTV" }, | 387 | { 0x01010071, BTTV_BOARD_NEBULA_DIGITV, "Nebula Electronics DigiTV" }, |
| 388 | { 0x07611461, BTTV_BOARD_AVDVBT_761, "AverMedia AverTV DVB-T 761" }, | 388 | { 0x07611461, BTTV_BOARD_AVDVBT_761, "AverMedia AverTV DVB-T 761" }, |
diff --git a/drivers/media/dvb/bt8xx/dst.c b/drivers/media/dvb/bt8xx/dst.c index 3a2ff1cc24b7..0310e3dd07e6 100644 --- a/drivers/media/dvb/bt8xx/dst.c +++ b/drivers/media/dvb/bt8xx/dst.c | |||
| @@ -602,7 +602,7 @@ static int dst_type_print(u8 type) | |||
| 602 | 602 | ||
| 603 | */ | 603 | */ |
| 604 | 604 | ||
| 605 | struct dst_types dst_tlist[] = { | 605 | static struct dst_types dst_tlist[] = { |
| 606 | { | 606 | { |
| 607 | .device_id = "200103A", | 607 | .device_id = "200103A", |
| 608 | .offset = 0, | 608 | .offset = 0, |
diff --git a/drivers/media/dvb/dvb-core/demux.h b/drivers/media/dvb/dvb-core/demux.h index 9f025825b2d2..0c1d87c5227a 100644 --- a/drivers/media/dvb/dvb-core/demux.h +++ b/drivers/media/dvb/dvb-core/demux.h | |||
| @@ -216,7 +216,7 @@ struct dmx_frontend { | |||
| 216 | /*--------------------------------------------------------------------------*/ | 216 | /*--------------------------------------------------------------------------*/ |
| 217 | 217 | ||
| 218 | /* | 218 | /* |
| 219 | * Flags OR'ed in the capabilites field of struct dmx_demux. | 219 | * Flags OR'ed in the capabilities field of struct dmx_demux. |
| 220 | */ | 220 | */ |
| 221 | 221 | ||
| 222 | #define DMX_TS_FILTERING 1 | 222 | #define DMX_TS_FILTERING 1 |
diff --git a/drivers/media/dvb/dvb-usb/cxusb.c b/drivers/media/dvb/dvb-usb/cxusb.c index f327fac1688e..162f9795cd89 100644 --- a/drivers/media/dvb/dvb-usb/cxusb.c +++ b/drivers/media/dvb/dvb-usb/cxusb.c | |||
| @@ -282,7 +282,7 @@ static struct cx22702_config cxusb_cx22702_config = { | |||
| 282 | .pll_set = dvb_usb_pll_set_i2c, | 282 | .pll_set = dvb_usb_pll_set_i2c, |
| 283 | }; | 283 | }; |
| 284 | 284 | ||
| 285 | static struct lgdt330x_config cxusb_lgdt330x_config = { | 285 | static struct lgdt330x_config cxusb_lgdt3303_config = { |
| 286 | .demod_address = 0x0e, | 286 | .demod_address = 0x0e, |
| 287 | .demod_chip = LGDT3303, | 287 | .demod_chip = LGDT3303, |
| 288 | .pll_set = dvb_usb_pll_set_i2c, | 288 | .pll_set = dvb_usb_pll_set_i2c, |
| @@ -357,14 +357,14 @@ static int cxusb_cx22702_frontend_attach(struct dvb_usb_device *d) | |||
| 357 | return -EIO; | 357 | return -EIO; |
| 358 | } | 358 | } |
| 359 | 359 | ||
| 360 | static int cxusb_lgdt330x_frontend_attach(struct dvb_usb_device *d) | 360 | static int cxusb_lgdt3303_frontend_attach(struct dvb_usb_device *d) |
| 361 | { | 361 | { |
| 362 | if (usb_set_interface(d->udev,0,7) < 0) | 362 | if (usb_set_interface(d->udev,0,7) < 0) |
| 363 | err("set interface failed"); | 363 | err("set interface failed"); |
| 364 | 364 | ||
| 365 | cxusb_ctrl_msg(d,CMD_DIGITAL, NULL, 0, NULL, 0); | 365 | cxusb_ctrl_msg(d,CMD_DIGITAL, NULL, 0, NULL, 0); |
| 366 | 366 | ||
| 367 | if ((d->fe = lgdt330x_attach(&cxusb_lgdt330x_config, &d->i2c_adap)) != NULL) | 367 | if ((d->fe = lgdt330x_attach(&cxusb_lgdt3303_config, &d->i2c_adap)) != NULL) |
| 368 | return 0; | 368 | return 0; |
| 369 | 369 | ||
| 370 | return -EIO; | 370 | return -EIO; |
| @@ -506,7 +506,7 @@ static struct dvb_usb_properties cxusb_bluebird_lgh064f_properties = { | |||
| 506 | 506 | ||
| 507 | .streaming_ctrl = cxusb_streaming_ctrl, | 507 | .streaming_ctrl = cxusb_streaming_ctrl, |
| 508 | .power_ctrl = cxusb_power_ctrl, | 508 | .power_ctrl = cxusb_power_ctrl, |
| 509 | .frontend_attach = cxusb_lgdt330x_frontend_attach, | 509 | .frontend_attach = cxusb_lgdt3303_frontend_attach, |
| 510 | .tuner_attach = cxusb_lgh064f_tuner_attach, | 510 | .tuner_attach = cxusb_lgh064f_tuner_attach, |
| 511 | 511 | ||
| 512 | .i2c_algo = &cxusb_i2c_algo, | 512 | .i2c_algo = &cxusb_i2c_algo, |
diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-init.c b/drivers/media/dvb/dvb-usb/dvb-usb-init.c index 716f8bf528cd..ce34a55e5c24 100644 --- a/drivers/media/dvb/dvb-usb/dvb-usb-init.c +++ b/drivers/media/dvb/dvb-usb/dvb-usb-init.c | |||
| @@ -47,7 +47,7 @@ static int dvb_usb_init(struct dvb_usb_device *d) | |||
| 47 | 47 | ||
| 48 | d->state = DVB_USB_STATE_INIT; | 48 | d->state = DVB_USB_STATE_INIT; |
| 49 | 49 | ||
| 50 | /* check the capabilites and set appropriate variables */ | 50 | /* check the capabilities and set appropriate variables */ |
| 51 | 51 | ||
| 52 | /* speed - when running at FULL speed we need a HW PID filter */ | 52 | /* speed - when running at FULL speed we need a HW PID filter */ |
| 53 | if (d->udev->speed == USB_SPEED_FULL && !(d->props.caps & DVB_USB_HAS_PID_FILTER)) { | 53 | if (d->udev->speed == USB_SPEED_FULL && !(d->props.caps & DVB_USB_HAS_PID_FILTER)) { |
diff --git a/drivers/media/dvb/dvb-usb/dvb-usb.h b/drivers/media/dvb/dvb-usb/dvb-usb.h index 5e5d21ad93c9..d4909e5c67e0 100644 --- a/drivers/media/dvb/dvb-usb/dvb-usb.h +++ b/drivers/media/dvb/dvb-usb/dvb-usb.h | |||
| @@ -87,7 +87,7 @@ struct dvb_usb_device; | |||
| 87 | 87 | ||
| 88 | /** | 88 | /** |
| 89 | * struct dvb_usb_properties - properties of a dvb-usb-device | 89 | * struct dvb_usb_properties - properties of a dvb-usb-device |
| 90 | * @caps: capabilites of the DVB USB device. | 90 | * @caps: capabilities of the DVB USB device. |
| 91 | * @pid_filter_count: number of PID filter position in the optional hardware | 91 | * @pid_filter_count: number of PID filter position in the optional hardware |
| 92 | * PID-filter. | 92 | * PID-filter. |
| 93 | * | 93 | * |
diff --git a/drivers/media/dvb/frontends/Kconfig b/drivers/media/dvb/frontends/Kconfig index 76b6a2aef32f..c676b1e23ab0 100644 --- a/drivers/media/dvb/frontends/Kconfig +++ b/drivers/media/dvb/frontends/Kconfig | |||
| @@ -29,7 +29,7 @@ config DVB_TDA8083 | |||
| 29 | A DVB-S tuner module. Say Y when you want to support this frontend. | 29 | A DVB-S tuner module. Say Y when you want to support this frontend. |
| 30 | 30 | ||
| 31 | config DVB_MT312 | 31 | config DVB_MT312 |
| 32 | tristate "Zarlink MT312 based" | 32 | tristate "Zarlink VP310/MT312 based" |
| 33 | depends on DVB_CORE | 33 | depends on DVB_CORE |
| 34 | help | 34 | help |
| 35 | A DVB-S tuner module. Say Y when you want to support this frontend. | 35 | A DVB-S tuner module. Say Y when you want to support this frontend. |
diff --git a/drivers/media/dvb/frontends/mt312.c b/drivers/media/dvb/frontends/mt312.c index ec4e641acc64..d3aea83cf218 100644 --- a/drivers/media/dvb/frontends/mt312.c +++ b/drivers/media/dvb/frontends/mt312.c | |||
| @@ -612,76 +612,6 @@ static void mt312_release(struct dvb_frontend* fe) | |||
| 612 | kfree(state); | 612 | kfree(state); |
| 613 | } | 613 | } |
| 614 | 614 | ||
| 615 | static struct dvb_frontend_ops vp310_mt312_ops; | ||
| 616 | |||
| 617 | struct dvb_frontend* vp310_attach(const struct mt312_config* config, | ||
| 618 | struct i2c_adapter* i2c) | ||
| 619 | { | ||
| 620 | struct mt312_state* state = NULL; | ||
| 621 | |||
| 622 | /* allocate memory for the internal state */ | ||
| 623 | state = kmalloc(sizeof(struct mt312_state), GFP_KERNEL); | ||
| 624 | if (state == NULL) | ||
| 625 | goto error; | ||
| 626 | |||
| 627 | /* setup the state */ | ||
| 628 | state->config = config; | ||
| 629 | state->i2c = i2c; | ||
| 630 | memcpy(&state->ops, &vp310_mt312_ops, sizeof(struct dvb_frontend_ops)); | ||
| 631 | strcpy(state->ops.info.name, "Zarlink VP310 DVB-S"); | ||
| 632 | |||
| 633 | /* check if the demod is there */ | ||
| 634 | if (mt312_readreg(state, ID, &state->id) < 0) | ||
| 635 | goto error; | ||
| 636 | if (state->id != ID_VP310) { | ||
| 637 | goto error; | ||
| 638 | } | ||
| 639 | |||
| 640 | /* create dvb_frontend */ | ||
| 641 | state->frequency = 90; | ||
| 642 | state->frontend.ops = &state->ops; | ||
| 643 | state->frontend.demodulator_priv = state; | ||
| 644 | return &state->frontend; | ||
| 645 | |||
| 646 | error: | ||
| 647 | kfree(state); | ||
| 648 | return NULL; | ||
| 649 | } | ||
| 650 | |||
| 651 | struct dvb_frontend* mt312_attach(const struct mt312_config* config, | ||
| 652 | struct i2c_adapter* i2c) | ||
| 653 | { | ||
| 654 | struct mt312_state* state = NULL; | ||
| 655 | |||
| 656 | /* allocate memory for the internal state */ | ||
| 657 | state = kmalloc(sizeof(struct mt312_state), GFP_KERNEL); | ||
| 658 | if (state == NULL) | ||
| 659 | goto error; | ||
| 660 | |||
| 661 | /* setup the state */ | ||
| 662 | state->config = config; | ||
| 663 | state->i2c = i2c; | ||
| 664 | memcpy(&state->ops, &vp310_mt312_ops, sizeof(struct dvb_frontend_ops)); | ||
| 665 | strcpy(state->ops.info.name, "Zarlink MT312 DVB-S"); | ||
| 666 | |||
| 667 | /* check if the demod is there */ | ||
| 668 | if (mt312_readreg(state, ID, &state->id) < 0) | ||
| 669 | goto error; | ||
| 670 | if (state->id != ID_MT312) { | ||
| 671 | goto error; | ||
| 672 | } | ||
| 673 | |||
| 674 | /* create dvb_frontend */ | ||
| 675 | state->frequency = 60; | ||
| 676 | state->frontend.ops = &state->ops; | ||
| 677 | state->frontend.demodulator_priv = state; | ||
| 678 | return &state->frontend; | ||
| 679 | |||
| 680 | error: | ||
| 681 | kfree(state); | ||
| 682 | return NULL; | ||
| 683 | } | ||
| 684 | |||
| 685 | static struct dvb_frontend_ops vp310_mt312_ops = { | 615 | static struct dvb_frontend_ops vp310_mt312_ops = { |
| 686 | 616 | ||
| 687 | .info = { | 617 | .info = { |
| @@ -720,6 +650,49 @@ static struct dvb_frontend_ops vp310_mt312_ops = { | |||
| 720 | .set_voltage = mt312_set_voltage, | 650 | .set_voltage = mt312_set_voltage, |
| 721 | }; | 651 | }; |
| 722 | 652 | ||
| 653 | struct dvb_frontend* vp310_mt312_attach(const struct mt312_config* config, | ||
| 654 | struct i2c_adapter* i2c) | ||
| 655 | { | ||
| 656 | struct mt312_state* state = NULL; | ||
| 657 | |||
| 658 | /* allocate memory for the internal state */ | ||
| 659 | state = kmalloc(sizeof(struct mt312_state), GFP_KERNEL); | ||
| 660 | if (state == NULL) | ||
| 661 | goto error; | ||
| 662 | |||
| 663 | /* setup the state */ | ||
| 664 | state->config = config; | ||
| 665 | state->i2c = i2c; | ||
| 666 | memcpy(&state->ops, &vp310_mt312_ops, sizeof(struct dvb_frontend_ops)); | ||
| 667 | |||
| 668 | /* check if the demod is there */ | ||
| 669 | if (mt312_readreg(state, ID, &state->id) < 0) | ||
| 670 | goto error; | ||
| 671 | |||
| 672 | switch (state->id) { | ||
| 673 | case ID_VP310: | ||
| 674 | strcpy(state->ops.info.name, "Zarlink VP310 DVB-S"); | ||
| 675 | state->frequency = 90; | ||
| 676 | break; | ||
| 677 | case ID_MT312: | ||
| 678 | strcpy(state->ops.info.name, "Zarlink MT312 DVB-S"); | ||
| 679 | state->frequency = 60; | ||
| 680 | break; | ||
| 681 | default: | ||
| 682 | printk (KERN_WARNING "Only Zarlink VP310/MT312 are supported chips.\n"); | ||
| 683 | goto error; | ||
| 684 | } | ||
| 685 | |||
| 686 | /* create dvb_frontend */ | ||
| 687 | state->frontend.ops = &state->ops; | ||
| 688 | state->frontend.demodulator_priv = state; | ||
| 689 | return &state->frontend; | ||
| 690 | |||
| 691 | error: | ||
| 692 | kfree(state); | ||
| 693 | return NULL; | ||
| 694 | } | ||
| 695 | |||
| 723 | module_param(debug, int, 0644); | 696 | module_param(debug, int, 0644); |
| 724 | MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off)."); | 697 | MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off)."); |
| 725 | 698 | ||
| @@ -727,5 +700,4 @@ MODULE_DESCRIPTION("Zarlink VP310/MT312 DVB-S Demodulator driver"); | |||
| 727 | MODULE_AUTHOR("Andreas Oberritter <obi@linuxtv.org>"); | 700 | MODULE_AUTHOR("Andreas Oberritter <obi@linuxtv.org>"); |
| 728 | MODULE_LICENSE("GPL"); | 701 | MODULE_LICENSE("GPL"); |
| 729 | 702 | ||
| 730 | EXPORT_SYMBOL(mt312_attach); | 703 | EXPORT_SYMBOL(vp310_mt312_attach); |
| 731 | EXPORT_SYMBOL(vp310_attach); | ||
diff --git a/drivers/media/dvb/frontends/mt312.h b/drivers/media/dvb/frontends/mt312.h index b3a53a73a117..074d844f0139 100644 --- a/drivers/media/dvb/frontends/mt312.h +++ b/drivers/media/dvb/frontends/mt312.h | |||
| @@ -38,10 +38,8 @@ struct mt312_config | |||
| 38 | int (*pll_set)(struct dvb_frontend* fe, struct dvb_frontend_parameters* params); | 38 | int (*pll_set)(struct dvb_frontend* fe, struct dvb_frontend_parameters* params); |
| 39 | }; | 39 | }; |
| 40 | 40 | ||
| 41 | extern struct dvb_frontend* mt312_attach(const struct mt312_config* config, | 41 | struct dvb_frontend* vp310_mt312_attach(const struct mt312_config* config, |
| 42 | struct i2c_adapter* i2c); | 42 | struct i2c_adapter* i2c); |
| 43 | 43 | ||
| 44 | extern struct dvb_frontend* vp310_attach(const struct mt312_config* config, | ||
| 45 | struct i2c_adapter* i2c); | ||
| 46 | 44 | ||
| 47 | #endif // MT312_H | 45 | #endif // MT312_H |
diff --git a/drivers/media/dvb/frontends/stv0297.c b/drivers/media/dvb/frontends/stv0297.c index 6122ba754bc5..eb15676d374f 100644 --- a/drivers/media/dvb/frontends/stv0297.c +++ b/drivers/media/dvb/frontends/stv0297.c | |||
| @@ -393,10 +393,6 @@ static int stv0297_set_frontend(struct dvb_frontend *fe, struct dvb_frontend_par | |||
| 393 | break; | 393 | break; |
| 394 | 394 | ||
| 395 | case QAM_128: | 395 | case QAM_128: |
| 396 | delay = 150; | ||
| 397 | sweeprate = 1000; | ||
| 398 | break; | ||
| 399 | |||
| 400 | case QAM_256: | 396 | case QAM_256: |
| 401 | delay = 200; | 397 | delay = 200; |
| 402 | sweeprate = 500; | 398 | sweeprate = 500; |
diff --git a/drivers/media/dvb/ttpci/av7110.c b/drivers/media/dvb/ttpci/av7110.c index d36369e9e88f..7c6ccb96b157 100644 --- a/drivers/media/dvb/ttpci/av7110.c +++ b/drivers/media/dvb/ttpci/av7110.c | |||
| @@ -1439,7 +1439,7 @@ static int check_firmware(struct av7110* av7110) | |||
| 1439 | len = ntohl(*(u32*) ptr); | 1439 | len = ntohl(*(u32*) ptr); |
| 1440 | ptr += 4; | 1440 | ptr += 4; |
| 1441 | if (len >= 512) { | 1441 | if (len >= 512) { |
| 1442 | printk("dvb-ttpci: dpram file is way to big.\n"); | 1442 | printk("dvb-ttpci: dpram file is way too big.\n"); |
| 1443 | return -EINVAL; | 1443 | return -EINVAL; |
| 1444 | } | 1444 | } |
| 1445 | if (crc != crc32_le(0, ptr, len)) { | 1445 | if (crc != crc32_le(0, ptr, len)) { |
| @@ -2477,7 +2477,8 @@ static int frontend_init(struct av7110 *av7110) | |||
| 2477 | * The same behaviour of missing VSYNC can be duplicated on budget | 2477 | * The same behaviour of missing VSYNC can be duplicated on budget |
| 2478 | * cards, by seting DD1_INIT trigger mode 7 in 3rd nibble. | 2478 | * cards, by seting DD1_INIT trigger mode 7 in 3rd nibble. |
| 2479 | */ | 2479 | */ |
| 2480 | static int av7110_attach(struct saa7146_dev* dev, struct saa7146_pci_extension_data *pci_ext) | 2480 | static int __devinit av7110_attach(struct saa7146_dev* dev, |
| 2481 | struct saa7146_pci_extension_data *pci_ext) | ||
| 2481 | { | 2482 | { |
| 2482 | const int length = TS_WIDTH * TS_HEIGHT; | 2483 | const int length = TS_WIDTH * TS_HEIGHT; |
| 2483 | struct pci_dev *pdev = dev->pci; | 2484 | struct pci_dev *pdev = dev->pci; |
| @@ -2827,7 +2828,7 @@ err_kfree_0: | |||
| 2827 | goto out; | 2828 | goto out; |
| 2828 | } | 2829 | } |
| 2829 | 2830 | ||
| 2830 | static int av7110_detach(struct saa7146_dev* saa) | 2831 | static int __devexit av7110_detach(struct saa7146_dev* saa) |
| 2831 | { | 2832 | { |
| 2832 | struct av7110 *av7110 = saa->ext_priv; | 2833 | struct av7110 *av7110 = saa->ext_priv; |
| 2833 | dprintk(4, "%p\n", av7110); | 2834 | dprintk(4, "%p\n", av7110); |
| @@ -2974,7 +2975,7 @@ static struct saa7146_extension av7110_extension = { | |||
| 2974 | .module = THIS_MODULE, | 2975 | .module = THIS_MODULE, |
| 2975 | .pci_tbl = &pci_tbl[0], | 2976 | .pci_tbl = &pci_tbl[0], |
| 2976 | .attach = av7110_attach, | 2977 | .attach = av7110_attach, |
| 2977 | .detach = av7110_detach, | 2978 | .detach = __devexit_p(av7110_detach), |
| 2978 | 2979 | ||
| 2979 | .irq_mask = MASK_19 | MASK_03 | MASK_10, | 2980 | .irq_mask = MASK_19 | MASK_03 | MASK_10, |
| 2980 | .irq_func = av7110_irq, | 2981 | .irq_func = av7110_irq, |
diff --git a/drivers/media/dvb/ttpci/av7110_hw.c b/drivers/media/dvb/ttpci/av7110_hw.c index b2e63e9fc053..0bb6e74ae7f0 100644 --- a/drivers/media/dvb/ttpci/av7110_hw.c +++ b/drivers/media/dvb/ttpci/av7110_hw.c | |||
| @@ -245,6 +245,9 @@ int av7110_bootarm(struct av7110 *av7110) | |||
| 245 | 245 | ||
| 246 | /* test DEBI */ | 246 | /* test DEBI */ |
| 247 | iwdebi(av7110, DEBISWAP, DPRAM_BASE, 0x76543210, 4); | 247 | iwdebi(av7110, DEBISWAP, DPRAM_BASE, 0x76543210, 4); |
| 248 | /* FIXME: Why does Nexus CA require 2x iwdebi for first init? */ | ||
| 249 | iwdebi(av7110, DEBISWAP, DPRAM_BASE, 0x76543210, 4); | ||
| 250 | |||
| 248 | if ((ret=irdebi(av7110, DEBINOSWAP, DPRAM_BASE, 0, 4)) != 0x10325476) { | 251 | if ((ret=irdebi(av7110, DEBINOSWAP, DPRAM_BASE, 0, 4)) != 0x10325476) { |
| 249 | printk(KERN_ERR "dvb-ttpci: debi test in av7110_bootarm() failed: " | 252 | printk(KERN_ERR "dvb-ttpci: debi test in av7110_bootarm() failed: " |
| 250 | "%08x != %08x (check your BIOS 'Plug&Play OS' settings)\n", | 253 | "%08x != %08x (check your BIOS 'Plug&Play OS' settings)\n", |
diff --git a/drivers/media/dvb/ttpci/av7110_ir.c b/drivers/media/dvb/ttpci/av7110_ir.c index 617e4f6c0ed7..d54bbcdde2cc 100644 --- a/drivers/media/dvb/ttpci/av7110_ir.c +++ b/drivers/media/dvb/ttpci/av7110_ir.c | |||
| @@ -208,7 +208,7 @@ static void ir_handler(struct av7110 *av7110, u32 ircom) | |||
| 208 | } | 208 | } |
| 209 | 209 | ||
| 210 | 210 | ||
| 211 | int __init av7110_ir_init(struct av7110 *av7110) | 211 | int __devinit av7110_ir_init(struct av7110 *av7110) |
| 212 | { | 212 | { |
| 213 | static struct proc_dir_entry *e; | 213 | static struct proc_dir_entry *e; |
| 214 | 214 | ||
| @@ -248,7 +248,7 @@ int __init av7110_ir_init(struct av7110 *av7110) | |||
| 248 | } | 248 | } |
| 249 | 249 | ||
| 250 | 250 | ||
| 251 | void __exit av7110_ir_exit(struct av7110 *av7110) | 251 | void __devexit av7110_ir_exit(struct av7110 *av7110) |
| 252 | { | 252 | { |
| 253 | int i; | 253 | int i; |
| 254 | 254 | ||
diff --git a/drivers/media/video/cpia.c b/drivers/media/video/cpia.c index 9f59541155d9..85d964b5b33c 100644 --- a/drivers/media/video/cpia.c +++ b/drivers/media/video/cpia.c | |||
| @@ -3369,7 +3369,7 @@ static int cpia_do_ioctl(struct inode *inode, struct file *file, | |||
| 3369 | //DBG("cpia_ioctl: %u\n", ioctlnr); | 3369 | //DBG("cpia_ioctl: %u\n", ioctlnr); |
| 3370 | 3370 | ||
| 3371 | switch (ioctlnr) { | 3371 | switch (ioctlnr) { |
| 3372 | /* query capabilites */ | 3372 | /* query capabilities */ |
| 3373 | case VIDIOCGCAP: | 3373 | case VIDIOCGCAP: |
| 3374 | { | 3374 | { |
| 3375 | struct video_capability *b = arg; | 3375 | struct video_capability *b = arg; |
diff --git a/drivers/media/video/cx25840/cx25840-core.c b/drivers/media/video/cx25840/cx25840-core.c index 08ffd1f325fc..5588b9a5c430 100644 --- a/drivers/media/video/cx25840/cx25840-core.c +++ b/drivers/media/video/cx25840/cx25840-core.c | |||
| @@ -567,7 +567,7 @@ static struct v4l2_queryctrl cx25840_qctrl[] = { | |||
| 567 | .type = V4L2_CTRL_TYPE_INTEGER, | 567 | .type = V4L2_CTRL_TYPE_INTEGER, |
| 568 | .name = "Contrast", | 568 | .name = "Contrast", |
| 569 | .minimum = 0, | 569 | .minimum = 0, |
| 570 | .maximum = 255, | 570 | .maximum = 127, |
| 571 | .step = 1, | 571 | .step = 1, |
| 572 | .default_value = 64, | 572 | .default_value = 64, |
| 573 | .flags = 0, | 573 | .flags = 0, |
| @@ -576,7 +576,7 @@ static struct v4l2_queryctrl cx25840_qctrl[] = { | |||
| 576 | .type = V4L2_CTRL_TYPE_INTEGER, | 576 | .type = V4L2_CTRL_TYPE_INTEGER, |
| 577 | .name = "Saturation", | 577 | .name = "Saturation", |
| 578 | .minimum = 0, | 578 | .minimum = 0, |
| 579 | .maximum = 255, | 579 | .maximum = 127, |
| 580 | .step = 1, | 580 | .step = 1, |
| 581 | .default_value = 64, | 581 | .default_value = 64, |
| 582 | .flags = 0, | 582 | .flags = 0, |
diff --git a/drivers/media/video/saa7115.c b/drivers/media/video/saa7115.c index 048d000941c7..ffd87ce55556 100644 --- a/drivers/media/video/saa7115.c +++ b/drivers/media/video/saa7115.c | |||
| @@ -1027,7 +1027,7 @@ static struct v4l2_queryctrl saa7115_qctrl[] = { | |||
| 1027 | .type = V4L2_CTRL_TYPE_INTEGER, | 1027 | .type = V4L2_CTRL_TYPE_INTEGER, |
| 1028 | .name = "Contrast", | 1028 | .name = "Contrast", |
| 1029 | .minimum = 0, | 1029 | .minimum = 0, |
| 1030 | .maximum = 255, | 1030 | .maximum = 127, |
| 1031 | .step = 1, | 1031 | .step = 1, |
| 1032 | .default_value = 64, | 1032 | .default_value = 64, |
| 1033 | .flags = 0, | 1033 | .flags = 0, |
| @@ -1036,7 +1036,7 @@ static struct v4l2_queryctrl saa7115_qctrl[] = { | |||
| 1036 | .type = V4L2_CTRL_TYPE_INTEGER, | 1036 | .type = V4L2_CTRL_TYPE_INTEGER, |
| 1037 | .name = "Saturation", | 1037 | .name = "Saturation", |
| 1038 | .minimum = 0, | 1038 | .minimum = 0, |
| 1039 | .maximum = 255, | 1039 | .maximum = 127, |
| 1040 | .step = 1, | 1040 | .step = 1, |
| 1041 | .default_value = 64, | 1041 | .default_value = 64, |
| 1042 | .flags = 0, | 1042 | .flags = 0, |
diff --git a/drivers/media/video/saa7134/saa7134-alsa.c b/drivers/media/video/saa7134/saa7134-alsa.c index a7a6ab9298a9..7df5e0826e12 100644 --- a/drivers/media/video/saa7134/saa7134-alsa.c +++ b/drivers/media/video/saa7134/saa7134-alsa.c | |||
| @@ -54,10 +54,12 @@ MODULE_PARM_DESC(debug,"enable debug messages [alsa]"); | |||
| 54 | 54 | ||
| 55 | static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */ | 55 | static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */ |
| 56 | static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */ | 56 | static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */ |
| 57 | static int enable[SNDRV_CARDS] = {1, [1 ... (SNDRV_CARDS - 1)] = 0}; | 57 | static int enable[SNDRV_CARDS] = {1, [1 ... (SNDRV_CARDS - 1)] = 1}; |
| 58 | 58 | ||
| 59 | module_param_array(index, int, NULL, 0444); | 59 | module_param_array(index, int, NULL, 0444); |
| 60 | module_param_array(enable, int, NULL, 0444); | ||
| 60 | MODULE_PARM_DESC(index, "Index value for SAA7134 capture interface(s)."); | 61 | MODULE_PARM_DESC(index, "Index value for SAA7134 capture interface(s)."); |
| 62 | MODULE_PARM_DESC(enable, "Enable (or not) the SAA7134 capture interface(s)."); | ||
| 61 | 63 | ||
| 62 | #define dprintk(fmt, arg...) if (debug) \ | 64 | #define dprintk(fmt, arg...) if (debug) \ |
| 63 | printk(KERN_DEBUG "%s/alsa: " fmt, dev->name , ##arg) | 65 | printk(KERN_DEBUG "%s/alsa: " fmt, dev->name , ##arg) |
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c index 5a35d3b6550d..6bc63a4086c1 100644 --- a/drivers/media/video/saa7134/saa7134-cards.c +++ b/drivers/media/video/saa7134/saa7134-cards.c | |||
| @@ -977,7 +977,7 @@ struct saa7134_board saa7134_boards[] = { | |||
| 977 | .radio_type = UNSET, | 977 | .radio_type = UNSET, |
| 978 | .tuner_addr = ADDR_UNSET, | 978 | .tuner_addr = ADDR_UNSET, |
| 979 | .radio_addr = ADDR_UNSET, | 979 | .radio_addr = ADDR_UNSET, |
| 980 | .tda9887_conf = TDA9887_PRESENT | TDA9887_INTERCARRIER | TDA9887_PORT2_ACTIVE, | 980 | .tda9887_conf = TDA9887_PRESENT | TDA9887_INTERCARRIER | TDA9887_PORT2_INACTIVE, |
| 981 | .inputs = {{ | 981 | .inputs = {{ |
| 982 | .name = name_tv, | 982 | .name = name_tv, |
| 983 | .vmux = 3, | 983 | .vmux = 3, |
| @@ -1666,7 +1666,7 @@ struct saa7134_board saa7134_boards[] = { | |||
| 1666 | .radio_type = UNSET, | 1666 | .radio_type = UNSET, |
| 1667 | .tuner_addr = ADDR_UNSET, | 1667 | .tuner_addr = ADDR_UNSET, |
| 1668 | .radio_addr = ADDR_UNSET, | 1668 | .radio_addr = ADDR_UNSET, |
| 1669 | .tda9887_conf = TDA9887_PRESENT | TDA9887_INTERCARRIER | TDA9887_PORT2_ACTIVE, | 1669 | .tda9887_conf = TDA9887_PRESENT | TDA9887_INTERCARRIER | TDA9887_PORT2_INACTIVE, |
| 1670 | .mpeg = SAA7134_MPEG_DVB, | 1670 | .mpeg = SAA7134_MPEG_DVB, |
| 1671 | .inputs = {{ | 1671 | .inputs = {{ |
| 1672 | .name = name_tv, | 1672 | .name = name_tv, |
| @@ -2187,7 +2187,7 @@ struct saa7134_board saa7134_boards[] = { | |||
| 2187 | .radio_type = UNSET, | 2187 | .radio_type = UNSET, |
| 2188 | .tuner_addr = 0x61, | 2188 | .tuner_addr = 0x61, |
| 2189 | .radio_addr = ADDR_UNSET, | 2189 | .radio_addr = ADDR_UNSET, |
| 2190 | .tda9887_conf = TDA9887_PRESENT, | 2190 | .tda9887_conf = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE, |
| 2191 | .mpeg = SAA7134_MPEG_DVB, | 2191 | .mpeg = SAA7134_MPEG_DVB, |
| 2192 | .inputs = {{ | 2192 | .inputs = {{ |
| 2193 | .name = name_tv, | 2193 | .name = name_tv, |
| @@ -2211,7 +2211,7 @@ struct saa7134_board saa7134_boards[] = { | |||
| 2211 | .radio_type = UNSET, | 2211 | .radio_type = UNSET, |
| 2212 | .tuner_addr = 0x61, | 2212 | .tuner_addr = 0x61, |
| 2213 | .radio_addr = ADDR_UNSET, | 2213 | .radio_addr = ADDR_UNSET, |
| 2214 | .tda9887_conf = TDA9887_PRESENT, | 2214 | .tda9887_conf = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE, |
| 2215 | .mpeg = SAA7134_MPEG_DVB, | 2215 | .mpeg = SAA7134_MPEG_DVB, |
| 2216 | .inputs = {{ | 2216 | .inputs = {{ |
| 2217 | .name = name_tv, | 2217 | .name = name_tv, |
| @@ -2392,7 +2392,7 @@ struct saa7134_board saa7134_boards[] = { | |||
| 2392 | }}, | 2392 | }}, |
| 2393 | }, | 2393 | }, |
| 2394 | [SAA7134_BOARD_PINNACLE_PCTV_110i] = { | 2394 | [SAA7134_BOARD_PINNACLE_PCTV_110i] = { |
| 2395 | .name = "Pinnacle PCTV 110i (saa7133)", | 2395 | .name = "Pinnacle PCTV 40i/50i/110i (saa7133)", |
| 2396 | .audio_clock = 0x00187de7, | 2396 | .audio_clock = 0x00187de7, |
| 2397 | .tuner_type = TUNER_PHILIPS_TDA8290, | 2397 | .tuner_type = TUNER_PHILIPS_TDA8290, |
| 2398 | .radio_type = UNSET, | 2398 | .radio_type = UNSET, |
| @@ -2407,6 +2407,10 @@ struct saa7134_board saa7134_boards[] = { | |||
| 2407 | },{ | 2407 | },{ |
| 2408 | .name = name_comp1, | 2408 | .name = name_comp1, |
| 2409 | .vmux = 1, | 2409 | .vmux = 1, |
| 2410 | .amux = LINE2, | ||
| 2411 | },{ | ||
| 2412 | .name = name_comp2, | ||
| 2413 | .vmux = 0, | ||
| 2410 | .amux = LINE2, | 2414 | .amux = LINE2, |
| 2411 | },{ | 2415 | },{ |
| 2412 | .name = name_svideo, | 2416 | .name = name_svideo, |
| @@ -2745,7 +2749,7 @@ struct pci_device_id saa7134_pci_tbl[] = { | |||
| 2745 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2749 | .vendor = PCI_VENDOR_ID_PHILIPS, |
| 2746 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, | 2750 | .device = PCI_DEVICE_ID_PHILIPS_SAA7130, |
| 2747 | .subvendor = 0x1048, | 2751 | .subvendor = 0x1048, |
| 2748 | .subdevice = 0x226b, | 2752 | .subdevice = 0x226a, |
| 2749 | .driver_data = SAA7134_BOARD_ELSA_500TV, | 2753 | .driver_data = SAA7134_BOARD_ELSA_500TV, |
| 2750 | },{ | 2754 | },{ |
| 2751 | .vendor = PCI_VENDOR_ID_PHILIPS, | 2755 | .vendor = PCI_VENDOR_ID_PHILIPS, |
| @@ -3201,6 +3205,11 @@ int saa7134_board_init1(struct saa7134_dev *dev) | |||
| 3201 | /* power-up tuner chip */ | 3205 | /* power-up tuner chip */ |
| 3202 | saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x00040000, 0x00040000); | 3206 | saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x00040000, 0x00040000); |
| 3203 | saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00040000, 0x00000000); | 3207 | saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00040000, 0x00000000); |
| 3208 | case SAA7134_BOARD_PINNACLE_300I_DVBT_PAL: | ||
| 3209 | /* this turns the remote control chip off to work around a bug in it */ | ||
| 3210 | saa_writeb(SAA7134_GPIO_GPMODE1, 0x80); | ||
| 3211 | saa_writeb(SAA7134_GPIO_GPSTATUS1, 0x80); | ||
| 3212 | break; | ||
| 3204 | case SAA7134_BOARD_MONSTERTV_MOBILE: | 3213 | case SAA7134_BOARD_MONSTERTV_MOBILE: |
| 3205 | /* power-up tuner chip */ | 3214 | /* power-up tuner chip */ |
| 3206 | saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x00040000, 0x00040000); | 3215 | saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x00040000, 0x00040000); |
diff --git a/drivers/media/video/saa7134/saa7134-dvb.c b/drivers/media/video/saa7134/saa7134-dvb.c index 1a536e865277..9db8e13f21c3 100644 --- a/drivers/media/video/saa7134/saa7134-dvb.c +++ b/drivers/media/video/saa7134/saa7134-dvb.c | |||
| @@ -110,6 +110,7 @@ static int mt352_pinnacle_init(struct dvb_frontend* fe) | |||
| 110 | mt352_write(fe, fsm_ctl_cfg, sizeof(fsm_ctl_cfg)); | 110 | mt352_write(fe, fsm_ctl_cfg, sizeof(fsm_ctl_cfg)); |
| 111 | mt352_write(fe, scan_ctl_cfg, sizeof(scan_ctl_cfg)); | 111 | mt352_write(fe, scan_ctl_cfg, sizeof(scan_ctl_cfg)); |
| 112 | mt352_write(fe, irq_cfg, sizeof(irq_cfg)); | 112 | mt352_write(fe, irq_cfg, sizeof(irq_cfg)); |
| 113 | |||
| 113 | return 0; | 114 | return 0; |
| 114 | } | 115 | } |
| 115 | 116 | ||
| @@ -117,8 +118,10 @@ static int mt352_pinnacle_pll_set(struct dvb_frontend* fe, | |||
| 117 | struct dvb_frontend_parameters* params, | 118 | struct dvb_frontend_parameters* params, |
| 118 | u8* pllbuf) | 119 | u8* pllbuf) |
| 119 | { | 120 | { |
| 120 | static int on = TDA9887_PRESENT | TDA9887_PORT2_INACTIVE; | 121 | u8 off[] = { 0x00, 0xf1}; |
| 121 | static int off = TDA9887_PRESENT | TDA9887_PORT2_ACTIVE; | 122 | u8 on[] = { 0x00, 0x71}; |
| 123 | struct i2c_msg msg = {.addr=0x43, .flags=0, .buf=off, .len = sizeof(off)}; | ||
| 124 | |||
| 122 | struct saa7134_dev *dev = fe->dvb->priv; | 125 | struct saa7134_dev *dev = fe->dvb->priv; |
| 123 | struct v4l2_frequency f; | 126 | struct v4l2_frequency f; |
| 124 | 127 | ||
| @@ -126,9 +129,10 @@ static int mt352_pinnacle_pll_set(struct dvb_frontend* fe, | |||
| 126 | f.tuner = 0; | 129 | f.tuner = 0; |
| 127 | f.type = V4L2_TUNER_DIGITAL_TV; | 130 | f.type = V4L2_TUNER_DIGITAL_TV; |
| 128 | f.frequency = params->frequency / 1000 * 16 / 1000; | 131 | f.frequency = params->frequency / 1000 * 16 / 1000; |
| 129 | saa7134_i2c_call_clients(dev,TDA9887_SET_CONFIG,&on); | 132 | i2c_transfer(&dev->i2c_adap, &msg, 1); |
| 130 | saa7134_i2c_call_clients(dev,VIDIOC_S_FREQUENCY,&f); | 133 | saa7134_i2c_call_clients(dev,VIDIOC_S_FREQUENCY,&f); |
| 131 | saa7134_i2c_call_clients(dev,TDA9887_SET_CONFIG,&off); | 134 | msg.buf = on; |
| 135 | i2c_transfer(&dev->i2c_adap, &msg, 1); | ||
| 132 | 136 | ||
| 133 | pinnacle_antenna_pwr(dev, antenna_pwr); | 137 | pinnacle_antenna_pwr(dev, antenna_pwr); |
| 134 | 138 | ||
diff --git a/drivers/media/video/tda8290.c b/drivers/media/video/tda8290.c index 7b4fb282ac82..a796a4e1917c 100644 --- a/drivers/media/video/tda8290.c +++ b/drivers/media/video/tda8290.c | |||
| @@ -580,9 +580,10 @@ int tda8290_init(struct i2c_client *c) | |||
| 580 | 580 | ||
| 581 | int tda8290_probe(struct i2c_client *c) | 581 | int tda8290_probe(struct i2c_client *c) |
| 582 | { | 582 | { |
| 583 | unsigned char soft_reset[] = { 0x00, 0x00 }; | 583 | unsigned char soft_reset[] = { 0x00, 0x00 }; |
| 584 | unsigned char easy_mode_b[] = { 0x01, 0x02 }; | 584 | unsigned char easy_mode_b[] = { 0x01, 0x02 }; |
| 585 | unsigned char easy_mode_g[] = { 0x01, 0x04 }; | 585 | unsigned char easy_mode_g[] = { 0x01, 0x04 }; |
| 586 | unsigned char restore_9886[] = { 0x00, 0xd6, 0x30 }; | ||
| 586 | unsigned char addr_dto_lsb = 0x07; | 587 | unsigned char addr_dto_lsb = 0x07; |
| 587 | unsigned char data; | 588 | unsigned char data; |
| 588 | 589 | ||
| @@ -599,6 +600,7 @@ int tda8290_probe(struct i2c_client *c) | |||
| 599 | return 0; | 600 | return 0; |
| 600 | } | 601 | } |
| 601 | } | 602 | } |
| 603 | i2c_master_send(c, restore_9886, 3); | ||
| 602 | return -1; | 604 | return -1; |
| 603 | } | 605 | } |
| 604 | 606 | ||
diff --git a/drivers/media/video/tuner-core.c b/drivers/media/video/tuner-core.c index e7ee619d62c5..b6101bf446d4 100644 --- a/drivers/media/video/tuner-core.c +++ b/drivers/media/video/tuner-core.c | |||
| @@ -713,8 +713,9 @@ static int tuner_command(struct i2c_client *client, unsigned int cmd, void *arg) | |||
| 713 | struct v4l2_frequency *f = arg; | 713 | struct v4l2_frequency *f = arg; |
| 714 | 714 | ||
| 715 | switch_v4l2(); | 715 | switch_v4l2(); |
| 716 | if (V4L2_TUNER_RADIO == f->type && | 716 | if ((V4L2_TUNER_RADIO == f->type && V4L2_TUNER_RADIO != t->mode) |
| 717 | V4L2_TUNER_RADIO != t->mode) { | 717 | || (V4L2_TUNER_DIGITAL_TV == f->type |
| 718 | && V4L2_TUNER_DIGITAL_TV != t->mode)) { | ||
| 718 | if (set_mode (client, t, f->type, "VIDIOC_S_FREQUENCY") | 719 | if (set_mode (client, t, f->type, "VIDIOC_S_FREQUENCY") |
| 719 | == EINVAL) | 720 | == EINVAL) |
| 720 | return 0; | 721 | return 0; |
diff --git a/drivers/media/video/videocodec.h b/drivers/media/video/videocodec.h index 156ae57096fe..b1239ac7f371 100644 --- a/drivers/media/video/videocodec.h +++ b/drivers/media/video/videocodec.h | |||
| @@ -56,7 +56,7 @@ | |||
| 56 | the slave is bound to it). Otherwise it doesn't need this functions and | 56 | the slave is bound to it). Otherwise it doesn't need this functions and |
| 57 | therfor they may not be initialized. | 57 | therfor they may not be initialized. |
| 58 | 58 | ||
| 59 | The other fuctions are just for convenience, as they are for shure used by | 59 | The other fuctions are just for convenience, as they are for sure used by |
| 60 | most/all of the codecs. The last ones may be ommited, too. | 60 | most/all of the codecs. The last ones may be ommited, too. |
| 61 | 61 | ||
| 62 | See the structure declaration below for more information and which data has | 62 | See the structure declaration below for more information and which data has |
diff --git a/drivers/media/video/zr36050.c b/drivers/media/video/zr36050.c index bd0cd28543ca..6699725be605 100644 --- a/drivers/media/video/zr36050.c +++ b/drivers/media/video/zr36050.c | |||
| @@ -159,7 +159,7 @@ zr36050_wait_end (struct zr36050 *ptr) | |||
| 159 | 159 | ||
| 160 | while (!(zr36050_read_status1(ptr) & 0x4)) { | 160 | while (!(zr36050_read_status1(ptr) & 0x4)) { |
| 161 | udelay(1); | 161 | udelay(1); |
| 162 | if (i++ > 200000) { // 200ms, there is for shure something wrong!!! | 162 | if (i++ > 200000) { // 200ms, there is for sure something wrong!!! |
| 163 | dprintk(1, | 163 | dprintk(1, |
| 164 | "%s: timout at wait_end (last status: 0x%02x)\n", | 164 | "%s: timout at wait_end (last status: 0x%02x)\n", |
| 165 | ptr->name, ptr->status1); | 165 | ptr->name, ptr->status1); |
diff --git a/drivers/media/video/zr36060.c b/drivers/media/video/zr36060.c index 28fa31a5f150..d8dd003a7aad 100644 --- a/drivers/media/video/zr36060.c +++ b/drivers/media/video/zr36060.c | |||
| @@ -161,7 +161,7 @@ zr36060_wait_end (struct zr36060 *ptr) | |||
| 161 | 161 | ||
| 162 | while (zr36060_read_status(ptr) & ZR060_CFSR_Busy) { | 162 | while (zr36060_read_status(ptr) & ZR060_CFSR_Busy) { |
| 163 | udelay(1); | 163 | udelay(1); |
| 164 | if (i++ > 200000) { // 200ms, there is for shure something wrong!!! | 164 | if (i++ > 200000) { // 200ms, there is for sure something wrong!!! |
| 165 | dprintk(1, | 165 | dprintk(1, |
| 166 | "%s: timout at wait_end (last status: 0x%02x)\n", | 166 | "%s: timout at wait_end (last status: 0x%02x)\n", |
| 167 | ptr->name, ptr->status); | 167 | ptr->name, ptr->status); |
diff --git a/drivers/media/video/zr36120_i2c.c b/drivers/media/video/zr36120_i2c.c index 6bfe84d657f1..21fde43a6aed 100644 --- a/drivers/media/video/zr36120_i2c.c +++ b/drivers/media/video/zr36120_i2c.c | |||
| @@ -65,7 +65,7 @@ void attach_inform(struct i2c_bus *bus, int id) | |||
| 65 | case I2C_DRIVERID_VIDEODECODER: | 65 | case I2C_DRIVERID_VIDEODECODER: |
| 66 | DEBUG(printk(CARD_INFO "decoder attached\n",CARD)); | 66 | DEBUG(printk(CARD_INFO "decoder attached\n",CARD)); |
| 67 | 67 | ||
| 68 | /* fetch the capabilites of the decoder */ | 68 | /* fetch the capabilities of the decoder */ |
| 69 | rv = i2c_control_device(&ztv->i2c, I2C_DRIVERID_VIDEODECODER, DECODER_GET_CAPABILITIES, &dc); | 69 | rv = i2c_control_device(&ztv->i2c, I2C_DRIVERID_VIDEODECODER, DECODER_GET_CAPABILITIES, &dc); |
| 70 | if (rv) { | 70 | if (rv) { |
| 71 | DEBUG(printk(CARD_DEBUG "decoder is not V4L aware!\n",CARD)); | 71 | DEBUG(printk(CARD_DEBUG "decoder is not V4L aware!\n",CARD)); |
