Kernel 3.0 breaks DVB-T

After upgrading to kernel 3.0, watching TV on my WinTV Nova-T via kaffeine became very unpleasant: Turning it on and switching channels was a lottery - sometimes it works, sometimes it doesn’t, with no discernable pattern.

/var/log/warn contains a lot of lines like these:


Aug 14 16:46:56 coral kernel: [278131.974707] DiB0070 I2C write failed
Aug 14 16:47:06 coral kernel: [278142.272778] dib0700: tx buffer length is larger than 4. Not supported.
Aug 14 16:47:06 coral kernel: [278142.276734] DiB0070 I2C write failed
Aug 14 16:48:52 coral kernel: [278248.743036] DiB0070 I2C write failed
Aug 14 16:49:38 coral kernel: [278294.082043] DiB0070 I2C write failed
Aug 14 16:49:42 coral kernel: [278298.805911] dib0700: tx buffer length is larger than 4. Not supported.

Downgrading the kernel to 2.6.37 from OpenSUSE 11.4 immediately solved the problem. I don’t remember having problems with 2.6.39, but sadly, I can’t seem to find any packages to re-check.

You can load any kernel version still located here: The Linux Kernel Archives, using my bash script you can find here: S.A.K.C. - SUSE Automated Kernel Compiler - Version 2.50 - Blogs - openSUSE Forums

It sounds like if you determine a regression point, it would be worth filing a kernel bug report. Have you determined what kernel driver is being used? You can use one of these commands to find out;

For PCI based use:

sudo /sbin/lspci -v | less

For USB Based use:

sudo lsusb -v | less

You can view your loaded kernel modules with:

lsmod | sort | less

I even have a script that can provide more options on viewing your modules here:

S.K.I.M. - SuSE Kernel Installed Modules - A lsmod replacement- Creates Alphabetized Module Listing - Blogs - openSUSE Forums

I hope something you find here to be helpful.

Thank You,

My DVB stick uses the dvb-usb-dib0700-1.20.fw firmware, so it should be the dib0700 driver or one of its relatives.

lsusb yields:

<snip>
Bus 002 Device 002: ID 2040:7070 Hauppauge Nova-T Stick 3
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x2040 Hauppauge
  idProduct          0x7070 Nova-T Stick 3
  bcdDevice            1.00
  iManufacturer           1 Hauppauge
  iProduct                2 Nova-T Stick
  iSerial                 3 4032310248
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           46
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           4
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval              10
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               1
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0000
  (Bus Powered)

Your skim tool shows this:


Num    Name                     Size       Ins  Requires

1)     ac                       3227        0    -
2)     acer_wmi                 14847       0    -
3)     af_packet                20330       4    -
4)     arc4                     1329        2    -
5)     ata_generic              3015        0    -
6)     b43                      186863      0    -
7)     battery                  10066       0    -
8)     button                   5497        1    i915,
9)     cdrom                    38437       1    sr_mod,
10)    cfg80211                 155017      2    b43,mac80211,
11)    cpufreq_conservative     10080       0    -
12)    cpufreq_powersave        930         0    -
13)    cpufreq_userspace        2631        0    -
14)    crc16                    1419        1    ext4,
15)    crc_itu_t                1451        1    firewire_core,
16)    dib0070                  9097        2    dvb_usb_dib0700,
17)    dib0090                  15172       1    dvb_usb_dib0700,
18)    dib3000mc                12141       1    dvb_usb_dib0700,
19)    dib7000m                 15201       1    dvb_usb_dib0700,
20)    dib7000p                 18379       2    dvb_usb_dib0700,
21)    dib8000                  27665       1    dvb_usb_dib0700,
22)    dibx000_common           3345        4    dib7000p,dib7000m,dib8000,dib3000mc,
23)    dm_mod                   76266       0    -
24)    drm                      191593      4    i915,drm_kms_helper,
25)    drm_kms_helper           32687       1    i915,
26)    dvb_core                 93879       3    dib7000p,dvb_usb,dib8000,
27)    dvb_usb                  17518       1    dvb_usb_dib0700,
28)    dvb_usb_dib0700          56685       0    -
29)    ecb                      2015        2    -
<snip>

Regarding the precise version of the kernel that started the trouble, I can’t give you an answer yet - I’m still compiling. I’m using Tumbleweed only on my weakest machine, so this takes a while. Your nice sakc tool doesn’t happen to have an option to compile an i586 kernel on a x86_64 machine? I have to admit, I stayed with all the defaults…

Okay, I’m running 2.6.39 now. Some frantic switching of channels resulted in no problems whatsoever, /var/log/warn appears clear as well. So, I’d confirm that the regression was introduced with the 3.0 kernel.

Okay, I’m running 2.6.39 now. Some frantic switching of channels resulted in no problems whatsoever, /var/log/warn appears clear as well. So, I’d confirm that the regression was introduced with the 3.0 kernel.

That is good news to know. Are you going to file a kernel bug report on this issue?

Thank You,

https://bugzilla.kernel.org/show_bug.cgi?id=41232

Since this is my first kernel bug report, I’d be glad for any pointers on what information might be missing or anything else I could do to improve this bug’s chances of getting fixed.

Since this is my first kernel bug report, I’d be glad for any pointers on what information might be missing or anything else I could do to improve this bug’s chances of getting fixed.

Val222, you have taken the first responsible steps. I am simply not the expert on this but I found an interesting link here you might read.

Reporting bugs for the Linux kernel

Thank You,