* Kworld 330u broken
@ 2014-01-10 4:08 Chris Lee
2014-01-12 14:10 ` [PATCH] em28xx: fix xc3028 demod and firmware setup on DVB Mauro Carvalho Chehab
2014-01-12 16:43 ` Kworld 330u broken Frank Schäfer
0 siblings, 2 replies; 6+ messages in thread
From: Chris Lee @ 2014-01-10 4:08 UTC (permalink / raw)
To: Linux Media Mailing List
[-- Attachment #1: Type: text/plain, Size: 602 bytes --]
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
[-- Attachment #2: em28xx.txt --]
[-- Type: text/plain, Size: 35539 bytes --]
# 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
[-- Attachment #3: em28xx-dvb.c.diff --]
[-- Type: text/plain, Size: 2227 bytes --]
--- 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");
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH] em28xx: fix xc3028 demod and firmware setup on DVB
2014-01-10 4:08 Kworld 330u broken Chris Lee
@ 2014-01-12 14:10 ` Mauro Carvalho Chehab
2014-01-12 16:43 ` Kworld 330u broken Frank Schäfer
1 sibling, 0 replies; 6+ messages in thread
From: Mauro Carvalho Chehab @ 2014-01-12 14:10 UTC (permalink / raw)
To: Chris Lee
Cc: Mauro Carvalho Chehab, Linux Media Mailing List,
Mauro Carvalho Chehab
Now that em28xx can be compiled without V4L support, we should
call em28xx_setup_xc3028() on both em28xx-v4l and em28xx-dvb
modules.
Reported-by: Chris Lee <updatelee@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
---
drivers/media/usb/em28xx/em28xx-cards.c | 49 +++++++++++++++++++++++++++++++++
drivers/media/usb/em28xx/em28xx-dvb.c | 5 ++++
drivers/media/usb/em28xx/em28xx-video.c | 48 --------------------------------
drivers/media/usb/em28xx/em28xx.h | 1 +
4 files changed, 55 insertions(+), 48 deletions(-)
diff --git a/drivers/media/usb/em28xx/em28xx-cards.c b/drivers/media/usb/em28xx/em28xx-cards.c
index 39cf49c44e10..6efb9029381b 100644
--- a/drivers/media/usb/em28xx/em28xx-cards.c
+++ b/drivers/media/usb/em28xx/em28xx-cards.c
@@ -2768,6 +2768,55 @@ static void em28xx_card_setup(struct em28xx *dev)
dev->tuner_type = tuner;
}
+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;
+ }
+}
+EXPORT_SYMBOL_GPL(em28xx_setup_xc3028);
+
static void request_module_async(struct work_struct *work)
{
struct em28xx *dev = container_of(work,
diff --git a/drivers/media/usb/em28xx/em28xx-dvb.c b/drivers/media/usb/em28xx/em28xx-dvb.c
index 5c6be66ac858..7dba17576edf 100644
--- a/drivers/media/usb/em28xx/em28xx-dvb.c
+++ b/drivers/media/usb/em28xx/em28xx-dvb.c
@@ -828,11 +828,16 @@ 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];
cfg.i2c_addr = addr;
+ memset(&ctl, 0, sizeof(ctl));
+ em28xx_setup_xc3028(dev, &ctl);
+ cfg.ctrl = &ctl;
+
if (!dev->dvb->fe[0]) {
em28xx_errdev("/2: dvb frontend not attached. "
"Can't attach xc3028\n");
diff --git a/drivers/media/usb/em28xx/em28xx-video.c b/drivers/media/usb/em28xx/em28xx-video.c
index 9c4462868330..a1dcceb7b2c0 100644
--- a/drivers/media/usb/em28xx/em28xx-video.c
+++ b/drivers/media/usb/em28xx/em28xx-video.c
@@ -2100,54 +2100,6 @@ static struct video_device *em28xx_vdev_init(struct em28xx *dev,
return vfd;
}
-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 void em28xx_tuner_setup(struct em28xx *dev)
{
struct tuner_setup tun_setup;
diff --git a/drivers/media/usb/em28xx/em28xx.h b/drivers/media/usb/em28xx/em28xx.h
index e76f993e3195..5d5d1b6f0294 100644
--- a/drivers/media/usb/em28xx/em28xx.h
+++ b/drivers/media/usb/em28xx/em28xx.h
@@ -762,6 +762,7 @@ void em28xx_close_extension(struct em28xx *dev);
extern struct em28xx_board em28xx_boards[];
extern struct usb_device_id em28xx_id_table[];
int em28xx_tuner_callback(void *ptr, int component, int command, int arg);
+void em28xx_setup_xc3028(struct em28xx *dev, struct xc2028_ctrl *ctl);
void em28xx_release_resources(struct em28xx *dev);
/* Provided by em28xx-camera.c */
--
1.8.3.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: Kworld 330u broken
2014-01-10 4:08 Kworld 330u broken Chris Lee
2014-01-12 14:10 ` [PATCH] em28xx: fix xc3028 demod and firmware setup on DVB Mauro Carvalho Chehab
@ 2014-01-12 16:43 ` Frank Schäfer
2014-01-12 16:50 ` Mauro Carvalho Chehab
1 sibling, 1 reply; 6+ messages in thread
From: Frank Schäfer @ 2014-01-12 16:43 UTC (permalink / raw)
To: Chris Lee, Mauro Carvalho Chehab; +Cc: Linux Media Mailing List
On 10.01.2014 05:08, Chris Lee wrote:
> 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
Hi Chris,
thank you for testing and the patch !
The suggested changes in em28xx_attach_xc3028() look good, but instead
of introducing a second copy of em28xx_setup_xc3028() in em28xx-dvb,
we should just move this function from the v4l extension back to the core.
Mauro, I can create a patch, but I assume there is already enough
pending em28xx stuff that requires rebasing, so I assume it's easier for
you to do it yourself.
Let me know if I can assist you.
Regards,
Frank
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Kworld 330u broken
2014-01-12 16:43 ` Kworld 330u broken Frank Schäfer
@ 2014-01-12 16:50 ` Mauro Carvalho Chehab
[not found] ` <CAA9z4LbpsnDqS4U8rZzzKk6CmrH9cyAYjOtKOVC5goZz5Q13hA@mail.gmail.com>
0 siblings, 1 reply; 6+ messages in thread
From: Mauro Carvalho Chehab @ 2014-01-12 16:50 UTC (permalink / raw)
To: Frank Schäfer; +Cc: Chris Lee, Linux Media Mailing List
Em Sun, 12 Jan 2014 17:43:28 +0100
Frank Schäfer <fschaefer.oss@googlemail.com> escreveu:
> On 10.01.2014 05:08, Chris Lee wrote:
> > 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
>
> Hi Chris,
>
> thank you for testing and the patch !
> The suggested changes in em28xx_attach_xc3028() look good, but instead
> of introducing a second copy of em28xx_setup_xc3028() in em28xx-dvb,
> we should just move this function from the v4l extension back to the core.
>
> Mauro, I can create a patch, but I assume there is already enough
> pending em28xx stuff that requires rebasing, so I assume it's easier for
> you to do it yourself.
> Let me know if I can assist you.
Yes, I can handle it.
Regards,
Mauro
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Kworld 330u broken
[not found] ` <CAA9z4LbpsnDqS4U8rZzzKk6CmrH9cyAYjOtKOVC5goZz5Q13hA@mail.gmail.com>
@ 2014-01-12 17:40 ` Mauro Carvalho Chehab
2014-01-13 18:34 ` Frank Schäfer
0 siblings, 1 reply; 6+ messages in thread
From: Mauro Carvalho Chehab @ 2014-01-12 17:40 UTC (permalink / raw)
To: Chris Lee, Frank Schäfer; +Cc: Linux Media Mailing List
Em Sun, 12 Jan 2014 09:53:43 -0700
Chris Lee <updatelee@gmail.com> escreveu:
> Thanks guys, appreciate it :) As soon as I see the patch fly by I'll
> test it out, or you can email me directly if you want it tested before
> it goes to the list. Either way Im flexible.
>
> UDL
>
> On Sun, Jan 12, 2014 at 9:50 AM, Mauro Carvalho Chehab
> <m.chehab@samsung.com> wrote:
> > Em Sun, 12 Jan 2014 17:43:28 +0100
> > Frank Schäfer <fschaefer.oss@googlemail.com> escreveu:
> >
> >> On 10.01.2014 05:08, Chris Lee wrote:
> >> > 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
> >>
> >> Hi Chris,
> >>
> >> thank you for testing and the patch !
> >> The suggested changes in em28xx_attach_xc3028() look good, but instead
> >> of introducing a second copy of em28xx_setup_xc3028() in em28xx-dvb,
> >> we should just move this function from the v4l extension back to the core.
> >>
> >> Mauro, I can create a patch, but I assume there is already enough
> >> pending em28xx stuff that requires rebasing, so I assume it's easier for
> >> you to do it yourself.
> >> Let me know if I can assist you.
> >
> > Yes, I can handle it.
> >
> > Regards,
> > Mauro
Patch follows.
Regards,
Mauro
From: Mauro Carvalho Chehab <m.chehab@samsung.com>
[media] em28xx: fix xc3028 demod and firmware setup on DVB
Now that em28xx can be compiled without V4L support, we should
call em28xx_setup_xc3028() on both em28xx-v4l and em28xx-dvb
modules.
Reported-by: Chris Lee <updatelee@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
diff --git a/drivers/media/usb/em28xx/em28xx-cards.c b/drivers/media/usb/em28xx/em28xx-cards.c
index 39cf49c44e10..6efb9029381b 100644
--- a/drivers/media/usb/em28xx/em28xx-cards.c
+++ b/drivers/media/usb/em28xx/em28xx-cards.c
@@ -2768,6 +2768,55 @@ static void em28xx_card_setup(struct em28xx *dev)
dev->tuner_type = tuner;
}
+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;
+ }
+}
+EXPORT_SYMBOL_GPL(em28xx_setup_xc3028);
+
static void request_module_async(struct work_struct *work)
{
struct em28xx *dev = container_of(work,
diff --git a/drivers/media/usb/em28xx/em28xx-dvb.c b/drivers/media/usb/em28xx/em28xx-dvb.c
index 5c6be66ac858..7dba17576edf 100644
--- a/drivers/media/usb/em28xx/em28xx-dvb.c
+++ b/drivers/media/usb/em28xx/em28xx-dvb.c
@@ -828,11 +828,16 @@ 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];
cfg.i2c_addr = addr;
+ memset(&ctl, 0, sizeof(ctl));
+ em28xx_setup_xc3028(dev, &ctl);
+ cfg.ctrl = &ctl;
+
if (!dev->dvb->fe[0]) {
em28xx_errdev("/2: dvb frontend not attached. "
"Can't attach xc3028\n");
diff --git a/drivers/media/usb/em28xx/em28xx-video.c b/drivers/media/usb/em28xx/em28xx-video.c
index 9c4462868330..a1dcceb7b2c0 100644
--- a/drivers/media/usb/em28xx/em28xx-video.c
+++ b/drivers/media/usb/em28xx/em28xx-video.c
@@ -2100,54 +2100,6 @@ static struct video_device *em28xx_vdev_init(struct em28xx *dev,
return vfd;
}
-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 void em28xx_tuner_setup(struct em28xx *dev)
{
struct tuner_setup tun_setup;
diff --git a/drivers/media/usb/em28xx/em28xx.h b/drivers/media/usb/em28xx/em28xx.h
index e76f993e3195..5d5d1b6f0294 100644
--- a/drivers/media/usb/em28xx/em28xx.h
+++ b/drivers/media/usb/em28xx/em28xx.h
@@ -762,6 +762,7 @@ void em28xx_close_extension(struct em28xx *dev);
extern struct em28xx_board em28xx_boards[];
extern struct usb_device_id em28xx_id_table[];
int em28xx_tuner_callback(void *ptr, int component, int command, int arg);
+void em28xx_setup_xc3028(struct em28xx *dev, struct xc2028_ctrl *ctl);
void em28xx_release_resources(struct em28xx *dev);
/* Provided by em28xx-camera.c */
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: Kworld 330u broken
2014-01-12 17:40 ` Mauro Carvalho Chehab
@ 2014-01-13 18:34 ` Frank Schäfer
0 siblings, 0 replies; 6+ messages in thread
From: Frank Schäfer @ 2014-01-13 18:34 UTC (permalink / raw)
To: Mauro Carvalho Chehab, Chris Lee; +Cc: Linux Media Mailing List
On 12.01.2014 18:40, Mauro Carvalho Chehab wrote:
> Em Sun, 12 Jan 2014 09:53:43 -0700
> Chris Lee <updatelee@gmail.com> escreveu:
>
>> Thanks guys, appreciate it :) As soon as I see the patch fly by I'll
>> test it out, or you can email me directly if you want it tested before
>> it goes to the list. Either way Im flexible.
>>
>> UDL
>>
>> On Sun, Jan 12, 2014 at 9:50 AM, Mauro Carvalho Chehab
>> <m.chehab@samsung.com> wrote:
>>> Em Sun, 12 Jan 2014 17:43:28 +0100
>>> Frank Schäfer <fschaefer.oss@googlemail.com> escreveu:
>>>
>>>> On 10.01.2014 05:08, Chris Lee wrote:
>>>>> 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
>>>> Hi Chris,
>>>>
>>>> thank you for testing and the patch !
>>>> The suggested changes in em28xx_attach_xc3028() look good, but instead
>>>> of introducing a second copy of em28xx_setup_xc3028() in em28xx-dvb,
>>>> we should just move this function from the v4l extension back to the core.
>>>>
>>>> Mauro, I can create a patch, but I assume there is already enough
>>>> pending em28xx stuff that requires rebasing, so I assume it's easier for
>>>> you to do it yourself.
>>>> Let me know if I can assist you.
>>> Yes, I can handle it.
>>>
>>> Regards,
>>> Mauro
> Patch follows.
>
> Regards,
> Mauro
>
> From: Mauro Carvalho Chehab <m.chehab@samsung.com>
>
> [media] em28xx: fix xc3028 demod and firmware setup on DVB
>
> Now that em28xx can be compiled without V4L support, we should
> call em28xx_setup_xc3028() on both em28xx-v4l and em28xx-dvb
> modules.
>
> Reported-by: Chris Lee <updatelee@gmail.com>
> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
>
> diff --git a/drivers/media/usb/em28xx/em28xx-cards.c b/drivers/media/usb/em28xx/em28xx-cards.c
> index 39cf49c44e10..6efb9029381b 100644
> --- a/drivers/media/usb/em28xx/em28xx-cards.c
> +++ b/drivers/media/usb/em28xx/em28xx-cards.c
> @@ -2768,6 +2768,55 @@ static void em28xx_card_setup(struct em28xx *dev)
> dev->tuner_type = tuner;
> }
>
> +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;
> + }
> +}
> +EXPORT_SYMBOL_GPL(em28xx_setup_xc3028);
> +
> static void request_module_async(struct work_struct *work)
> {
> struct em28xx *dev = container_of(work,
> diff --git a/drivers/media/usb/em28xx/em28xx-dvb.c b/drivers/media/usb/em28xx/em28xx-dvb.c
> index 5c6be66ac858..7dba17576edf 100644
> --- a/drivers/media/usb/em28xx/em28xx-dvb.c
> +++ b/drivers/media/usb/em28xx/em28xx-dvb.c
> @@ -828,11 +828,16 @@ 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];
> cfg.i2c_addr = addr;
>
> + memset(&ctl, 0, sizeof(ctl));
> + em28xx_setup_xc3028(dev, &ctl);
> + cfg.ctrl = &ctl;
> +
> if (!dev->dvb->fe[0]) {
> em28xx_errdev("/2: dvb frontend not attached. "
> "Can't attach xc3028\n");
> diff --git a/drivers/media/usb/em28xx/em28xx-video.c b/drivers/media/usb/em28xx/em28xx-video.c
> index 9c4462868330..a1dcceb7b2c0 100644
> --- a/drivers/media/usb/em28xx/em28xx-video.c
> +++ b/drivers/media/usb/em28xx/em28xx-video.c
> @@ -2100,54 +2100,6 @@ static struct video_device *em28xx_vdev_init(struct em28xx *dev,
> return vfd;
> }
>
> -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 void em28xx_tuner_setup(struct em28xx *dev)
> {
> struct tuner_setup tun_setup;
> diff --git a/drivers/media/usb/em28xx/em28xx.h b/drivers/media/usb/em28xx/em28xx.h
> index e76f993e3195..5d5d1b6f0294 100644
> --- a/drivers/media/usb/em28xx/em28xx.h
> +++ b/drivers/media/usb/em28xx/em28xx.h
> @@ -762,6 +762,7 @@ void em28xx_close_extension(struct em28xx *dev);
> extern struct em28xx_board em28xx_boards[];
> extern struct usb_device_id em28xx_id_table[];
> int em28xx_tuner_callback(void *ptr, int component, int command, int arg);
> +void em28xx_setup_xc3028(struct em28xx *dev, struct xc2028_ctrl *ctl);
> void em28xx_release_resources(struct em28xx *dev);
>
> /* Provided by em28xx-camera.c */
Reviewed-by: Frank Schäfer <fschaefer.oss@googlemail.com>
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2014-01-13 18:32 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-10 4:08 Kworld 330u broken Chris Lee
2014-01-12 14:10 ` [PATCH] em28xx: fix xc3028 demod and firmware setup on DVB Mauro Carvalho Chehab
2014-01-12 16:43 ` Kworld 330u broken Frank Schäfer
2014-01-12 16:50 ` Mauro Carvalho Chehab
[not found] ` <CAA9z4LbpsnDqS4U8rZzzKk6CmrH9cyAYjOtKOVC5goZz5Q13hA@mail.gmail.com>
2014-01-12 17:40 ` Mauro Carvalho Chehab
2014-01-13 18:34 ` Frank Schäfer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).