Bug 812895

Summary: Bug in dvb driver modules when switching from DVB-S2 to DVB-S
Product: [Fedora] Fedora Reporter: Dieter Roever <Dieter.Roever>
Component: kernelAssignee: Mauro Carvalho Chehab <mchehab>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 16CC: gansalmon, hektor, itamar, jonathan, kernel-maint, lwang, madhu.chinakonda
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: kernel-3.3.2-6.fc16 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-04-24 14:54:01 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Fix DVB frontend regression when switching back to DVB-S none

Description Dieter Roever 2012-04-16 13:47:54 UTC
User-Agent:       Opera/9.80 (X11; Linux x86_64; U; de) Presto/2.10.229 Version/11.62

Kernel 3.2.9-2 was on of the last with witch I can look satellite television with my TeVii 470 DVB-S2 card and software kaffeine without any problems. One of the new bugs (808871) was fixed with kernel 3.3.1-5. 
But one bug is left: switching between DVB-S and DVB-S2 channels.

Reproducible: Always

Steps to Reproduce:
When starting kaffeine it is possible to watch DVB-S (SD) channels. 
I can switch to other SD-channels.
I can  switch to an DVB-S2 (HD) channel.
I can switch between HD-channels.
But when I switch back to any DVB-S (SD) channel, the window becomes black. No other SD channel can be started.
Actual Results:  
Even stopping kaffeine and starting the channel again makes any change. But removing the module CX23885 and then starting kaffeine again will fix it.


Here are the details:
$uname -a
Linux F16F.localdomain 3.3.1-5.fc16.x86_64 #1 SMP Tue Apr 10 19:56:52 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

Starting kaffeine and switching to an dvb-s channel
---------------------------------------------------
output kaffeine:
net_buf_ctrl: dvbspeed mode
net_buf_ctrl: prebuffering...
net_buf_ctrl: dvbspeed 100% @ video 2040 ms 589 buffers

/var/log/messages:
Apr 16 14:08:12 F16F kernel: [  385.544954] cx23885 driver version 0.0.3 loaded
Apr 16 14:08:12 F16F kernel: [  385.546550] CORE cx23885[0]: subsystem: d470:9022, board: TeVii S470 [card=15,autodetected]
Apr 16 14:08:12 F16F kernel: [  385.677329] cx23885_dvb_register() allocating 1 frontend(s)
Apr 16 14:08:12 F16F kernel: [  385.677515] cx23885[0]: cx23885 based dvb card
Apr 16 14:08:12 F16F kernel: [  385.679112] DS3000 chip version: 0.192 attached.
Apr 16 14:08:12 F16F kernel: [  385.679231] DVB: registering new adapter (cx23885[0])
Apr 16 14:08:12 F16F kernel: [  385.679539] DVB: registering adapter 0 frontend 0 (Montage Technology DS3000/TS2020)...
Apr 16 14:08:12 F16F kernel: [  385.724850] TeVii S470 MAC= 00:18:bd:5b:47:7a
Apr 16 14:08:12 F16F kernel: [  385.724857] cx23885_dev_checkrevision() Hardware revision = 0xb0
Apr 16 14:08:12 F16F kernel: [  385.724866] cx23885[0]/0: found at 0000:05:00.0, rev: 2, irq: 16, latency: 0, mmio: 0xf0400000
Apr 16 14:08:23 F16F kernel: [  396.603667] ds3000_firmware_ondemand: Waiting for firmware upload (dvb-fe-ds3000.fw)...
Apr 16 14:08:23 F16F kernel: [  396.629217] ds3000_firmware_ondemand: Waiting for firmware upload(2)...


Switching kaffeine to an DVB-S2 (HD) channel.
---------------------------------------------
output kaffeine:
net_buf_ctrl: dvbspeed OFF
net_buf_ctrl: dvbspeed mode
net_buf_ctrl: prebuffering...
[h264 @ 0x7f9d04003de0] non-existing PPS 0 referenced
[h264 @ 0x7f9d04003de0] decode_slice_header error
[h264 @ 0x7f9d04003de0] no frame!
[h264 @ 0x7f9d04003de0] non-existing PPS 0 referenced
[h264 @ 0x7f9d04003de0] decode_slice_header error
[h264 @ 0x7f9d04003de0] no frame!
net_buf_ctrl: dvbspeed 100% @ video 2060 ms 1461 buffers
[h264 @ 0x7f9d04003de0] non-existing PPS 0 referenced
[h264 @ 0x7f9d04003de0] decode_slice_header error
[h264 @ 0x7f9d04003de0] no frame!
[h264 @ 0x7f9d04003de0] non-existing PPS 0 referenced
[h264 @ 0x7f9d04003de0] decode_slice_header error
[h264 @ 0x7f9d04003de0] no frame!
[h264 @ 0x7f9d04003de0] non-existing PPS 0 referenced
[h264 @ 0x7f9d04003de0] decode_slice_header error
[h264 @ 0x7f9d04003de0] no frame!
[h264 @ 0x7f9d04003de0] non-existing PPS 0 referenced
[h264 @ 0x7f9d04003de0] decode_slice_header error
[h264 @ 0x7f9d04003de0] no frame!
[h264 @ 0x7f9d04003de0] non-existing PPS 0 referenced
[h264 @ 0x7f9d04003de0] decode_slice_header error
[h264 @ 0x7f9d04003de0] no frame!
[h264 @ 0x7f9d04003de0] non-existing PPS 0 referenced
[h264 @ 0x7f9d04003de0] decode_slice_header error
[h264 @ 0x7f9d04003de0] no frame!
[h264 @ 0x7f9d04003de0] non-existing PPS 0 referenced
[h264 @ 0x7f9d04003de0] decode_slice_header error
[h264 @ 0x7f9d04003de0] no frame!
[h264 @ 0x7f9d04003de0] non-existing PPS 0 referenced
[h264 @ 0x7f9d04003de0] decode_slice_header error
[h264 @ 0x7f9d04003de0] no frame!
[h264 @ 0x7f9d04003de0] number of reference frames (0+6) exceeds max (5; probably corrupt input), discarding one
[h264 @ 0x7f9d04003de0] number of reference frames (0+6) exceeds max (5; probably corrupt input), discarding one
[h264 @ 0x7f9d04003de0] error while decoding MB 54 43, bytestream (-3)
[h264 @ 0x7f9d04003de0] mmco: unref short failure
[h264 @ 0x7f9d04003de0] number of reference frames (0+6) exceeds max (5; probably corrupt input), discarding one

These error messages are the same as in the past. Don't worry, HD picture and sound are ok.

/var/log/messages: nothing new


Switching kaffeine back to an DVB-S (SD) channel.
-------------------------------------------------

output kaffeine:
net_buf_ctrl: dvbspeed OFF
kaffeine(2187) DvbDevice::frontendEvent: tuning failed 
demux_wavpack: (open_wv_file:127) open_wv_file: non-seekable inputs aren't supported yet.
net_buf_ctrl: dvbspeed mode

---no sound, only black picture ---
---some seconds later          ---

net_buf_ctrl: dvbspeed OFF
Setting new source 
New source:  QUrl( "file:///usr/share/sounds/KDE-Sys-Warning.ogg" )  
Transitioning to state "playing" 
...

/var/log/messages: nothing new


reloading module cx23885:
-------------------------
$sudo modprobe -rv cx23885
rmmod /lib/modules/3.3.1-5.fc16.x86_64.debug/kernel/drivers/media/video/cx23885/cx23885.ko
rmmod /lib/modules/3.3.1-5.fc16.x86_64.debug/kernel/drivers/media/rc/rc-core.ko
rmmod /lib/modules/3.3.1-5.fc16.x86_64.debug/kernel/drivers/media/video/videobuf-dma-sg.ko
rmmod /lib/modules/3.3.1-5.fc16.x86_64.debug/kernel/drivers/misc/altera-stapl/altera-stapl.ko
rmmod /lib/modules/3.3.1-5.fc16.x86_64.debug/kernel/drivers/media/video/cx2341x.ko
rmmod /lib/modules/3.3.1-5.fc16.x86_64.debug/kernel/drivers/media/common/tuners/tda18271.ko
rmmod /lib/modules/3.3.1-5.fc16.x86_64.debug/kernel/drivers/media/video/videobuf-dvb.ko
rmmod /lib/modules/3.3.1-5.fc16.x86_64.debug/kernel/drivers/media/video/videobuf-core.ko
rmmod /lib/modules/3.3.1-5.fc16.x86_64.debug/kernel/drivers/media/video/v4l2-common.ko
rmmod /lib/modules/3.3.1-5.fc16.x86_64.debug/kernel/drivers/media/video/cx23885/altera-ci.ko
rmmod /lib/modules/3.3.1-5.fc16.x86_64.debug/kernel/drivers/media/dvb/dvb-core/dvb-core.ko
rmmod /lib/modules/3.3.1-5.fc16.x86_64.debug/kernel/drivers/media/video/btcx-risc.ko
rmmod /lib/modules/3.3.1-5.fc16.x86_64.debug/kernel/drivers/media/video/tveeprom.ko
$ sudo modprobe -v cx23885
insmod /lib/modules/3.3.1-5.fc16.x86_64.debug/kernel/drivers/media/video/tveeprom.ko 
insmod /lib/modules/3.3.1-5.fc16.x86_64.debug/kernel/drivers/media/video/btcx-risc.ko 
insmod /lib/modules/3.3.1-5.fc16.x86_64.debug/kernel/drivers/media/dvb/dvb-core/dvb-core.ko 
insmod /lib/modules/3.3.1-5.fc16.x86_64.debug/kernel/drivers/media/video/cx23885/altera-ci.ko 
insmod /lib/modules/3.3.1-5.fc16.x86_64.debug/kernel/drivers/media/video/v4l2-common.ko 
insmod /lib/modules/3.3.1-5.fc16.x86_64.debug/kernel/drivers/media/video/videobuf-core.ko 
insmod /lib/modules/3.3.1-5.fc16.x86_64.debug/kernel/drivers/media/video/videobuf-dvb.ko 
insmod /lib/modules/3.3.1-5.fc16.x86_64.debug/kernel/drivers/media/common/tuners/tda18271.ko 
insmod /lib/modules/3.3.1-5.fc16.x86_64.debug/kernel/drivers/media/video/cx2341x.ko 
insmod /lib/modules/3.3.1-5.fc16.x86_64.debug/kernel/drivers/misc/altera-stapl/altera-stapl.ko 
insmod /lib/modules/3.3.1-5.fc16.x86_64.debug/kernel/drivers/media/video/videobuf-dma-sg.ko 
insmod /lib/modules/3.3.1-5.fc16.x86_64.debug/kernel/drivers/media/rc/rc-core.ko 
insmod /lib/modules/3.3.1-5.fc16.x86_64.debug/kernel/drivers/media/video/cx23885/cx23885.ko 


/var/log/message: 
Apr 16 14:33:51 F16F kernel: [ 1925.258694] cx23885 driver version 0.0.3 loaded
Apr 16 14:33:51 F16F kernel: [ 1925.260103] CORE cx23885[0]: subsystem: d470:9022, board: TeVii S470 [card=15,autodetected]
Apr 16 14:33:51 F16F kernel: [ 1925.394783] cx23885_dvb_register() allocating 1 frontend(s)
Apr 16 14:33:51 F16F kernel: [ 1925.395106] cx23885[0]: cx23885 based dvb card
Apr 16 14:33:51 F16F kernel: [ 1925.396629] DS3000 chip version: 0.192 attached.
Apr 16 14:33:51 F16F kernel: [ 1925.396748] DVB: registering new adapter (cx23885[0])
Apr 16 14:33:51 F16F kernel: [ 1925.397220] DVB: registering adapter 0 frontend 0 (Montage Technology DS3000/TS2020)...
Apr 16 14:33:51 F16F kernel: [ 1925.435904] TeVii S470 MAC= 00:18:bd:5b:47:7a
Apr 16 14:33:51 F16F kernel: [ 1925.435911] cx23885_dev_checkrevision() Hardware revision = 0xb0
Apr 16 14:33:51 F16F kernel: [ 1925.435920] cx23885[0]/0: found at 0000:05:00.0, rev: 2, irq: 16, latency: 0, mmio: 0xf0400000


Now watching DVB-S (SD) with kaffeine is possible again.
I also make the test with kernel 3.3.2-1.fc16.x86_64, but with same result.

Comment 1 Mauro Carvalho Chehab 2012-04-16 14:36:28 UTC
(In reply to comment #0)
> User-Agent:       Opera/9.80 (X11; Linux x86_64; U; de) Presto/2.10.229
> Version/11.62
> 
> Kernel 3.2.9-2 was on of the last with witch I can look satellite television
> with my TeVii 470 DVB-S2 card and software kaffeine without any problems. One
> of the new bugs (808871) was fixed with kernel 3.3.1-5. 
> But one bug is left: switching between DVB-S and DVB-S2 channels.

Could you please load the dvb drivers with frontend debug enabled?

In particular, at the dvb-core:

$ modinfo dvb-core
parm:           frontend_debug:Turn on/off frontend core debugging (default:off). (int)


$ modinfo ds3000
parm:           debug:Activates frontend debugging (default:0) (int)

the better is to create a file at /etc/modprobe.d, like:

media.conf:

options dvb-core frontend_debug=1
options ds3000 debug=1

and reboot or reload the DVB modules.

Then post here the dmesg before calling caffeine, the additional messages after tuning a S2 channel and the ones when you try to tune a DVB-S channel after that.

Comment 2 Dieter Roever 2012-04-16 16:09:54 UTC
I tried to get the information you ask for. But problem is, that the ds3000 produces several log lines per seconds all the time. So I can't find the important points in the thousands of lines.

Here is the log from 1. start of kaffeine: (I cut several lines witch looks very similar.  <snip>)
[  269.606660] dvb_frontend_open
[  269.606667] dvb_frontend_ioctl (61)
[  269.606670] current delivery system on cache: 5, V3 type: 0
[  269.606673] dvb_frontend_release
[  273.288382] dvb_frontend_open
[  273.288387] dvb_frontend_start
[  273.288467] dvb_frontend_thread
[  273.288473] DVB: initialising adapter 0 frontend 0 (Montage Technology DS3000/TS2020)...
[  273.288478] ds3000_initfe()
[  273.288935] ds3000_readreg: read reg 0x08, value 0x07
[  273.288940] ds3000_writereg: write reg 0x08, value 0x07
[  273.288971] dvb_frontend_ioctl (66)
[  273.290538] ds3000_tuner_writereg: write reg 0x42, value 0x73
[  273.290542] ds3000_writereg: write reg 0x03, value 0x11
[  273.291238] ds3000_tuner_writereg: write reg 0x05, value 0x01
[  273.291241] ds3000_writereg: write reg 0x03, value 0x11
[  273.291935] ds3000_tuner_writereg: write reg 0x62, value 0xf5
[  273.291939] ds3000_writereg: write reg 0x03, value 0x11
[  273.292641] ds3000_firmware_ondemand()
[  273.293126] ds3000_readreg: read reg 0xb2, value 0x01
[  273.293129] ds3000_firmware_ondemand: Waiting for firmware upload (dvb-fe-ds3000.fw)...
[  273.311041] ds3000_firmware_ondemand: Waiting for firmware upload(2)...
[  273.311046] ds3000_load_firmware
[  273.311052] Firmware is 8192 bytes (83 01 .. f9 2c)
[  273.311057] ds3000_writereg: write reg 0xb2, value 0x01
[  273.311409] ds3000_writeFW: write reg 0xb0, len = 8192
[  273.314996] ds3000_writeFW: write reg 0xb0, len = 8192
[  273.318589] ds3000_writeFW: write reg 0xb0, len = 8192
[  273.322227] ds3000_writeFW: write reg 0xb0, len = 8192
[  273.325932] ds3000_writeFW: write reg 0xb0, len = 8192
<snip>
[  274.226959] ds3000_writeFW: write reg 0xb0, len = 8192
[  274.230508] ds3000_writeFW: write reg 0xb0, len = 8192
[  274.234110] ds3000_writereg: write reg 0xb2, value 0x00
[  274.234462] ds3000_firmware_ondemand: Firmware upload complete
[  274.234504] ds3000_set_tone(1)
[  274.234988] ds3000_readreg: read reg 0xa2, value 0x04
[  274.234990] ds3000_writereg: write reg 0xa2, value 0x04
[  274.235335] ds3000_set_tone: setting tone off
[  274.235816] ds3000_readreg: read reg 0xa2, value 0x04
[  274.235819] ds3000_writereg: write reg 0xa2, value 0x84
[  274.236175] dvb_frontend_ioctl (67)
[  274.270627] dvb_frontend_ioctl (63)
[  274.270631] ds3000_send_diseqc_msg(0xe0, 0x10, 0x38, 0xf3ds3000_readreg: read reg 0xa2, value 0x84
[  274.271120] ds3000_writereg: write reg 0xa2, value 0x04
[  274.271446] ds3000_writereg: write reg 0xa3, value 0xe0
[  274.271793] ds3000_writereg: write reg 0xa4, value 0x10
[  274.272140] ds3000_writereg: write reg 0xa5, value 0x38
[  274.272487] ds3000_writereg: write reg 0xa6, value 0xf3
[  274.273333] ds3000_readreg: read reg 0xa1, value 0x00
[  274.273337] ds3000_writereg: write reg 0xa1, value 0x1f
[  274.274167] ds3000_readreg: read reg 0xa1, value 0x5f
<snip>
[  274.329265] ds3000_readreg: read reg 0xa2, value 0x04
[  274.329268] ds3000_writereg: write reg 0xa2, value 0x84
[  274.344695] dvb_frontend_ioctl (65)
[  274.344698] ds3000_diseqc_send_burst()
[  274.345184] ds3000_readreg: read reg 0xa2, value 0x84
[  274.345187] ds3000_writereg: write reg 0xa2, value 0x04
[  274.345541] ds3000_writereg: write reg 0xa1, value 0x02
[  274.359704] ds3000_readreg: read reg 0xa1, value 0x02
[  274.360166] ds3000_readreg: read reg 0xa2, value 0x04
[  274.360169] ds3000_writereg: write reg 0xa2, value 0x84
[  274.375575] dvb_frontend_ioctl (66)
[  274.375579] ds3000_set_tone(0)
[  274.376064] ds3000_readreg: read reg 0xa2, value 0x84
[  274.376067] ds3000_writereg: write reg 0xa2, value 0x04
[  274.376437] ds3000_set_tone: setting tone on
[  274.376923] ds3000_readreg: read reg 0xa1, value 0x02
[  274.376926] ds3000_writereg: write reg 0xa1, value 0x04
[  274.377294] dvb_frontend_ioctl (76)
[  274.377298] set_delivery_system() Using delivery system to 5
[  274.377301] dtv_property_cache_sync() Preparing QPSK req
[  274.377305] dtv_property_legacy_params_sync() Preparing QPSK req
[  274.377308] dvb_frontend_add_event
[  274.377325] ds3000_get_algo()
[  274.377331] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
[  274.377335] dvb_frontend_thread: Retune requested, FESTATE_RETUNE
[  274.377340] ds3000_set_frontend() ds3000_tuner_writereg: write reg 0x07, value 0x02
[  274.377350] ds3000_writereg: write reg 0x03, value 0x11
[  274.378043] ds3000_tuner_writereg: write reg 0x10, value 0x00
[  274.378047] ds3000_writereg: write reg 0x03, value 0x11
[  274.378748] ds3000_tuner_writereg: write reg 0x60, value 0x79
[  274.378752] ds3000_writereg: write reg 0x03, value 0x11
<snip>
[  274.567492] ds3000_readreg: read reg 0xd1, value 0x0f
[  274.567494] ds3000_read_status: status = 0x0f
[  274.567497] dvb_frontend_thread: state changed, adding current state
[  274.567499] dvb_frontend_add_event
[  274.567997] ds3000_readreg: read reg 0xd1, value 0x0f
[  274.567999] ds3000_read_status: status = 0x0f
[  274.766940] ds3000_get_algo()
[  274.766945] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
[  274.767411] ds3000_readreg: read reg 0xd1, value 0x0f
[  274.767415] ds3000_read_status: status = 0x0f
[  274.966290] ds3000_get_algo()
[  274.966295] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
[  274.966783] ds3000_readreg: read reg 0xd1, value 0x0f
[  274.966786] ds3000_read_status: status = 0x0f
[  275.165672] ds3000_get_algo()
[  275.165676] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
[  275.166164] ds3000_readreg: read reg 0xd1, value 0x0f
[  275.166167] ds3000_read_status: status = 0x0f
[  275.365046] ds3000_get_algo()
[  275.365051] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
[  275.365507] ds3000_readreg: read reg 0xd1, value 0x0f
[  275.365510] ds3000_read_status: status = 0x0f


Then I decided to turn off the debug option for ds3000. So I was able to show you the output from frontend_debug for the interesting points:

Start kaffeine watching DVB-S channel:

Apr 16 17:29:41 F16F kernel: [   97.257653] dvb_frontend_open
Apr 16 17:29:41 F16F kernel: [   97.257670] dvb_frontend_ioctl (61)
Apr 16 17:29:41 F16F kernel: [   97.257673] current delivery system on cache: 5, V3 type: 0
Apr 16 17:29:41 F16F kernel: [   97.257677] dvb_frontend_release
Apr 16 17:30:13 F16F kernel: [  129.376690] dvb_frontend_open
Apr 16 17:30:13 F16F kernel: [  129.376695] dvb_frontend_start
Apr 16 17:30:13 F16F kernel: [  129.377794] dvb_frontend_thread
Apr 16 17:30:13 F16F kernel: [  129.377800] DVB: initialising adapter 0 frontend 0 (Montage Technology DS3000/TS2020)...
Apr 16 17:30:13 F16F kernel: [  129.378104] dvb_frontend_ioctl (66)
Apr 16 17:30:13 F16F kernel: [  129.384419] dvb_frontend_ioctl (67)
Apr 16 17:30:13 F16F kernel: [  129.419132] dvb_frontend_ioctl (63)
Apr 16 17:30:13 F16F kernel: [  129.493356] dvb_frontend_ioctl (65)
Apr 16 17:30:13 F16F kernel: [  129.524202] dvb_frontend_ioctl (66)
Apr 16 17:30:13 F16F kernel: [  129.525870] dvb_frontend_ioctl (76)
Apr 16 17:30:13 F16F kernel: [  129.525874] set_delivery_system() Using delivery system to 5
Apr 16 17:30:13 F16F kernel: [  129.525878] dtv_property_cache_sync() Preparing QPSK req
Apr 16 17:30:13 F16F kernel: [  129.525882] dtv_property_legacy_params_sync() Preparing QPSK req
Apr 16 17:30:13 F16F kernel: [  129.525885] dvb_frontend_add_event
Apr 16 17:30:13 F16F kernel: [  129.525958] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:13 F16F kernel: [  129.525962] dvb_frontend_thread: Retune requested, FESTATE_RETUNE
Apr 16 17:30:13 F16F kernel: [  129.625708] dvb_frontend_ioctl (69)
Apr 16 17:30:13 F16F kernel: [  129.714150] dvb_frontend_thread: state changed, adding current state
Apr 16 17:30:13 F16F kernel: [  129.714155] dvb_frontend_add_event
Apr 16 17:30:14 F16F kernel: [  129.913591] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:14 F16F kernel: [  130.112911] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:14 F16F kernel: [  130.312346] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:14 F16F kernel: [  130.511663] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:14 F16F kernel: [  130.711025] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:15 F16F kernel: [  130.910449] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:15 F16F kernel: [  131.109773] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:15 F16F kernel: [  131.309199] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:15 F16F kernel: [  131.508536] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW


switching to DVB-S2 channel

Apr 16 17:30:19 F16F kernel: [  135.341939] dvb_frontend_release
Apr 16 17:30:19 F16F kernel: [  135.341990] dvb_frontend_open
Apr 16 17:30:19 F16F kernel: [  135.341993] dvb_frontend_start
Apr 16 17:30:19 F16F kernel: [  135.342252] dvb_frontend_ioctl (66)
Apr 16 17:30:19 F16F kernel: [  135.343894] dvb_frontend_ioctl (67)
Apr 16 17:30:19 F16F kernel: [  135.379283] dvb_frontend_ioctl (63)
Apr 16 17:30:19 F16F kernel: [  135.453573] dvb_frontend_ioctl (65)
Apr 16 17:30:19 F16F kernel: [  135.484377] dvb_frontend_ioctl (66)
Apr 16 17:30:19 F16F kernel: [  135.486073] dvb_frontend_ioctl (82)
Apr 16 17:30:19 F16F kernel: [  135.486078] dvb_frontend_ioctl_properties
Apr 16 17:30:19 F16F kernel: [  135.486083] dvb_frontend_ioctl_properties() properties.num = 9
Apr 16 17:30:19 F16F kernel: [  135.486088] dvb_frontend_ioctl_properties() properties.props = 00007ffffe61e530
Apr 16 17:30:19 F16F kernel: [  135.486095] set_delivery_system() Changing delivery system to 6
Apr 16 17:30:19 F16F kernel: [  135.486102] dtv_property_process_set() Finalised property cache
Apr 16 17:30:19 F16F kernel: [  135.486106] dtv_property_legacy_params_sync() Preparing QPSK req
Apr 16 17:30:19 F16F kernel: [  135.486108] dvb_frontend_add_event
Apr 16 17:30:19 F16F kernel: [  135.486114] dvb_frontend_ioctl_properties() Property cache is full, tuning
Apr 16 17:30:19 F16F kernel: [  135.486124] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:19 F16F kernel: [  135.486126] dvb_frontend_thread: Retune requested, FESTATE_RETUNE
Apr 16 17:30:19 F16F kernel: [  135.585991] dvb_frontend_ioctl (69)
Apr 16 17:30:20 F16F kernel: [  135.832842] dvb_frontend_thread: state changed, adding current state
Apr 16 17:30:20 F16F kernel: [  135.832847] dvb_frontend_add_event
Apr 16 17:30:20 F16F kernel: [  136.032283] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:20 F16F kernel: [  136.231647] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:20 F16F kernel: [  136.430951] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:20 F16F kernel: [  136.630330] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:21 F16F kernel: [  136.829758] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:21 F16F kernel: [  137.029089] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:21 F16F kernel: [  137.228498] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:21 F16F kernel: [  137.427865] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:21 F16F kernel: [  137.627203] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW


switching back to DVB-S causing bug 

Apr 16 17:30:24 F16F kernel: [  140.483906] dvb_frontend_release
Apr 16 17:30:24 F16F kernel: [  140.483948] dvb_frontend_open
Apr 16 17:30:24 F16F kernel: [  140.483950] dvb_frontend_start
Apr 16 17:30:24 F16F kernel: [  140.483951] dvb_frontend_stop
Apr 16 17:30:24 F16F kernel: [  140.503043] dvb_frontend_thread
Apr 16 17:30:24 F16F kernel: [  140.503050] DVB: initialising adapter 0 frontend 0 (Montage Technology DS3000/TS2020)...
Apr 16 17:30:24 F16F kernel: [  140.503363] dvb_frontend_ioctl (66)
Apr 16 17:30:24 F16F kernel: [  140.509266] dvb_frontend_ioctl (67)
Apr 16 17:30:24 F16F kernel: [  140.543925] dvb_frontend_ioctl (63)
Apr 16 17:30:24 F16F kernel: [  140.618124] dvb_frontend_ioctl (65)
Apr 16 17:30:24 F16F kernel: [  140.649015] dvb_frontend_ioctl (66)
Apr 16 17:30:24 F16F kernel: [  140.650678] dvb_frontend_ioctl (76)
Apr 16 17:30:24 F16F kernel: [  140.650683] set_delivery_system() Using delivery system 0 emulated as if it were a 5
Apr 16 17:30:24 F16F kernel: [  140.650686] change delivery system on cache to 6
Apr 16 17:30:24 F16F kernel: [  140.650689] dtv_property_cache_sync() Preparing QPSK req
Apr 16 17:30:24 F16F kernel: [  140.650693] dtv_property_legacy_params_sync() Preparing QPSK req
Apr 16 17:30:24 F16F kernel: [  140.650696] dvb_frontend_add_event
Apr 16 17:30:24 F16F kernel: [  140.650717] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:24 F16F kernel: [  140.650721] dvb_frontend_thread: Retune requested, FESTATE_RETUNE
Apr 16 17:30:25 F16F kernel: [  140.750490] dvb_frontend_ioctl (69)
Apr 16 17:30:25 F16F kernel: [  141.129271] dvb_frontend_ioctl (69)
Apr 16 17:30:25 F16F kernel: [  141.228973] dvb_frontend_ioctl (69)
Apr 16 17:30:25 F16F kernel: [  141.327546] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:25 F16F kernel: [  141.328633] dvb_frontend_ioctl (69)
Apr 16 17:30:25 F16F kernel: [  141.428319] dvb_frontend_ioctl (69)
Apr 16 17:30:25 F16F kernel: [  141.526874] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:25 F16F kernel: [  141.528007] dvb_frontend_ioctl (69)
Apr 16 17:30:25 F16F kernel: [  141.627689] dvb_frontend_ioctl (69)
Apr 16 17:30:25 F16F kernel: [  141.726286] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:25 F16F kernel: [  141.727391] dvb_frontend_ioctl (69)
Apr 16 17:30:26 F16F kernel: [  141.827064] dvb_frontend_ioctl (69)
Apr 16 17:30:26 F16F kernel: [  141.925659] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:26 F16F kernel: [  141.926744] dvb_frontend_ioctl (69)
Apr 16 17:30:26 F16F kernel: [  142.026431] dvb_frontend_ioctl (69)
Apr 16 17:30:26 F16F kernel: [  142.125029] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:26 F16F kernel: [  142.126115] dvb_frontend_ioctl (69)
Apr 16 17:30:26 F16F kernel: [  142.225799] dvb_frontend_ioctl (69)
Apr 16 17:30:26 F16F kernel: [  142.324362] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:26 F16F kernel: [  142.325488] dvb_frontend_ioctl (69)
Apr 16 17:30:26 F16F kernel: [  142.425172] dvb_frontend_ioctl (69)
Apr 16 17:30:26 F16F kernel: [  142.523732] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:26 F16F kernel: [  142.723137] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:27 F16F kernel: [  142.922510] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:27 F16F kernel: [  143.121838] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:27 F16F kernel: [  143.321263] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:27 F16F kernel: [  143.520617] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:27 F16F kernel: [  143.719988] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:28 F16F kernel: [  143.919358] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:28 F16F kernel: [  144.118727] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW
Apr 16 17:30:28 F16F kernel: [  144.318097] dvb_frontend_thread: Frontend ALGO = DVBFE_ALGO_HW

Comment 3 Mauro Carvalho Chehab 2012-04-17 21:14:23 UTC
(In reply to comment #2)

Apr 16 17:30:13 F16F kernel: [  129.525870] dvb_frontend_ioctl (76)
Apr 16 17:30:13 F16F kernel: [  129.525874] set_delivery_system() Using
delivery system to 5
Ok, it identified the DVB-S delivery system here (5 is SYS_DVBS; 6 is SYS_DVBS2)
and it is using a legacy system call for setting it (FE_SET_FRONTEND)

> switching to DVB-S2 channel

> Apr 16 17:30:19 F16F kernel: [  135.486073] dvb_frontend_ioctl (82)

Here, it is using the non-legacy system call (FE_SET_PROPERTY) to set it in
DVB-S2 mode.

> switching back to DVB-S causing bug 

> Apr 16 17:30:24 F16F kernel: [  140.650678] dvb_frontend_ioctl (76)
> Apr 16 17:30:24 F16F kernel: [  140.650683] set_delivery_system() Using
> delivery system 0 emulated as if it were a 5

Delivery system 0 is SYS_UNKNOWN. That likely means a bug at set_delivery_system(), as SYS_UNKNOWN will likely be rejected by ds3000.

Kaffeine basically "tried" to switch back to DVB-S using FE_SET_FRONTEND. 

In a matter of fact, calling FE_SET_FRONTEND to switch back to DVB-S is a bad thing to do, as this is not supposed to switch modes. The only ioctl that sets a mode is FE_SET_PROPERTY.

Yet, there's a compat code there that should have been converting the call into something different than SYS_UNKNOWN.

Comment 4 Mauro Carvalho Chehab 2012-04-17 21:44:17 UTC
Created attachment 578165 [details]
Fix DVB frontend regression when switching back to DVB-S

Please test the enclosed patch and see if it fixes the issue.

Comment 5 Mauro Carvalho Chehab 2012-04-17 21:48:59 UTC
(In reply to comment #4)
> Created attachment 578165 [details]
> Fix DVB frontend regression when switching back to DVB-S
> 
> Please test the enclosed patch and see if it fixes the issue.

In order to make easier for you to test, I'm doing a scratch-build with this patch:
   http://koji.fedoraproject.org/koji/taskinfo?taskID=4000290

Comment 6 Dieter Roever 2012-04-18 10:10:01 UTC
Ok, I installed the packages kernel-3.3.2-3.fc16.x86_64 +devel +headers +tools.
The new kernel realy fixes the bug!
Thankyou for your very good support.

Comment 7 Fedora Update System 2012-04-21 16:26:14 UTC
kernel-3.3.2-6.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/kernel-3.3.2-6.fc16

Comment 8 Fedora Update System 2012-04-22 03:39:21 UTC
Package kernel-3.3.2-6.fc16:
* should fix your issue,
* was pushed to the Fedora 16 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing kernel-3.3.2-6.fc16'
as soon as you are able to, then reboot.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2012-6386/kernel-3.3.2-6.fc16
then log in and leave karma (feedback).

Comment 9 Dieter Roever 2012-04-23 15:22:08 UTC
Today I installed kernel-3.3.2-6.fc16 from the Fedora update-testing repositorie.
My TeVii 470 DVB-S2 video card is now working fine again. I can watch DVB-S and DVB-S2 channels and can switch between all channels as I like.

Thankyou very much for your help.

Comment 10 Fedora Update System 2012-04-24 14:54:01 UTC
kernel-3.3.2-6.fc16 has been pushed to the Fedora 16 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 11 Jens Hektor 2012-04-27 19:10:06 UTC
Switchback from DVB-S2 to DVB-S still does not work here

Comment 12 Jens Hektor 2012-05-05 04:58:02 UTC
Problem still exists with my Hauppauge HVR 4000 in kernel  3.3.4-1.fc16.x86_64

Comment 13 Jens Hektor 2012-05-13 09:39:36 UTC
Still have the problem with  3.3.5-2.fc16.x86_64

kaffeine on the command line writes to stdout:

kaffeine(3033) DvbDevice::frontendEvent: tuning failed

Comment 14 Jens Hektor 2012-05-13 09:42:48 UTC
Still have the problem with  3.3.5-2.fc16.x86_64

kaffeine on the command line writes to stdout:

kaffeine(3033) DvbDevice::frontendEvent: tuning failed

Comment 15 Mauro Carvalho Chehab 2012-05-14 10:36:45 UTC
(In reply to comment #14)
> Still have the problem with  3.3.5-2.fc16.x86_64
> 
> kaffeine on the command line writes to stdout:
> 
> kaffeine(3033) DvbDevice::frontendEvent: tuning failed

Hi Jens,

This should be due to another bug. Please open a separate BZ, properly describing what is happening there.

I need the dvb_core frontend debug logs for a kernel version where your board is working, and the logs with Kernel 3.3.5-2.fc16.x86_64.