Steven Toth wrote: > > Mauro, see question below. > > Paul Chubb wrote: >> Steven Toth wrote: >>> Paul Chubb wrote: >>>> Barry, >>>> I drew the line at porting the xc3028 tuner module from mcentral.de >>>> into v4l-dvb, so no didn't solve the firmware issues. If you know >>>> what you are doing it should be trivial work - just linking in yet >>>> another tuner module and then calling it like all the others. For >>>> me because I don't know the code well it would take a week or two. >>> >>> No porting required. >>> >>> xc3028 tuner is already in the kernel, it should just be a case of >>> configuring the attach/config structs correctly. >>> >>> - Steve >>> >> Steve, >> I think we are talking about two different things. Yes the >> xc3028 tuner is supported via tuner-xc2028 and works for many xc3028 >> based cards. This support uses the xc3028-v27.fw file that contains >> say 80 firmware modules. This firmware was extracted from a Haupage >> windows driver. > > Correct. > > (I changed the subject by the way) > >> >> I believe that the 1800H has some incompatibility with this firmware. >> The mcentral.de tree has a different firmware loading and tuner >> support module for xc3028 that loads individual firmware modules - >> you literally put twenty or thirty files into /lib/firmware. This >> firmware is the standard firmware from xceive before the card >> manufacturers get to it. Comparing the dmesg listing from a working >> mcentral.de setup and the non-working v4l tree the only thing that >> leaps out is the different firmware. If I was continuing the next >> step would be to port that tuner module into the v4l code and set it >> up in the normal way. > > the v27.fw file does contain the correct firmware, so the fact that > the inkernel tuner driver isn't select the correct version (or that it > needs a hint in the config struct) is probably a very small fix. > > Mauro (cc'd) generally maintains that driver and he should be able to > help. My suggestion is that you cut/paste the attach/config struct > from your leadtek code into this email thread. From you email address > I guess you're trying to get DVB-T 7MHz working in Australia. Mauro > can review it. > > Ideally, we'd point you at a different card struct for the same tuner > that we know works in Australia, so you build the leadtek config > struct based on something that we know works. > > Mauro, what should the attach/config struct look like for a > xc2028/3028 tune in Australia? Can you point to a working example or > suggest a change? > > Regards, > > - Steve > > > > static struct zl10353_config cx88_dtv1800h = { .demod_address = (0x1e >> 1), .no_tuner = 1, }; case CX88_BOARD_WINFAST_DTV1800H: dev->dvb.frontend = dvb_attach(zl10353_attach, &cx88_dtv1800h, &dev->core->i2c_adap); if (dev->dvb.frontend != NULL) { struct dvb_frontend *fe; struct xc2028_config cfg = { .i2c_adap = &dev->core->i2c_adap, .i2c_addr = 0x61, .video_dev = dev->core, .callback = cx88_xc3028_callback, }; static struct xc2028_ctrl ctl = { .fname = "xc3028-v27", .max_len = 64, }; fe = dvb_attach(xc2028_attach, dev->dvb.frontend, &cfg); if (fe != NULL && fe->ops.tuner_ops.set_config != NULL) fe->ops.tuner_ops.set_config(fe, &ctl); } dev->dvb.frontend->ops.i2c_gate_ctrl = NULL; dev->dvb.frontend->ops.sleep = NULL; break; This produces the following dmesg when attempting to scan 162.664155] dvb_frontend_release [ 162.664166] cx88[0]/2-dvb: cx8802_dvb_advise_release [ 164.538048] xc2028 2-0061: xc2028_sleep called [ 164.539220] xc2028 2-0061: Error on line 1075: -121 [ 166.924301] dvb_frontend_open [ 166.924312] cx88[0]/2-dvb: cx8802_dvb_advise_acquire [ 166.924316] dvb_frontend_start [ 166.925247] dvb_frontend_ioctl [ 166.925255] dvb_frontend_thread [ 166.925258] DVB: initialising frontend 0 (Zarlink ZL10353 DVB-T)... [ 166.948442] dvb_frontend_ioctl [ 166.948456] dvb_frontend_add_event [ 166.948478] dvb_frontend_swzigzag_autotune: drift:0 inversion:0 auto_step:0 auto_sub_step:0 started_auto_step:0 [ 166.951013] zl10353: zl10353_calc_nominal_rate: bw 7, adc_clock 450560 => 0x5ae9 [ 166.951621] zl10353: zl10353_calc_input_freq: if2 361667, ife 88893, adc_clock 450560 => -12930 / 0xcd7e [ 166.952833] xc2028 2-0061: xc2028_set_params called [ 166.952838] xc2028 2-0061: generic_set_freq called [ 166.952841] xc2028 2-0061: should set frequency 205625 kHz [ 166.952845] xc2028 2-0061: check_firmware called [ 166.952849] xc2028 2-0061: load_all_firmwares called [ 166.952852] xc2028 2-0061: Reading firmware xc3028-v27.fw [ 167.016500] xc2028 2-0061: Loading 80 firmware images from xc3028-v27.fw, type: xc2028 firmware, ver 2.7 [ 167.016524] xc2028 2-0061: Reading firmware type BASE F8MHZ (3), id 0, size=8718. [ 167.016548] xc2028 2-0061: Reading firmware type BASE F8MHZ MTS (7), id 0, size=8712. [ 167.016573] xc2028 2-0061: Reading firmware type BASE FM (401), id 0, size=8562. [ 167.016596] xc2028 2-0061: Reading firmware type BASE FM INPUT1 (c01), id 0, size=8576. [ 167.016619] xc2028 2-0061: Reading firmware type BASE (1), id 0, size=8706. [ 167.016640] xc2028 2-0061: Reading firmware type BASE MTS (5), id 0, size=8682. [ 167.016652] xc2028 2-0061: Reading firmware type (0), id 100000007, size=161. [ 167.016658] xc2028 2-0061: Reading firmware type MTS (4), id 100000007, size=169. [ 167.016665] xc2028 2-0061: Reading firmware type (0), id 200000007, size=161. [ 167.016671] xc2028 2-0061: Reading firmware type MTS (4), id 200000007, size=169. [ 167.016677] xc2028 2-0061: Reading firmware type (0), id 400000007, size=161. [ 167.016683] xc2028 2-0061: Reading firmware type MTS (4), id 400000007, size=169. [ 167.016689] xc2028 2-0061: Reading firmware type (0), id 800000007, size=161. [ 167.016695] xc2028 2-0061: Reading firmware type MTS (4), id 800000007, size=169. [ 167.016701] xc2028 2-0061: Reading firmware type (0), id 3000000e0, size=161. [ 167.016706] xc2028 2-0061: Reading firmware type MTS (4), id 3000000e0, size=169. [ 167.016712] xc2028 2-0061: Reading firmware type (0), id c000000e0, size=161. [ 167.016718] xc2028 2-0061: Reading firmware type MTS (4), id c000000e0, size=169. [ 167.016724] xc2028 2-0061: Reading firmware type (0), id 200000, size=161. [ 167.016729] xc2028 2-0061: Reading firmware type MTS (4), id 200000, size=169. [ 167.016735] xc2028 2-0061: Reading firmware type (0), id 4000000, size=161. [ 167.016741] xc2028 2-0061: Reading firmware type MTS (4), id 4000000, size=169. [ 167.016747] xc2028 2-0061: Reading firmware type D2633 DTV6 ATSC (10030), id 0, size=149. [ 167.016754] xc2028 2-0061: Reading firmware type D2620 DTV6 QAM (68), id 0, size=149. [ 167.016761] xc2028 2-0061: Reading firmware type D2633 DTV6 QAM (70), id 0, size=149. [ 167.016767] xc2028 2-0061: Reading firmware type D2620 DTV7 (88), id 0, size=149. [ 167.016774] xc2028 2-0061: Reading firmware type D2633 DTV7 (90), id 0, size=149. [ 167.016780] xc2028 2-0061: Reading firmware type D2620 DTV78 (108), id 0, size=149. [ 167.016786] xc2028 2-0061: Reading firmware type D2633 DTV78 (110), id 0, size=149. [ 167.016792] xc2028 2-0061: Reading firmware type D2620 DTV8 (208), id 0, size=149. [ 167.016798] xc2028 2-0061: Reading firmware type D2633 DTV8 (210), id 0, size=149. [ 167.016804] xc2028 2-0061: Reading firmware type FM (400), id 0, size=135. [ 167.016810] xc2028 2-0061: Reading firmware type (0), id 10, size=161. [ 167.016816] xc2028 2-0061: Reading firmware type MTS (4), id 10, size=169. [ 167.016822] xc2028 2-0061: Reading firmware type (0), id 1000400000, size=169. [ 167.016828] xc2028 2-0061: Reading firmware type (0), id c00400000, size=161. [ 167.016833] xc2028 2-0061: Reading firmware type (0), id 800000, size=161. [ 167.016839] xc2028 2-0061: Reading firmware type (0), id 8000, size=161. [ 167.016844] xc2028 2-0061: Reading firmware type LCD (1000), id 8000, size=161. [ 167.016850] xc2028 2-0061: Reading firmware type LCD NOGD (3000), id 8000, size=161. [ 167.016857] xc2028 2-0061: Reading firmware type MTS (4), id 8000, size=169. [ 167.016863] xc2028 2-0061: Reading firmware type (0), id b700, size=161. [ 167.016869] xc2028 2-0061: Reading firmware type LCD (1000), id b700, size=161. [ 167.016875] xc2028 2-0061: Reading firmware type LCD NOGD (3000), id b700, size=161. [ 167.016881] xc2028 2-0061: Reading firmware type (0), id 2000, size=161. [ 167.016887] xc2028 2-0061: Reading firmware type MTS (4), id b700, size=169. [ 167.016893] xc2028 2-0061: Reading firmware type MTS LCD (1004), id b700, size=169. [ 167.016899] xc2028 2-0061: Reading firmware type MTS LCD NOGD (3004), id b700, size=169. [ 167.016906] xc2028 2-0061: Reading firmware type SCODE HAS_IF_3280 (60000000), id 0, size=192. [ 167.016913] xc2028 2-0061: Reading firmware type SCODE HAS_IF_3300 (60000000), id 0, size=192. [ 167.016920] xc2028 2-0061: Reading firmware type SCODE HAS_IF_3440 (60000000), id 0, size=192. [ 167.016927] xc2028 2-0061: Reading firmware type SCODE HAS_IF_3460 (60000000), id 0, size=192. [ 167.016934] xc2028 2-0061: Reading firmware type DTV6 ATSC OREN36 SCODE HAS_IF_3800 (60210020), id 0, size=192. [ 167.016943] xc2028 2-0061: Reading firmware type SCODE HAS_IF_4000 (60000000), id 0, size=192. [ 167.016949] xc2028 2-0061: Reading firmware type DTV6 ATSC TOYOTA388 SCODE HAS_IF_4080 (60410020), id 0, size=192. [ 167.016958] xc2028 2-0061: Reading firmware type SCODE HAS_IF_4200 (60000000), id 0, size=192. [ 167.016987] xc2028 2-0061: Reading firmware type MONO SCODE HAS_IF_4320 (60008000), id 8000, size=192. [ 167.016995] xc2028 2-0061: Reading firmware type SCODE HAS_IF_4450 (60000000), id 0, size=192. [ 167.017002] xc2028 2-0061: Reading firmware type MTS LCD NOGD MONO IF SCODE HAS_IF_4500 (6002b004), id b700, size=192. [ 167.017012] xc2028 2-0061: Reading firmware type LCD NOGD IF SCODE HAS_IF_4600 (60023000), id 8000, size=192. [ 167.017020] xc2028 2-0061: Reading firmware type DTV6 QAM DTV7 DTV78 DTV8 ZARLINK456 SCODE HAS_IF_4760 (620003e0), id 0, size=192. [ 167.017030] xc2028 2-0061: Reading firmware type SCODE HAS_IF_4940 (60000000), id 0, size=192. [ 167.017037] xc2028 2-0061: Reading firmware type SCODE HAS_IF_5260 (60000000), id 0, size=192. [ 167.017044] xc2028 2-0061: Reading firmware type MONO SCODE HAS_IF_5320 (60008000), id f00000007, size=192. [ 167.017051] xc2028 2-0061: Reading firmware type DTV7 DTV78 DTV8 DIBCOM52 CHINA SCODE HAS_IF_5400 (65000380), id 0, size=192. [ 167.017061] xc2028 2-0061: Reading firmware type DTV6 ATSC OREN538 SCODE HAS_IF_5580 (60110020), id 0, size=192. [ 167.017069] xc2028 2-0061: Reading firmware type SCODE HAS_IF_5640 (60000000), id 300000007, size=192. [ 167.017076] xc2028 2-0061: Reading firmware type SCODE HAS_IF_5740 (60000000), id c00000007, size=192. [ 167.017084] xc2028 2-0061: Reading firmware type SCODE HAS_IF_5900 (60000000), id 0, size=192. [ 167.017091] xc2028 2-0061: Reading firmware type MONO SCODE HAS_IF_6000 (60008000), id c04c000f0, size=192. [ 167.017099] xc2028 2-0061: Reading firmware type DTV6 QAM ATSC LG60 F6MHZ SCODE HAS_IF_6200 (68050060), id 0, size=192. [ 167.017108] xc2028 2-0061: Reading firmware type SCODE HAS_IF_6240 (60000000), id 10, size=192. [ 167.017115] xc2028 2-0061: Reading firmware type MONO SCODE HAS_IF_6320 (60008000), id 200000, size=192. [ 167.017123] xc2028 2-0061: Reading firmware type SCODE HAS_IF_6340 (60000000), id 200000, size=192. [ 167.017130] xc2028 2-0061: Reading firmware type MONO SCODE HAS_IF_6500 (60008000), id c044000e0, size=192. [ 167.017138] xc2028 2-0061: Reading firmware type DTV6 ATSC ATI638 SCODE HAS_IF_6580 (60090020), id 0, size=192. [ 167.017146] xc2028 2-0061: Reading firmware type SCODE HAS_IF_6600 (60000000), id 3000000e0, size=192. [ 167.017154] xc2028 2-0061: Reading firmware type MONO SCODE HAS_IF_6680 (60008000), id 3000000e0, size=192. [ 167.017162] xc2028 2-0061: Reading firmware type DTV6 ATSC TOYOTA794 SCODE HAS_IF_8140 (60810020), id 0, size=192. [ 167.017171] xc2028 2-0061: Reading firmware type SCODE HAS_IF_8200 (60000000), id 0, size=192. [ 167.017188] xc2028 2-0061: Firmware files loaded. [ 167.017192] xc2028 2-0061: checking firmware, user requested type=F8MHZ D2620 DTV7 (8a), id 0000000000000000, scode_tbl (0), scode_nr 0 [ 167.017201] callback: ddb23b80 [ 167.017205] cx88[0]/2-dvb: cx88_xc3028_callback: XC2028_TUNER_RESET 0 [ 167.017209] setting GPIO to TV! [ 167.761794] xc2028 2-0061: load_firmware called [ 167.761799] xc2028 2-0061: seek_firmware called, want type=BASE F8MHZ D2620 DTV7 (8b), id 0000000000000000. [ 167.761807] xc2028 2-0061: Found firmware for type=BASE F8MHZ (3), id 0000000000000000. [ 167.761813] xc2028 2-0061: Loading firmware for type=BASE F8MHZ (3), id 0000000000000000. [ 167.761819] cx88[0]/2-dvb: cx88_xc3028_callback: XC2028_TUNER_RESET 0 [ 167.761822] setting GPIO to TV! [ 168.512587] dvb_frontend_ioctl [ 85.009452] five<7>xc2028 2-0061: Load init1 firmware, if exists [ 85.009461] xc2028 2-0061: load_firmware called [ 85.009463] xc2028 2-0061: seek_firmware called, want type=BASE INIT1 F8MHZ D2620 DTV7 (408b), id 0000000000000000. [ 85.009470] xc2028 2-0061: Can't find firmware for type=BASE INIT1 F8MHZ (4003), id 0000000000000000. [ 85.009473] xc2028 2-0061: load_firmware called [ 85.009475] xc2028 2-0061: seek_firmware called, want type=BASE INIT1 D2620 DTV7 (4089), id 0000000000000000. [ 85.009480] xc2028 2-0061: Can't find firmware for type=BASE INIT1 (4001), id 0000000000000000. [ 85.009482] Skip base<7>xc2028 2-0061: load_firmware called [ 85.009485] xc2028 2-0061: seek_firmware called, want type=F8MHZ D2620 DTV7 (8a), id 0000000000000000. [ 85.009488] xc2028 2-0061: Found firmware for type=D2620 DTV7 (88), id 0000000000000000. [ 85.009491] xc2028 2-0061: Loading firmware for type=D2620 DTV7 (88), id 0000000000000000. [ 85.023254] xc2028 2-0061: Trying to load scode 0 [ 85.023257] xc2028 2-0061: load_scode called [ 85.023259] xc2028 2-0061: seek_firmware called, want type=F8MHZ D2620 DTV7 SCODE (2000008a), id 0000000000000000. [ 85.023264] xc2028 2-0061: Can't find firmware for type=DTV7 SCODE (20000080), id 0000000000000000. [ 85.023267] xc2028 2-0061: xc2028_get_reg 0004 called [ 85.024461] xc2028 2-0061: xc2028_get_reg 0008 called [ 85.025211] xc2028 2-0061: Device is Xceive 3028 version 1.0, firmware version 2.7 [ 85.040489] cx88[0]/2-dvb: cx88_xc3028_callback: XC2028_RESET_CLK 1 [ 85.160383] xc2028 2-0061: divisor= 00 00 32 b8 (freq=205.625) [ 85.362226] dvb_frontend_ioctl [ 95.136175] dvb_frontend_ioctl [ 95.337363] dvb_frontend_ioctl [ 95.538537] dvb_frontend_ioctl [ 95.733733] dvb_frontend_add_event [ 95.733918] dvb_frontend_swzigzag_autotune: drift:0 inversion:1 auto_step:0 auto_sub_step:1 started_auto_step:0 [ 95.736624] zl10353: zl10353_calc_nominal_rate: bw 7, adc_clock 450560 => 0x5ae9 [ 95.737385] zl10353: zl10353_calc_input_freq: if2 361667, ife 88893, adc_clock 450560 => -12930 / 0xcd7e [ 95.738760] xc2028 2-0061: xc2028_set_params called [ 95.738763] xc2028 2-0061: generic_set_freq called [ 95.738986] xc2028 2-0061: should set frequency 205625 kHz [ 95.738989] xc2028 2-0061: check_firmware called [ 95.738991] xc2028 2-0061: checking firmware, user requested type=F8MHZ D2620 DTV7 (8a), id 0000000000000000, scode_tbl (0), scode_nr 0 [ 95.738997] xc2028 2-0061: BASE firmware not changed. [ 95.738999] Skip base<7>xc2028 2-0061: Std-specific firmware already loaded. [ 95.739002] xc2028 2-0061: SCODE firmware already loaded. [ 95.739004] xc2028 2-0061: xc2028_get_reg 0004 called [ 95.739914] dvb_frontend_ioctl [ 95.740726] xc2028 2-0061: xc2028_get_reg 0008 called [ 95.741478] xc2028 2-0061: Device is Xceive 3028 version 1.0, firmware version 2.7 [ 95.756472] cx88[0]/2-dvb: cx88_xc3028_callback: XC2028_RESET_CLK 1 [ 95.876356] xc2028 2-0061: divisor= 00 00 32 b8 (freq=205.625) [ 96.078261] dvb_frontend_ioctl [ 96.279441] dvb_frontend_ioctl [ 173.554811] dvb_frontend_ioctl [ 173.756052] dvb_frontend_ioctl [ 173.757425] dvb_frontend_ioctl [ 173.757431] dvb_frontend_add_event [ 173.758070] dvb_frontend_swzigzag_autotune: drift:0 inversion:1 auto_step:0 auto_sub_step:0 started_auto_step:0 [ 173.760934] zl10353: zl10353_calc_nominal_rate: bw 7, adc_clock 450560 => 0x5ae9 [ 173.761828] zl10353: zl10353_calc_input_freq: if2 361667, ife 88893, adc_clock 450560 => -12930 / 0xcd7e [ 173.763385] xc2028 2-0061: xc2028_set_params called [ 173.763391] xc2028 2-0061: generic_set_freq called [ 173.763780] xc2028 2-0061: should set frequency 205625 kHz [ 173.763786] xc2028 2-0061: check_firmware called [ 173.763789] xc2028 2-0061: checking firmware, user requested type=F8MHZ D2620 DTV7 (8a), id 0000000000000000, scode_tbl (0), scode_nr 0 [ 173.763800] xc2028 2-0061: BASE firmware not changed. [ 173.763803] Skip base<7>xc2028 2-0061: Std-specific firmware already loaded. [ 173.763809] xc2028 2-0061: SCODE firmware already loaded. [ 173.763813] xc2028 2-0061: xc2028_get_reg 0004 called [ 173.765939] xc2028 2-0061: xc2028_get_reg 0008 called [ 173.768126] xc2028 2-0061: Device is Xceive 3028 version 1.0, firmware version 2.7 [ 173.782342] cx88[0]/2-dvb: cx88_xc3028_callback: XC2028_RESET_CLK 1 [ 173.902113] xc2028 2-0061: divisor= 00 00 32 b8 (freq=205.625) [ 173.957394] dvb_frontend_ioctl [ 174.158652] dvb_frontend_ioctl [ 174.359882] dvb_frontend_ioctl [ 174.561108] dvb_frontend_ioctl [ 174.762363] dvb_frontend_ioctl [ 174.903148] dvb_frontend_add_event [ 174.903426] dvb_frontend_swzigzag_autotune: drift:0 inversion:0 auto_step:0 auto_sub_step:1 started_auto_step:0 [ 174.906293] zl10353: zl10353_calc_nominal_rate: bw 7, adc_clock 450560 => 0x5ae9 [ 174.907186] zl10353: zl10353_calc_input_freq: if2 361667, ife 88893, adc_clock 450560 => -12930 / 0xcd7e [ 174.908720] xc2028 2-0061: xc2028_set_params called [ 174.908726] xc2028 2-0061: generic_set_freq called [ 174.909161] xc2028 2-0061: should set frequency 205625 kHz [ 174.909167] xc2028 2-0061: check_firmware called [ 174.909171] xc2028 2-0061: checking firmware, user requested type=F8MHZ D2620 DTV7 (8a), id 0000000000000000, scode_tbl (0), scode_nr 0 [ 174.909181] xc2028 2-0061: BASE firmware not changed. [ 174.909184] Skip base<7>xc2028 2-0061: Std-specific firmware already loaded. [ 174.909190] xc2028 2-0061: SCODE firmware already loaded. [ 174.909194] xc2028 2-0061: xc2028_get_reg 0004 called [ 174.911370] xc2028 2-0061: xc2028_get_reg 0008 called [ 174.912227] xc2028 2-0061: Device is Xceive 3028 version 1.0, firmware version 2.7 [ 174.925768] cx88[0]/2-dvb: cx88_xc3028_callback: XC2028_RESET_CLK 1 [ 174.963629] dvb_frontend_ioctl [ 175.045724] xc2028 2-0061: divisor= 00 00 32 b8 (freq=205.625) [ 175.247850] dvb_frontend_ioctl [ 175.449076] dvb_frontend_ioctl [ 175.650321] dvb_frontend_ioctl [ 175.851554] dvb_frontend_ioctl [ 175.852892] dvb_frontend_release [ 175.852897] cx88[0]/2-dvb: cx8802_dvb_advise_release [ 176.045401] xc2028 2-0061: xc2028_sleep called -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. _______________________________________________ linux-dvb mailing list linux-dvb@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb