Im not sure exactly when it broke but alot of changes have happened in em28xx lately and they've broken my Kworld 330u. The issue is that ctl->demod = XC3028_FE_CHINA; ctl->fname = XC2028_DEFAULT_FIRMWARE; cfg.ctrl = &ctl; are no longer being set, this causes xc2028_attach if (cfg->ctrl) xc2028_set_config(fe, cfg->ctrl); to never get called. Therefore never load the firmware. Ive attached my logs to show you what I mean. I quickly hacked up a patch, my tree is quite different from V4L's now so the line numbers may not lineup anymore, and Im sure you guys wont like it anyhow lol Chris Lee
# Old v4l drivers Jan 9 20:00:14 dvb kernel: [85237.940003] em28xx: unknown parameter 'adapter_nr' ignored Jan 9 20:00:14 dvb kernel: [85237.940371] em28xx: New device USB 2883 Device @ 480 Mbps (eb1a:a316, interface 0, class 0) Jan 9 20:00:14 dvb kernel: [85237.940374] em28xx: Audio interface 0 found (Vendor Class) Jan 9 20:00:14 dvb kernel: [85237.940375] em28xx: Video interface 0 found: isoc Jan 9 20:00:14 dvb kernel: [85237.940377] em28xx: DVB interface 0 found: isoc Jan 9 20:00:14 dvb kernel: [85237.940550] em28xx: chip ID is em2882/3 Jan 9 20:00:14 dvb kernel: [84925.745451] waiting module removal not supported: please upgrade Jan 9 20:00:14 dvb kernel: [85238.107373] em2882/3 #0: i2c eeprom 00: 1a eb 67 95 1a eb 16 a3 d0 13 5c 03 6a 22 00 00 Jan 9 20:00:14 dvb kernel: [85238.107379] em2882/3 #0: i2c eeprom 10: 00 00 04 57 4e 07 01 00 00 00 00 00 00 00 00 00 Jan 9 20:00:14 dvb kernel: [85238.107383] em2882/3 #0: i2c eeprom 20: 4e 00 01 00 f0 10 01 00 b8 00 00 00 5b 32 00 00 Jan 9 20:00:14 dvb kernel: [85238.107387] em2882/3 #0: i2c eeprom 30: 00 00 20 40 20 80 02 20 01 01 00 00 00 00 00 00 Jan 9 20:00:14 dvb kernel: [85238.107391] em2882/3 #0: i2c eeprom 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jan 9 20:00:14 dvb kernel: [85238.107395] em2882/3 #0: i2c eeprom 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jan 9 20:00:14 dvb kernel: [85238.107399] em2882/3 #0: i2c eeprom 60: 00 00 00 00 00 00 00 00 00 00 22 03 55 00 53 00 Jan 9 20:00:14 dvb kernel: [85238.107403] em2882/3 #0: i2c eeprom 70: 42 00 20 00 32 00 38 00 38 00 33 00 20 00 44 00 Jan 9 20:00:14 dvb kernel: [85238.107407] em2882/3 #0: i2c eeprom 80: 65 00 76 00 69 00 63 00 65 00 00 00 00 00 00 00 Jan 9 20:00:14 dvb kernel: [85238.107411] em2882/3 #0: i2c eeprom 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jan 9 20:00:14 dvb kernel: [85238.107415] em2882/3 #0: i2c eeprom a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jan 9 20:00:14 dvb kernel: [85238.107419] em2882/3 #0: i2c eeprom b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jan 9 20:00:14 dvb kernel: [85238.107422] em2882/3 #0: i2c eeprom c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jan 9 20:00:14 dvb kernel: [85238.107426] em2882/3 #0: i2c eeprom d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jan 9 20:00:14 dvb kernel: [85238.107430] em2882/3 #0: i2c eeprom e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jan 9 20:00:14 dvb kernel: [85238.107434] em2882/3 #0: i2c eeprom f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jan 9 20:00:14 dvb kernel: [85238.107439] em2882/3 #0: EEPROM ID = 1a eb 67 95, EEPROM hash = 0x02210101 Jan 9 20:00:14 dvb kernel: [85238.107440] em2882/3 #0: EEPROM info: Jan 9 20:00:14 dvb kernel: [85238.107440] em2882/3 #0: AC97 audio (5 sample rates) Jan 9 20:00:14 dvb kernel: [85238.107441] em2882/3 #0: 500mA max power Jan 9 20:00:14 dvb kernel: [85238.107442] em2882/3 #0: Table at offset 0x04, strings=0x226a, 0x0000, 0x0000 Jan 9 20:00:14 dvb kernel: [85238.107443] em2882/3 #0: Identified as Kworld PlusTV HD Hybrid 330 (card=57) Jan 9 20:00:14 dvb kernel: [85238.173911] tvp5150 0-005c: chip found @ 0xb8 (em2882/3 #0) Jan 9 20:00:14 dvb kernel: [85238.173915] tvp5150 0-005c: tvp5150am1 detected. Jan 9 20:00:14 dvb kernel: [85238.193698] tuner 0-0061: Tuner -1 found with type(s) Radio TV. Jan 9 20:00:14 dvb kernel: [85238.195799] xc2028 0-0061: creating new instance Jan 9 20:00:14 dvb kernel: [85238.195804] xc2028 0-0061: type set to XCeive xc2028/xc3028 tuner Jan 9 20:00:14 dvb kernel: [85238.195808] xc2028 0-0061: xc2028_set_config called Jan 9 20:00:14 dvb kernel: [85238.195816] xc2028 0-0061: xc2028_set_analog_freq called Jan 9 20:00:14 dvb kernel: [85238.195820] xc2028 0-0061: generic_set_freq called Jan 9 20:00:14 dvb kernel: [85238.195823] xc2028 0-0061: should set frequency 567250 kHz Jan 9 20:00:14 dvb kernel: [85238.195826] xc2028 0-0061: check_firmware called Jan 9 20:00:14 dvb kernel: [85238.195918] em2882/3 #0: Config register raw data: 0xd0 Jan 9 20:00:14 dvb kernel: [85238.196636] em2882/3 #0: AC97 vendor ID = 0xffffffff Jan 9 20:00:14 dvb kernel: [85238.197011] em2882/3 #0: AC97 features = 0x6a90 Jan 9 20:00:14 dvb kernel: [85238.197013] em2882/3 #0: Empia 202 AC97 audio processor detected Jan 9 20:00:14 dvb kernel: [85238.197772] xc2028 0-0061: request_firmware_nowait(): OK Jan 9 20:00:14 dvb kernel: [85238.197776] xc2028 0-0061: load_all_firmwares called Jan 9 20:00:14 dvb kernel: [85238.197780] xc2028 0-0061: Loading 80 firmware images from xc3028-v27.fw, type: xc2028 firmware, ver 2.7 Jan 9 20:00:14 dvb kernel: [85238.197787] xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197791] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197800] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197808] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197811] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197814] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197817] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197820] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197823] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197826] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197828] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197831] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197833] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197836] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197839] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197842] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197844] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197847] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197849] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197852] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197854] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197857] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197860] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197863] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197866] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197868] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197871] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197874] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197876] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197880] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197884] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197889] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197893] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197897] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197901] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197904] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197907] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197910] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197913] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197916] xc2028 0-0061: Reading firmware type xc2028 0-0061: Reading firmware type Jan 9 20:00:14 dvb kernel: [85238.197918] xc2028 0-0061: Reading firmware type <7>[85238.197920] xc2028 0-0061: Firmware files loaded. Jan 9 20:00:15 dvb kernel: [85238.382496] em2882/3 #0: v4l2 driver version 0.2.0 Jan 9 20:00:15 dvb kernel: [85238.382999] xc2028 0-0061: xc2028_set_analog_freq called Jan 9 20:00:15 dvb kernel: [85238.383004] xc2028 0-0061: generic_set_freq called Jan 9 20:00:15 dvb kernel: [85238.383006] xc2028 0-0061: should set frequency 567250 kHz Jan 9 20:00:15 dvb kernel: [85238.383008] xc2028 0-0061: check_firmware called Jan 9 20:00:15 dvb kernel: [85238.383010] xc2028 0-0061: checking firmware, user requested type= Jan 9 20:00:15 dvb kernel: [85238.429568] xc2028 0-0061: load_firmware called Jan 9 20:00:15 dvb kernel: [85238.429572] xc2028 0-0061: seek_firmware called, want type= Jan 9 20:00:15 dvb kernel: [85238.429575] xc2028 0-0061: Found firmware for type=xc2028 0-0061: Loading firmware for type=BASE F8MHZ MTS (7), id 0000000000000000. Jan 9 20:00:16 dvb kernel: [85239.445770] xc2028 0-0061: Load init1 firmware, if exists Jan 9 20:00:16 dvb kernel: [85239.445774] xc2028 0-0061: load_firmware called Jan 9 20:00:16 dvb kernel: [85239.445777] xc2028 0-0061: seek_firmware called, want type= Jan 9 20:00:16 dvb kernel: [85239.445779] xc2028 0-0061: Can't find firmware for type=<7>[85239.445781] xc2028 0-0061: load_firmware called Jan 9 20:00:16 dvb kernel: [85239.445783] xc2028 0-0061: seek_firmware called, want type= Jan 9 20:00:16 dvb kernel: [85239.445785] xc2028 0-0061: Can't find firmware for type=<7>[85239.445787] xc2028 0-0061: load_firmware called Jan 9 20:00:16 dvb kernel: [85239.445788] xc2028 0-0061: seek_firmware called, want type= Jan 9 20:00:16 dvb kernel: [85239.445791] xc2028 0-0061: Selecting best matching firmware (3 bits) for type=MTS (4), id 00000000000000ff: Jan 9 20:00:16 dvb kernel: [85239.445795] xc2028 0-0061: Found firmware for type= Jan 9 20:00:16 dvb kernel: [85239.445796] xc2028 0-0061: Loading firmware for type=MTS (4), id 0000000100000007. Jan 9 20:00:16 dvb kernel: [85239.463055] xc2028 0-0061: Trying to load scode 0 Jan 9 20:00:16 dvb kernel: [85239.463058] xc2028 0-0061: load_scode called Jan 9 20:00:16 dvb kernel: [85239.463060] xc2028 0-0061: seek_firmware called, want type= Jan 9 20:00:16 dvb kernel: [85239.463062] xc2028 0-0061: Can't find firmware for type=<7>[85239.463065] xc2028 0-0061: xc2028_get_reg 0004 called Jan 9 20:00:16 dvb kernel: [85239.464023] xc2028 0-0061: xc2028_get_reg 0008 called Jan 9 20:00:16 dvb kernel: [85239.465006] xc2028 0-0061: Device is Xceive 3028 version 1.0, firmware version 2.7 Jan 9 20:00:16 dvb kernel: [85239.586033] xc2028 0-0061: divisor= 00 00 8d d0 (freq=567.250) Jan 9 20:00:16 dvb kernel: [85239.798822] em2882/3 #0: V4L2 video device registered as video0 Jan 9 20:00:16 dvb kernel: [85239.798826] em2882/3 #0: V4L2 VBI device registered as vbi0 Jan 9 20:00:16 dvb kernel: [85239.798830] xc2028 0-0061: Putting xc2028/3028 into poweroff mode. Jan 9 20:00:16 dvb kernel: [85239.799518] em2882/3 #0: analog set to isoc mode. Jan 9 20:00:16 dvb kernel: [85239.799522] em2882/3 #0: dvb set to isoc mode. Jan 9 20:00:16 dvb kernel: [85239.799987] usbcore: registered new interface driver em28xx Jan 9 20:00:16 dvb kernel: [85239.802358] em28xx-audio.c: probing for em28xx Audio Vendor Class Jan 9 20:00:16 dvb kernel: [85239.802362] em28xx-audio.c: Copyright (C) 2006 Markus Rechberger Jan 9 20:00:16 dvb kernel: [85239.802364] em28xx-audio.c: Copyright (C) 2007-2011 Mauro Carvalho Chehab Jan 9 20:00:16 dvb kernel: [85239.802374] xc2028 0-0061: Putting xc2028/3028 into poweroff mode. Jan 9 20:00:16 dvb kernel: [85239.802604] Em28xx: Initialized (Em28xx Audio Extension) extension Jan 9 20:00:16 dvb kernel: [85240.017366] s5h1409_init() Jan 9 20:00:16 dvb kernel: [85240.017372] s5h1409_sleep(0) Jan 9 20:00:16 dvb kernel: [85240.018042] s5h1409_register_reset() Jan 9 20:00:16 dvb kernel: [85240.044985] s5h1409_set_spectralinversion(0) Jan 9 20:00:16 dvb kernel: [85240.045532] s5h1409_set_if_freq(5380 KHz) Jan 9 20:00:16 dvb kernel: [85240.047154] s5h1409_set_gpio(0) Jan 9 20:00:16 dvb kernel: [85240.048610] s5h1409_set_mpeg_timing(1) Jan 9 20:00:16 dvb kernel: [85240.049520] s5h1409_set_mpeg_timing(1) Mode1 or Defaulting Jan 9 20:00:16 dvb kernel: [85240.050111] s5h1409_softreset() Jan 9 20:00:16 dvb kernel: [85240.052371] xc2028 0-0061: attaching existing instance Jan 9 20:00:16 dvb kernel: [85240.052374] xc2028 0-0061: type set to XCeive xc2028/xc3028 tuner Jan 9 20:00:16 dvb kernel: [85240.052376] em2882/3 #0: em2882/3 #0/2: xc3028 attached Jan 9 20:00:16 dvb kernel: [85240.052378] DVB: registering new adapter (em2882/3 #0) Jan 9 20:00:16 dvb kernel: [85240.052383] usb 2-1.8: DVB: registering adapter 0 frontend 0 (inDtube / Kworld 330U)... Jan 9 20:00:16 dvb kernel: [85240.052829] em2882/3 #0: Successfully loaded em28xx-dvb Jan 9 20:00:16 dvb kernel: [85240.052835] Em28xx: Initialized (Em28xx dvb Extension) extension Jan 9 20:00:16 dvb kernel: [85240.053651] xc2028 0-0061: Putting xc2028/3028 into poweroff mode. Jan 9 20:00:16 dvb kernel: [85240.053988] xc2028 0-0061: Error on line 1297: -19 # Latest v4l drivers Jan 9 20:01:43 dvb kernel: [85290.472976] waiting module removal not supported: please upgrade<4>[85327.242555] em28xx: unknown parameter 'adapter_nr' ignored Jan 9 20:01:43 dvb kernel: [85327.242980] em28xx: New device USB 2883 Device @ 480 Mbps (eb1a:a316, interface 0, class 0) Jan 9 20:01:43 dvb kernel: [85327.242983] em28xx: Audio interface 0 found (Vendor Class) Jan 9 20:01:43 dvb kernel: [85327.242985] em28xx: Video interface 0 found: isoc Jan 9 20:01:43 dvb kernel: [85327.242987] em28xx: DVB interface 0 found: isoc Jan 9 20:01:43 dvb kernel: [85327.243088] em28xx: chip ID is em2882/3 Jan 9 20:01:44 dvb kernel: [85290.481200] waiting module removal not supported: please upgrade Jan 9 20:01:44 dvb kernel: [85327.411425] em2882/3 #0: i2c eeprom 00: 1a eb 67 95 1a eb 16 a3 d0 13 5c 03 6a 22 00 00 Jan 9 20:01:44 dvb kernel: [85327.411438] em2882/3 #0: i2c eeprom 10: 00 00 04 57 4e 07 01 00 00 00 00 00 00 00 00 00 Jan 9 20:01:44 dvb kernel: [85327.411446] em2882/3 #0: i2c eeprom 20: 4e 00 01 00 f0 10 01 00 b8 00 00 00 5b 32 00 00 Jan 9 20:01:44 dvb kernel: [85327.411454] em2882/3 #0: i2c eeprom 30: 00 00 20 40 20 80 02 20 01 01 00 00 00 00 00 00 Jan 9 20:01:44 dvb kernel: [85327.411462] em2882/3 #0: i2c eeprom 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jan 9 20:01:44 dvb kernel: [85327.411470] em2882/3 #0: i2c eeprom 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jan 9 20:01:44 dvb kernel: [85327.411478] em2882/3 #0: i2c eeprom 60: 00 00 00 00 00 00 00 00 00 00 22 03 55 00 53 00 Jan 9 20:01:44 dvb kernel: [85327.411486] em2882/3 #0: i2c eeprom 70: 42 00 20 00 32 00 38 00 38 00 33 00 20 00 44 00 Jan 9 20:01:44 dvb kernel: [85327.411495] em2882/3 #0: i2c eeprom 80: 65 00 76 00 69 00 63 00 65 00 00 00 00 00 00 00 Jan 9 20:01:44 dvb kernel: [85327.411503] em2882/3 #0: i2c eeprom 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jan 9 20:01:44 dvb kernel: [85327.411511] em2882/3 #0: i2c eeprom a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jan 9 20:01:44 dvb kernel: [85327.411519] em2882/3 #0: i2c eeprom b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jan 9 20:01:44 dvb kernel: [85327.411527] em2882/3 #0: i2c eeprom c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jan 9 20:01:44 dvb kernel: [85327.411534] em2882/3 #0: i2c eeprom d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jan 9 20:01:44 dvb kernel: [85327.411542] em2882/3 #0: i2c eeprom e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jan 9 20:01:44 dvb kernel: [85327.411550] em2882/3 #0: i2c eeprom f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jan 9 20:01:44 dvb kernel: [85327.411560] em2882/3 #0: EEPROM ID = 1a eb 67 95, EEPROM hash = 0x02210101 Jan 9 20:01:44 dvb kernel: [85327.411562] em2882/3 #0: EEPROM info: Jan 9 20:01:44 dvb kernel: [85327.411563] em2882/3 #0: AC97 audio (5 sample rates) Jan 9 20:01:44 dvb kernel: [85327.411565] em2882/3 #0: 500mA max power Jan 9 20:01:44 dvb kernel: [85327.411567] em2882/3 #0: Table at offset 0x04, strings=0x226a, 0x0000, 0x0000 Jan 9 20:01:44 dvb kernel: [85327.411569] em2882/3 #0: Identified as Kworld PlusTV HD Hybrid 330 (card=57) Jan 9 20:01:44 dvb kernel: [85327.411571] em2882/3 #0: analog set to isoc mode. Jan 9 20:01:44 dvb kernel: [85327.411573] em2882/3 #0: dvb set to isoc mode. Jan 9 20:01:44 dvb kernel: [85327.411992] usbcore: registered new interface driver em28xx Jan 9 20:01:44 dvb kernel: [85327.416170] em2882/3 #0: Binding audio extension Jan 9 20:01:44 dvb kernel: [85327.416173] em28xx-audio.c: Copyright (C) 2006 Markus Rechberger Jan 9 20:01:44 dvb kernel: [85327.416174] em28xx-audio.c: Copyright (C) 2007-2011 Mauro Carvalho Chehab Jan 9 20:01:44 dvb kernel: [85327.416350] em2882/3 #0: Audio extension successfully initialized Jan 9 20:01:44 dvb kernel: [85327.416354] em28xx: Registered (Em28xx Audio Extension) extension Jan 9 20:01:44 dvb kernel: [85327.421550] em2882/3 #0: Binding DVB extension Jan 9 20:01:44 dvb kernel: [85327.467050] s5h1409_init() Jan 9 20:01:44 dvb kernel: [85327.467053] s5h1409_sleep(0) Jan 9 20:01:44 dvb kernel: [85327.467667] s5h1409_register_reset() Jan 9 20:01:44 dvb kernel: [85327.493035] s5h1409_set_spectralinversion(0) Jan 9 20:01:44 dvb kernel: [85327.493533] s5h1409_set_if_freq(5380 KHz) Jan 9 20:01:44 dvb kernel: [85327.495034] s5h1409_set_gpio(0) Jan 9 20:01:44 dvb kernel: [85327.496426] s5h1409_set_mpeg_timing(1) Jan 9 20:01:44 dvb kernel: [85327.497303] s5h1409_set_mpeg_timing(1) Mode1 or Defaulting Jan 9 20:01:44 dvb kernel: [85327.497927] s5h1409_softreset() Jan 9 20:01:44 dvb kernel: [85327.501485] xc2028: Xcv2028/3028 init called! Jan 9 20:01:44 dvb kernel: [85327.501487] xc2028 0-0061: creating new instance Jan 9 20:01:44 dvb kernel: [85327.501488] xc2028 0-0061: type set to XCeive xc2028/xc3028 tuner Jan 9 20:01:44 dvb kernel: [85327.501489] em2882/3 #0: em2882/3 #0/2: xc3028 attached Jan 9 20:01:44 dvb kernel: [85327.501490] DVB: registering new adapter (em2882/3 #0) Jan 9 20:01:44 dvb kernel: [85327.501495] usb 2-1.8: DVB: registering adapter 0 frontend 0 (inDtube / Kworld 330U)... Jan 9 20:01:44 dvb kernel: [85327.503443] em2882/3 #0: DVB extension successfully initialized Jan 9 20:01:44 dvb kernel: [85327.503455] em28xx: Registered (Em28xx dvb Extension) extension Jan 9 20:01:44 dvb kernel: [85328.049392] em2882/3 #0: submit of audio urb failed # My changes Jan 9 20:46:45 dvb kernel: [87993.910769] waiting module removal not supported: please upgrade<4>[88029.712438] em28xx: unknown parameter 'adapter_nr' ignored Jan 9 20:46:45 dvb kernel: [88029.712784] em28xx: New device USB 2883 Device @ 480 Mbps (eb1a:a316, interface 0, class 0) Jan 9 20:46:45 dvb kernel: [88029.712787] em28xx: Audio interface 0 found (Vendor Class) Jan 9 20:46:45 dvb kernel: [88029.712789] em28xx: Video interface 0 found: isoc Jan 9 20:46:45 dvb kernel: [88029.712790] em28xx: DVB interface 0 found: isoc Jan 9 20:46:45 dvb kernel: [88029.712857] em28xx: chip ID is em2882/3 Jan 9 20:46:45 dvb kernel: [87993.924305] waiting module removal not supported: please upgrade Jan 9 20:46:45 dvb kernel: [88029.881550] em2882/3 #0: i2c eeprom 00: 1a eb 67 95 1a eb 16 a3 d0 13 5c 03 6a 22 00 00 Jan 9 20:46:45 dvb kernel: [88029.881557] em2882/3 #0: i2c eeprom 10: 00 00 04 57 4e 07 01 00 00 00 00 00 00 00 00 00 Jan 9 20:46:45 dvb kernel: [88029.881561] em2882/3 #0: i2c eeprom 20: 4e 00 01 00 f0 10 01 00 b8 00 00 00 5b 32 00 00 Jan 9 20:46:45 dvb kernel: [88029.881565] em2882/3 #0: i2c eeprom 30: 00 00 20 40 20 80 02 20 01 01 00 00 00 00 00 00 Jan 9 20:46:45 dvb kernel: [88029.881569] em2882/3 #0: i2c eeprom 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jan 9 20:46:45 dvb kernel: [88029.881573] em2882/3 #0: i2c eeprom 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jan 9 20:46:45 dvb kernel: [88029.881577] em2882/3 #0: i2c eeprom 60: 00 00 00 00 00 00 00 00 00 00 22 03 55 00 53 00 Jan 9 20:46:45 dvb kernel: [88029.881581] em2882/3 #0: i2c eeprom 70: 42 00 20 00 32 00 38 00 38 00 33 00 20 00 44 00 Jan 9 20:46:45 dvb kernel: [88029.881585] em2882/3 #0: i2c eeprom 80: 65 00 76 00 69 00 63 00 65 00 00 00 00 00 00 00 Jan 9 20:46:45 dvb kernel: [88029.881589] em2882/3 #0: i2c eeprom 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jan 9 20:46:45 dvb kernel: [88029.881593] em2882/3 #0: i2c eeprom a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jan 9 20:46:45 dvb kernel: [88029.881597] em2882/3 #0: i2c eeprom b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jan 9 20:46:45 dvb kernel: [88029.881601] em2882/3 #0: i2c eeprom c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jan 9 20:46:45 dvb kernel: [88029.881605] em2882/3 #0: i2c eeprom d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jan 9 20:46:45 dvb kernel: [88029.881609] em2882/3 #0: i2c eeprom e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jan 9 20:46:45 dvb kernel: [88029.881613] em2882/3 #0: i2c eeprom f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jan 9 20:46:45 dvb kernel: [88029.881618] em2882/3 #0: EEPROM ID = 1a eb 67 95, EEPROM hash = 0x02210101 Jan 9 20:46:45 dvb kernel: [88029.881619] em2882/3 #0: EEPROM info: Jan 9 20:46:45 dvb kernel: [88029.881620] em2882/3 #0: AC97 audio (5 sample rates) Jan 9 20:46:45 dvb kernel: [88029.881621] em2882/3 #0: 500mA max power Jan 9 20:46:45 dvb kernel: [88029.881622] em2882/3 #0: Table at offset 0x04, strings=0x226a, 0x0000, 0x0000 Jan 9 20:46:45 dvb kernel: [88029.881623] em2882/3 #0: Identified as Kworld PlusTV HD Hybrid 330 (card=57) Jan 9 20:46:45 dvb kernel: [88029.881624] em2882/3 #0: analog set to isoc mode. Jan 9 20:46:45 dvb kernel: [88029.881625] em2882/3 #0: dvb set to isoc mode. Jan 9 20:46:45 dvb kernel: [88029.882099] usbcore: registered new interface driver em28xx Jan 9 20:46:45 dvb kernel: [88029.884412] em2882/3 #0: Binding audio extension Jan 9 20:46:45 dvb kernel: [88029.884414] em28xx-audio.c: Copyright (C) 2006 Markus Rechberger Jan 9 20:46:45 dvb kernel: [88029.884415] em28xx-audio.c: Copyright (C) 2007-2011 Mauro Carvalho Chehab Jan 9 20:46:45 dvb kernel: [88029.884543] em2882/3 #0: Audio extension successfully initialized Jan 9 20:46:45 dvb kernel: [88029.884546] em28xx: Registered (Em28xx Audio Extension) extension Jan 9 20:46:45 dvb kernel: [88029.887339] em2882/3 #0: Binding DVB extension Jan 9 20:46:45 dvb kernel: [88029.933694] s5h1409_init() Jan 9 20:46:45 dvb kernel: [88029.933697] s5h1409_sleep(0) Jan 9 20:46:45 dvb kernel: [88029.934311] s5h1409_register_reset() Jan 9 20:46:45 dvb kernel: [88029.960055] s5h1409_set_spectralinversion(0) Jan 9 20:46:45 dvb kernel: [88029.960553] s5h1409_set_if_freq(5380 KHz) Jan 9 20:46:45 dvb kernel: [88029.962071] s5h1409_set_gpio(0) Jan 9 20:46:45 dvb kernel: [88029.963430] s5h1409_set_mpeg_timing(1) Jan 9 20:46:45 dvb kernel: [88029.964322] s5h1409_set_mpeg_timing(1) Mode1 or Defaulting Jan 9 20:46:45 dvb kernel: [88029.964822] s5h1409_softreset() Jan 9 20:46:45 dvb kernel: [88029.968094] xc2028: Xcv2028/3028 init called! Jan 9 20:46:45 dvb kernel: [88029.968096] xc2028 0-0061: creating new instance Jan 9 20:46:45 dvb kernel: [88029.968097] xc2028 0-0061: type set to XCeive xc2028/xc3028 tuner Jan 9 20:46:45 dvb kernel: [88029.968098] xc2028 0-0061: xc2028_set_config called Jan 9 20:46:45 dvb kernel: [88029.968102] em2882/3 #0: em2882/3 #0/2: xc3028 attached Jan 9 20:46:45 dvb kernel: [88029.968153] DVB: registering new adapter (em2882/3 #0) Jan 9 20:46:45 dvb kernel: [88029.968156] usb 2-1.8: DVB: registering adapter 0 frontend 0 (inDtube / Kworld 330U)... Jan 9 20:46:45 dvb kernel: [88029.968361] em2882/3 #0: DVB extension successfully initialized Jan 9 20:46:45 dvb kernel: [88029.968366] em28xx: Registered (Em28xx dvb Extension) extension Jan 9 20:46:45 dvb kernel: [88029.970022] xc2028 0-0061: request_firmware_nowait(): OK Jan 9 20:46:45 dvb kernel: [88029.970024] xc2028 0-0061: load_all_firmwares called Jan 9 20:46:45 dvb kernel: [88029.970025] xc2028 0-0061: Loading 80 firmware images from xc3028-v27.fw, type: xc2028 firmware, ver 2.7 Jan 9 20:46:45 dvb kernel: [88029.970028] xc2028 0-0061: Reading firmware type BASE F8MHZ (3), id 0, size=8718. Jan 9 20:46:45 dvb kernel: [88029.970031] xc2028 0-0061: Reading firmware type BASE F8MHZ MTS (7), id 0, size=8712. Jan 9 20:46:45 dvb kernel: [88029.970034] xc2028 0-0061: Reading firmware type BASE FM (401), id 0, size=8562. Jan 9 20:46:45 dvb kernel: [88029.970037] xc2028 0-0061: Reading firmware type BASE FM INPUT1 (c01), id 0, size=8576. Jan 9 20:46:45 dvb kernel: [88029.970039] xc2028 0-0061: Reading firmware type BASE (1), id 0, size=8706. Jan 9 20:46:45 dvb kernel: [88029.970042] xc2028 0-0061: Reading firmware type BASE MTS (5), id 0, size=8682. Jan 9 20:46:45 dvb kernel: [88029.970043] xc2028 0-0061: Reading firmware type (0), id 100000007, size=161. Jan 9 20:46:45 dvb kernel: [88029.970045] xc2028 0-0061: Reading firmware type MTS (4), id 100000007, size=169. Jan 9 20:46:45 dvb kernel: [88029.970046] xc2028 0-0061: Reading firmware type (0), id 200000007, size=161. Jan 9 20:46:45 dvb kernel: [88029.970047] xc2028 0-0061: Reading firmware type MTS (4), id 200000007, size=169. Jan 9 20:46:45 dvb kernel: [88029.970048] xc2028 0-0061: Reading firmware type (0), id 400000007, size=161. Jan 9 20:46:45 dvb kernel: [88029.970049] xc2028 0-0061: Reading firmware type MTS (4), id 400000007, size=169. Jan 9 20:46:45 dvb kernel: [88029.970050] xc2028 0-0061: Reading firmware type (0), id 800000007, size=161. Jan 9 20:46:45 dvb kernel: [88029.970051] xc2028 0-0061: Reading firmware type MTS (4), id 800000007, size=169. Jan 9 20:46:45 dvb kernel: [88029.970052] xc2028 0-0061: Reading firmware type (0), id 3000000e0, size=161. Jan 9 20:46:45 dvb kernel: [88029.970053] xc2028 0-0061: Reading firmware type MTS (4), id 3000000e0, size=169. Jan 9 20:46:45 dvb kernel: [88029.970054] xc2028 0-0061: Reading firmware type (0), id c000000e0, size=161. Jan 9 20:46:45 dvb kernel: [88029.970055] xc2028 0-0061: Reading firmware type MTS (4), id c000000e0, size=169. Jan 9 20:46:45 dvb kernel: [88029.970056] xc2028 0-0061: Reading firmware type (0), id 200000, size=161. Jan 9 20:46:45 dvb kernel: [88029.970057] xc2028 0-0061: Reading firmware type MTS (4), id 200000, size=169. Jan 9 20:46:45 dvb kernel: [88029.970058] xc2028 0-0061: Reading firmware type (0), id 4000000, size=161. Jan 9 20:46:45 dvb kernel: [88029.970059] xc2028 0-0061: Reading firmware type MTS (4), id 4000000, size=169. Jan 9 20:46:45 dvb kernel: [88029.970060] xc2028 0-0061: Reading firmware type D2633 DTV6 ATSC (10030), id 0, size=149. Jan 9 20:46:45 dvb kernel: [88029.970062] xc2028 0-0061: Reading firmware type D2620 DTV6 QAM (68), id 0, size=149. Jan 9 20:46:45 dvb kernel: [88029.970064] xc2028 0-0061: Reading firmware type D2633 DTV6 QAM (70), id 0, size=149. Jan 9 20:46:45 dvb kernel: [88029.970065] xc2028 0-0061: Reading firmware type D2620 DTV7 (88), id 0, size=149. Jan 9 20:46:45 dvb kernel: [88029.970066] xc2028 0-0061: Reading firmware type D2633 DTV7 (90), id 0, size=149. Jan 9 20:46:45 dvb kernel: [88029.970067] xc2028 0-0061: Reading firmware type D2620 DTV78 (108), id 0, size=149. Jan 9 20:46:45 dvb kernel: [88029.970069] xc2028 0-0061: Reading firmware type D2633 DTV78 (110), id 0, size=149. Jan 9 20:46:45 dvb kernel: [88029.970070] xc2028 0-0061: Reading firmware type D2620 DTV8 (208), id 0, size=149. Jan 9 20:46:45 dvb kernel: [88029.970071] xc2028 0-0061: Reading firmware type D2633 DTV8 (210), id 0, size=149. Jan 9 20:46:45 dvb kernel: [88029.970072] xc2028 0-0061: Reading firmware type FM (400), id 0, size=135. Jan 9 20:46:45 dvb kernel: [88029.970073] xc2028 0-0061: Reading firmware type (0), id 10, size=161. Jan 9 20:46:45 dvb kernel: [88029.970074] xc2028 0-0061: Reading firmware type MTS (4), id 10, size=169. Jan 9 20:46:45 dvb kernel: [88029.970076] xc2028 0-0061: Reading firmware type (0), id 1000400000, size=169. Jan 9 20:46:45 dvb kernel: [88029.970077] xc2028 0-0061: Reading firmware type (0), id c00400000, size=161. Jan 9 20:46:45 dvb kernel: [88029.970078] xc2028 0-0061: Reading firmware type (0), id 800000, size=161. Jan 9 20:46:45 dvb kernel: [88029.970078] xc2028 0-0061: Reading firmware type (0), id 8000, size=161. Jan 9 20:46:45 dvb kernel: [88029.970079] xc2028 0-0061: Reading firmware type LCD (1000), id 8000, size=161. Jan 9 20:46:45 dvb kernel: [88029.970081] xc2028 0-0061: Reading firmware type LCD NOGD (3000), id 8000, size=161. Jan 9 20:46:45 dvb kernel: [88029.970082] xc2028 0-0061: Reading firmware type MTS (4), id 8000, size=169. Jan 9 20:46:45 dvb kernel: [88029.970083] xc2028 0-0061: Reading firmware type (0), id b700, size=161. Jan 9 20:46:45 dvb kernel: [88029.970084] xc2028 0-0061: Reading firmware type LCD (1000), id b700, size=161. Jan 9 20:46:45 dvb kernel: [88029.970085] xc2028 0-0061: Reading firmware type LCD NOGD (3000), id b700, size=161. Jan 9 20:46:45 dvb kernel: [88029.970086] xc2028 0-0061: Reading firmware type (0), id 2000, size=161. Jan 9 20:46:45 dvb kernel: [88029.970087] xc2028 0-0061: Reading firmware type MTS (4), id b700, size=169. Jan 9 20:46:45 dvb kernel: [88029.970089] xc2028 0-0061: Reading firmware type MTS LCD (1004), id b700, size=169. Jan 9 20:46:45 dvb kernel: [88029.970090] xc2028 0-0061: Reading firmware type MTS LCD NOGD (3004), id b700, size=169. Jan 9 20:46:45 dvb kernel: [88029.970091] xc2028 0-0061: Reading firmware type SCODE HAS_IF_3280 (60000000), id 0, size=192. Jan 9 20:46:45 dvb kernel: [88029.970093] xc2028 0-0061: Reading firmware type SCODE HAS_IF_3300 (60000000), id 0, size=192. Jan 9 20:46:45 dvb kernel: [88029.970094] xc2028 0-0061: Reading firmware type SCODE HAS_IF_3440 (60000000), id 0, size=192. Jan 9 20:46:45 dvb kernel: [88029.970095] xc2028 0-0061: Reading firmware type SCODE HAS_IF_3460 (60000000), id 0, size=192. Jan 9 20:46:45 dvb kernel: [88029.970097] xc2028 0-0061: Reading firmware type DTV6 ATSC OREN36 SCODE HAS_IF_3800 (60210020), id 0, size=192. Jan 9 20:46:45 dvb kernel: [88029.970099] xc2028 0-0061: Reading firmware type SCODE HAS_IF_4000 (60000000), id 0, size=192. Jan 9 20:46:45 dvb kernel: [88029.970100] xc2028 0-0061: Reading firmware type DTV6 ATSC TOYOTA388 SCODE HAS_IF_4080 (60410020), id 0, size=192. Jan 9 20:46:45 dvb kernel: [88029.970102] xc2028 0-0061: Reading firmware type SCODE HAS_IF_4200 (60000000), id 0, size=192. Jan 9 20:46:45 dvb kernel: [88029.970103] xc2028 0-0061: Reading firmware type MONO SCODE HAS_IF_4320 (60008000), id 8000, size=192. Jan 9 20:46:45 dvb kernel: [88029.970104] xc2028 0-0061: Reading firmware type SCODE HAS_IF_4450 (60000000), id 0, size=192. Jan 9 20:46:45 dvb kernel: [88029.970106] xc2028 0-0061: Reading firmware type MTS LCD NOGD MONO IF SCODE HAS_IF_4500 (6002b004), id b700, size=192. Jan 9 20:46:45 dvb kernel: [88029.970108] xc2028 0-0061: Reading firmware type LCD NOGD IF SCODE HAS_IF_4600 (60023000), id 8000, size=192. Jan 9 20:46:45 dvb kernel: [88029.970110] xc2028 0-0061: Reading firmware type DTV6 QAM DTV7 DTV78 DTV8 ZARLINK456 SCODE HAS_IF_4760 (620003e0), id 0, size=192. Jan 9 20:46:45 dvb kernel: [88029.970112] xc2028 0-0061: Reading firmware type SCODE HAS_IF_4940 (60000000), id 0, size=192. Jan 9 20:46:45 dvb kernel: [88029.970114] xc2028 0-0061: Reading firmware type SCODE HAS_IF_5260 (60000000), id 0, size=192. Jan 9 20:46:45 dvb kernel: [88029.970115] xc2028 0-0061: Reading firmware type MONO SCODE HAS_IF_5320 (60008000), id f00000007, size=192. Jan 9 20:46:45 dvb kernel: [88029.970116] xc2028 0-0061: Reading firmware type DTV7 DTV78 DTV8 DIBCOM52 CHINA SCODE HAS_IF_5400 (65000380), id 0, size=192. Jan 9 20:46:45 dvb kernel: [88029.970118] xc2028 0-0061: Reading firmware type DTV6 ATSC OREN538 SCODE HAS_IF_5580 (60110020), id 0, size=192. Jan 9 20:46:45 dvb kernel: [88029.970120] xc2028 0-0061: Reading firmware type SCODE HAS_IF_5640 (60000000), id 300000007, size=192. Jan 9 20:46:45 dvb kernel: [88029.970122] xc2028 0-0061: Reading firmware type SCODE HAS_IF_5740 (60000000), id c00000007, size=192. Jan 9 20:46:45 dvb kernel: [88029.970123] xc2028 0-0061: Reading firmware type SCODE HAS_IF_5900 (60000000), id 0, size=192. Jan 9 20:46:45 dvb kernel: [88029.970124] xc2028 0-0061: Reading firmware type MONO SCODE HAS_IF_6000 (60008000), id c04c000f0, size=192. Jan 9 20:46:45 dvb kernel: [88029.970126] xc2028 0-0061: Reading firmware type DTV6 QAM ATSC LG60 F6MHZ SCODE HAS_IF_6200 (68050060), id 0, size=192. Jan 9 20:46:45 dvb kernel: [88029.970128] xc2028 0-0061: Reading firmware type SCODE HAS_IF_6240 (60000000), id 10, size=192. Jan 9 20:46:45 dvb kernel: [88029.970129] xc2028 0-0061: Reading firmware type MONO SCODE HAS_IF_6320 (60008000), id 200000, size=192. Jan 9 20:46:45 dvb kernel: [88029.970131] xc2028 0-0061: Reading firmware type SCODE HAS_IF_6340 (60000000), id 200000, size=192. Jan 9 20:46:45 dvb kernel: [88029.970132] xc2028 0-0061: Reading firmware type MONO SCODE HAS_IF_6500 (60008000), id c044000e0, size=192. Jan 9 20:46:45 dvb kernel: [88029.970133] xc2028 0-0061: Reading firmware type DTV6 ATSC ATI638 SCODE HAS_IF_6580 (60090020), id 0, size=192. Jan 9 20:46:45 dvb kernel: [88029.970135] xc2028 0-0061: Reading firmware type SCODE HAS_IF_6600 (60000000), id 3000000e0, size=192. Jan 9 20:46:45 dvb kernel: [88029.970137] xc2028 0-0061: Reading firmware type MONO SCODE HAS_IF_6680 (60008000), id 3000000e0, size=192. Jan 9 20:46:45 dvb kernel: [88029.970138] xc2028 0-0061: Reading firmware type DTV6 ATSC TOYOTA794 SCODE HAS_IF_8140 (60810020), id 0, size=192. Jan 9 20:46:45 dvb kernel: [88029.970140] xc2028 0-0061: Reading firmware type SCODE HAS_IF_8200 (60000000), id 0, size=192. Jan 9 20:46:45 dvb kernel: [88029.970141] xc2028 0-0061: Firmware files loaded. Jan 9 20:46:46 dvb kernel: [88030.516035] em2882/3 #0: submit of audio urb failed
--- drivers/media/usb/em28xx/em28xx-dvb.c.old.c 2014-01-09 21:04:56.315258353 -0700 +++ drivers/media/usb/em28xx/em28xx-dvb.c 2014-01-09 20:42:27.631224930 -0700 @@ -829,12 +829,61 @@ .agc = 0x99, }; +static void em28xx_setup_xc3028(struct em28xx *dev, struct xc2028_ctrl *ctl) +{ + memset(ctl, 0, sizeof(*ctl)); + + ctl->fname = XC2028_DEFAULT_FIRMWARE; + ctl->max_len = 64; + ctl->mts = em28xx_boards[dev->model].mts_firmware; + + switch (dev->model) { + case EM2880_BOARD_EMPIRE_DUAL_TV: + case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900: + case EM2882_BOARD_TERRATEC_HYBRID_XS: + ctl->demod = XC3028_FE_ZARLINK456; + break; + case EM2880_BOARD_TERRATEC_HYBRID_XS: + case EM2880_BOARD_TERRATEC_HYBRID_XS_FR: + case EM2881_BOARD_PINNACLE_HYBRID_PRO: + ctl->demod = XC3028_FE_ZARLINK456; + break; + case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900_R2: + case EM2882_BOARD_PINNACLE_HYBRID_PRO_330E: + ctl->demod = XC3028_FE_DEFAULT; + break; + case EM2880_BOARD_AMD_ATI_TV_WONDER_HD_600: + ctl->demod = XC3028_FE_DEFAULT; + ctl->fname = XC3028L_DEFAULT_FIRMWARE; + break; + case EM2883_BOARD_HAUPPAUGE_WINTV_HVR_850: + case EM2883_BOARD_HAUPPAUGE_WINTV_HVR_950: + case EM2880_BOARD_PINNACLE_PCTV_HD_PRO: + /* FIXME: Better to specify the needed IF */ + ctl->demod = XC3028_FE_DEFAULT; + break; + case EM2883_BOARD_KWORLD_HYBRID_330U: + case EM2882_BOARD_DIKOM_DK300: + case EM2882_BOARD_KWORLD_VS_DVBT: + ctl->demod = XC3028_FE_CHINA; + ctl->fname = XC2028_DEFAULT_FIRMWARE; + break; + case EM2882_BOARD_EVGA_INDTUBE: + ctl->demod = XC3028_FE_CHINA; + ctl->fname = XC3028L_DEFAULT_FIRMWARE; + break; + default: + ctl->demod = XC3028_FE_OREN538; + } +} + /* ------------------------------------------------------------------ */ static int em28xx_attach_xc3028(u8 addr, struct em28xx *dev) { struct dvb_frontend *fe; struct xc2028_config cfg; + struct xc2028_ctrl ctl; memset(&cfg, 0, sizeof(cfg)); cfg.i2c_adap = &dev->i2c_adap[dev->def_i2c_bus]; @@ -846,6 +895,10 @@ return -EINVAL; } + memset(&ctl, 0, sizeof(ctl)); + em28xx_setup_xc3028(dev, &ctl); + cfg.ctrl = &ctl; + fe = dvb_attach(xc2028_attach, dev->dvb->fe[0], &cfg); if (!fe) { em28xx_errdev("/2: xc3028 attach failed\n");