aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/saa7134/saa7134-dvb.c
diff options
context:
space:
mode:
authorHartmut Hackmann <hartmut.hackmann@t-online.de>2007-04-27 11:31:10 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2007-04-27 14:43:29 -0400
commit1bb0e8667fab773d6c5a3d7caf506001deaeb7f5 (patch)
treed74d1dca69859a253e9bab9bb3fda2611abcac50 /drivers/media/video/saa7134/saa7134-dvb.c
parent2435be11ae1afb64ac7dfb25e10b6e3037ab0522 (diff)
V4L/DVB (5311): Tda1004x driver updates
There are the following changes: - separate configuration of IF and GPIOs. - set GPIOs before firmware load. This helps to avoid I2C address collisions. - if desired invert GPIOs at sleep (automatic return to analog mode of card). - added 3 tuner configuration bytes to config stuct. - added i2c gate address to config struct. - moved _state struct declaration to header file to make it accessible on board layer. - added "conf_probed" to the state struct to allow i.e. probing for correct tuner version. - changed firmware load mechanism to always: + check if already loaded + try to boot from eeprom + try downlad from host - corrected name of tda10046 firmware image (backward compatible). Signed-off-by: Hartmut Hackmann <hartmut.hackmann@t-online.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/saa7134/saa7134-dvb.c')
-rw-r--r--drivers/media/video/saa7134/saa7134-dvb.c48
1 files changed, 29 insertions, 19 deletions
diff --git a/drivers/media/video/saa7134/saa7134-dvb.c b/drivers/media/video/saa7134/saa7134-dvb.c
index e3059fd33951..6d148a7601ac 100644
--- a/drivers/media/video/saa7134/saa7134-dvb.c
+++ b/drivers/media/video/saa7134/saa7134-dvb.c
@@ -416,7 +416,7 @@ static struct tda1004x_config philips_europa_config = {
416 .xtal_freq = TDA10046_XTAL_4M, 416 .xtal_freq = TDA10046_XTAL_4M,
417 .agc_config = TDA10046_AGC_IFO_AUTO_POS, 417 .agc_config = TDA10046_AGC_IFO_AUTO_POS,
418 .if_freq = TDA10046_FREQ_052, 418 .if_freq = TDA10046_FREQ_052,
419 .request_firmware = NULL, 419 .request_firmware = philips_tda1004x_request_firmware,
420}; 420};
421 421
422/* ------------------------------------------------------------------ */ 422/* ------------------------------------------------------------------ */
@@ -548,7 +548,7 @@ static struct tda1004x_config medion_cardbus = {
548 .xtal_freq = TDA10046_XTAL_16M, 548 .xtal_freq = TDA10046_XTAL_16M,
549 .agc_config = TDA10046_AGC_IFO_AUTO_NEG, 549 .agc_config = TDA10046_AGC_IFO_AUTO_NEG,
550 .if_freq = TDA10046_FREQ_3613, 550 .if_freq = TDA10046_FREQ_3613,
551 .request_firmware = NULL, 551 .request_firmware = philips_tda1004x_request_firmware,
552}; 552};
553 553
554/* ------------------------------------------------------------------ */ 554/* ------------------------------------------------------------------ */
@@ -681,9 +681,10 @@ static struct tda1004x_config tda827x_lifeview_config = {
681 .invert = 1, 681 .invert = 1,
682 .invert_oclk = 0, 682 .invert_oclk = 0,
683 .xtal_freq = TDA10046_XTAL_16M, 683 .xtal_freq = TDA10046_XTAL_16M,
684 .agc_config = TDA10046_AGC_TDA827X_GP11, 684 .agc_config = TDA10046_AGC_TDA827X,
685 .gpio_config = TDA10046_GP11_I,
685 .if_freq = TDA10046_FREQ_045, 686 .if_freq = TDA10046_FREQ_045,
686 .request_firmware = NULL, 687 .request_firmware = philips_tda1004x_request_firmware,
687}; 688};
688 689
689/* ------------------------------------------------------------------ */ 690/* ------------------------------------------------------------------ */
@@ -885,9 +886,10 @@ static struct tda1004x_config philips_tiger_config = {
885 .invert = 1, 886 .invert = 1,
886 .invert_oclk = 0, 887 .invert_oclk = 0,
887 .xtal_freq = TDA10046_XTAL_16M, 888 .xtal_freq = TDA10046_XTAL_16M,
888 .agc_config = TDA10046_AGC_TDA827X_GP11, 889 .agc_config = TDA10046_AGC_TDA827X,
890 .gpio_config = TDA10046_GP11_I,
889 .if_freq = TDA10046_FREQ_045, 891 .if_freq = TDA10046_FREQ_045,
890 .request_firmware = NULL, 892 .request_firmware = philips_tda1004x_request_firmware,
891}; 893};
892/* ------------------------------------------------------------------ */ 894/* ------------------------------------------------------------------ */
893 895
@@ -918,9 +920,10 @@ static struct tda1004x_config cinergy_ht_config = {
918 .invert = 1, 920 .invert = 1,
919 .invert_oclk = 0, 921 .invert_oclk = 0,
920 .xtal_freq = TDA10046_XTAL_16M, 922 .xtal_freq = TDA10046_XTAL_16M,
921 .agc_config = TDA10046_AGC_TDA827X_GP01, 923 .agc_config = TDA10046_AGC_TDA827X,
924 .gpio_config = TDA10046_GP01_I,
922 .if_freq = TDA10046_FREQ_045, 925 .if_freq = TDA10046_FREQ_045,
923 .request_firmware = NULL, 926 .request_firmware = philips_tda1004x_request_firmware,
924}; 927};
925 928
926/* ------------------------------------------------------------------ */ 929/* ------------------------------------------------------------------ */
@@ -930,7 +933,8 @@ static struct tda1004x_config pinnacle_pctv_310i_config = {
930 .invert = 1, 933 .invert = 1,
931 .invert_oclk = 0, 934 .invert_oclk = 0,
932 .xtal_freq = TDA10046_XTAL_16M, 935 .xtal_freq = TDA10046_XTAL_16M,
933 .agc_config = TDA10046_AGC_TDA827X_GP11, 936 .agc_config = TDA10046_AGC_TDA827X,
937 .gpio_config = TDA10046_GP11_I,
934 .if_freq = TDA10046_FREQ_045, 938 .if_freq = TDA10046_FREQ_045,
935 .request_firmware = philips_tda1004x_request_firmware, 939 .request_firmware = philips_tda1004x_request_firmware,
936}; 940};
@@ -942,7 +946,8 @@ static struct tda1004x_config hauppauge_hvr_1110_config = {
942 .invert = 1, 946 .invert = 1,
943 .invert_oclk = 0, 947 .invert_oclk = 0,
944 .xtal_freq = TDA10046_XTAL_16M, 948 .xtal_freq = TDA10046_XTAL_16M,
945 .agc_config = TDA10046_AGC_TDA827X_GP11, 949 .agc_config = TDA10046_AGC_TDA827X,
950 .gpio_config = TDA10046_GP11_I,
946 .if_freq = TDA10046_FREQ_045, 951 .if_freq = TDA10046_FREQ_045,
947 .request_firmware = philips_tda1004x_request_firmware, 952 .request_firmware = philips_tda1004x_request_firmware,
948}; 953};
@@ -954,7 +959,8 @@ static struct tda1004x_config asus_p7131_dual_config = {
954 .invert = 1, 959 .invert = 1,
955 .invert_oclk = 0, 960 .invert_oclk = 0,
956 .xtal_freq = TDA10046_XTAL_16M, 961 .xtal_freq = TDA10046_XTAL_16M,
957 .agc_config = TDA10046_AGC_TDA827X_GP11, 962 .agc_config = TDA10046_AGC_TDA827X,
963 .gpio_config = TDA10046_GP11_I,
958 .if_freq = TDA10046_FREQ_045, 964 .if_freq = TDA10046_FREQ_045,
959 .request_firmware = philips_tda1004x_request_firmware, 965 .request_firmware = philips_tda1004x_request_firmware,
960}; 966};
@@ -1006,9 +1012,10 @@ static struct tda1004x_config lifeview_trio_config = {
1006 .invert = 1, 1012 .invert = 1,
1007 .invert_oclk = 0, 1013 .invert_oclk = 0,
1008 .xtal_freq = TDA10046_XTAL_16M, 1014 .xtal_freq = TDA10046_XTAL_16M,
1009 .agc_config = TDA10046_AGC_TDA827X_GP00, 1015 .agc_config = TDA10046_AGC_TDA827X,
1016 .gpio_config = TDA10046_GP00_I,
1010 .if_freq = TDA10046_FREQ_045, 1017 .if_freq = TDA10046_FREQ_045,
1011 .request_firmware = NULL, 1018 .request_firmware = philips_tda1004x_request_firmware,
1012}; 1019};
1013 1020
1014/* ------------------------------------------------------------------ */ 1021/* ------------------------------------------------------------------ */
@@ -1043,9 +1050,10 @@ static struct tda1004x_config ads_tech_duo_config = {
1043 .invert = 1, 1050 .invert = 1,
1044 .invert_oclk = 0, 1051 .invert_oclk = 0,
1045 .xtal_freq = TDA10046_XTAL_16M, 1052 .xtal_freq = TDA10046_XTAL_16M,
1046 .agc_config = TDA10046_AGC_TDA827X_GP00, 1053 .agc_config = TDA10046_AGC_TDA827X,
1054 .gpio_config = TDA10046_GP00_I,
1047 .if_freq = TDA10046_FREQ_045, 1055 .if_freq = TDA10046_FREQ_045,
1048 .request_firmware = NULL, 1056 .request_firmware = philips_tda1004x_request_firmware,
1049}; 1057};
1050 1058
1051/* ------------------------------------------------------------------ */ 1059/* ------------------------------------------------------------------ */
@@ -1068,9 +1076,10 @@ static struct tda1004x_config tevion_dvbt220rf_config = {
1068 .invert = 1, 1076 .invert = 1,
1069 .invert_oclk = 0, 1077 .invert_oclk = 0,
1070 .xtal_freq = TDA10046_XTAL_16M, 1078 .xtal_freq = TDA10046_XTAL_16M,
1071 .agc_config = TDA10046_AGC_TDA827X_GP11, 1079 .agc_config = TDA10046_AGC_TDA827X,
1080 .gpio_config = TDA10046_GP11_I,
1072 .if_freq = TDA10046_FREQ_045, 1081 .if_freq = TDA10046_FREQ_045,
1073 .request_firmware = NULL, 1082 .request_firmware = philips_tda1004x_request_firmware,
1074}; 1083};
1075 1084
1076/* ------------------------------------------------------------------ */ 1085/* ------------------------------------------------------------------ */
@@ -1113,9 +1122,10 @@ static struct tda1004x_config md8800_dvbt_config = {
1113 .invert = 1, 1122 .invert = 1,
1114 .invert_oclk = 0, 1123 .invert_oclk = 0,
1115 .xtal_freq = TDA10046_XTAL_16M, 1124 .xtal_freq = TDA10046_XTAL_16M,
1116 .agc_config = TDA10046_AGC_TDA827X_GP11, 1125 .agc_config = TDA10046_AGC_TDA827X,
1126 .gpio_config = TDA10046_GP11_I,
1117 .if_freq = TDA10046_FREQ_045, 1127 .if_freq = TDA10046_FREQ_045,
1118 .request_firmware = NULL, 1128 .request_firmware = philips_tda1004x_request_firmware,
1119}; 1129};
1120 1130
1121static struct tda10086_config flydvbs = { 1131static struct tda10086_config flydvbs = {