1. 11 Nov, 2008 20 commits
    • Daniel J Blueman's avatar
      V4L/DVB (9492): unplug oops from dvb_frontend_init... · 8268c8f5
      Daniel J Blueman authored
      When inadvertently hot-unplugging a WT-220U USB DVB-T receiver with
      2.6.24, I was met with an oops [1]. The problem is relevant to
      2.6.25/26-rc also.
      
      dvb_frontend_init() was called either from re-creation of the kdvb-fe0
      thread - seems unlikely, or someone called
      dvb_frontend_reinitialise(), causing this path in the thread - really
      unlikely, as I can't find any call-site for it.
      
      Either way, quite a number of drivers call dvb_usb_generic_rw() [2]
      without checking the validity of the relevant member in the
      dvb_usb_device struct - which had changed. Having dvb_usb_generic_rw()
      sanity-check and fail (rather than loading from 0x120) seems
      reasonable defensive programming [3], in light of it being called in
      this way.
      
      The problem with this, is that drivers don't check the return code of
      the init call [4]. Does it make sense to cook a patch which allows the
      failure to be propagated back up, or am I missing something else?
      
      Thanks,
        Daniel
      
      <whoops, hot unplug>
      
      [83711.538485] dvb-usb: bulk message failed: -71 (1/0)
      [83711.538875] dvb-usb: bulk message failed: -71 (1/0)
      [83711.538899] usb 7-5: USB disconnect, address 3
      [83711.538905] dvb-usb: bulk message failed: -22 (1/0)
      [83711.538924] dvb-usb: bulk message failed: -22 (1/0)
      [83711.538943] dvb-usb: bulk message failed: -22 (1/0)
      [83711.588979] dvb-usb: bulk message failed: -22 (1/0)
      [83711.589031] dvb-usb: bulk message failed: -22 (1/0)
      [83711.589078] dvb-usb: bulk message failed: -22 (1/0)
      [83711.589122] dvb-usb: bulk message failed: -22 (1/0)
      [83711.589167] dvb-usb: bulk message failed: -22 (1/0)
      [83711.639233] dvb-usb: bulk message failed: -22 (1/0)
      [83711.639282] dvb-usb: bulk message failed: -22 (1/0)
      [83711.639330] dvb-usb: bulk message failed: -22 (1/0)
      [83711.639374] dvb-usb: bulk message failed: -22 (1/0)
      [83711.639421] dvb-usb: bulk message failed: -22 (1/0)
      [83711.658391] dvb-usb: bulk message failed: -22 (1/0)
      [83768.174281] dvb-usb: bulk message failed: -22 (2/-32512)
      [83768.174350] Unable to handle kernel NULL pointer
      dereference<6>dvb-usb: WideView WT-220U PenType Receiver
      (Typhoon/Freecom) successfully deinitialized and disconnected.
      [83768.174459]  at 0000000000000120 RIP:
      [83768.174459]  [<ffffffff88339b4f>] :dvb_usb:dvb_usb_generic_rw+0x2f/0x1a0
      [83768.174580] PGD 0
      [83768.174643] Oops: 0000 [1] SMP
      [83768.174723] CPU 0
      [83768.174782] Modules linked in: nfsd auth_rpcgss exportfs nfs lockd
      nfs_acl sunrpc af_packet xt_length ipt_tos ipt_TOS xt_CLASSIFY sch_sfq
      sch_htb ipt_MASQUERADE ipt_REDIRECT xt_limit xt_state xt_tcpudp
      iptable_nat nf_nat nf_conntrack_ipv4 nf_conntrack iptable_mangle
      iptable_filter ip_tables x_tables xfs sbp2 parport_pc lp parport loop
      ftdi_sio usbserial evdev dvb_usb_dtt200u dvb_usb dvb_core i2c_core
      sky2 iTCO_wdt iTCO_vendor_support snd_hda_intel shpchp snd_pcm
      snd_timer snd_page_alloc snd_hwdep snd pci_hotplug soundcore ipv6
      button intel_agp ext3 jbd mbcache sg sd_mod ata_generic pata_acpi ahci
      ata_piix libata scsi_mod ohci1394 ieee1394 ehci_hcd uhci_hcd usbcore
      e1000 thermal processor fan fbcon tileblit font bitblit softcursor
      fuse
      [83768.176968] Pid: 5732, comm: kdvb-fe-0 Not tainted 2.6.24-16-server #1
      [83768.177009] RIP: 0010:[<ffffffff88339b4f>]  [<ffffffff88339b4f>]
      :dvb_usb:dvb_usb_generic_rw+0x2f/0x1a0
      [83768.177096] RSP: 0018:ffff810021939df0  EFLAGS: 00010286
      [83768.177138] RAX: ffff81003bc7cc00 RBX: 0000000000000001 RCX: 0000000000000000
      [83768.177181] RDX: 0000000000000001 RSI: ffff810021939e67 RDI: 0000000000000000
      [83768.177223] RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
      [83768.177267] R10: ffff810001009880 R11: 0000000000000001 R12: ffff81003c10b400
      [83768.177311] R13: ffff81003c10b5b0 R14: ffff810021939ec0 R15: 0000000000000000
      [83768.177354] FS:  0000000000000000(0000) GS:ffffffff805c3000(0000)
      knlGS:0000000000000000
      [83768.177409] CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
      [83768.177449] CR2: 0000000000000120 CR3: 0000000000201000 CR4: 00000000000006e0
      [83768.177491] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      [83768.177534] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      [83768.177576] Process kdvb-fe-0 (pid: 5732, threadinfo
      ffff810021938000, task ffff81003bd1b7a0)
      [83768.177629] Stack:  ffff81003e9b6828 0000000000000000
      ffff8100378369f8 0000000000000000
      [83768.177800]  ffff81003bd1b7a0 ffff810037836d48 ffff81003bc7cc30
      ffff81003c10b400
      [83768.177943]  ffff81003c10b5b0 ffff810021939ec0 ffff81003c10b5e0
      ffffffff88342452
      [83768.178054] Call Trace:
      [83768.178130]  [<ffffffff88342452>] :dvb_usb_dtt200u:dtt200u_fe_init+0x22/0x30
      [83768.178178]  [<ffffffff88339f6a>] :dvb_usb:dvb_usb_fe_wakeup+0x3a/0x50
      [83768.178229]  [<ffffffff88325c41>] :dvb_core:dvb_frontend_init+0x21/0x70
      [83768.178278]  [<ffffffff8832746b>] :dvb_core:dvb_frontend_thread+0x8b/0x370
      [83768.178329]  [<ffffffff883273e0>] :dvb_core:dvb_frontend_thread+0x0/0x370
      [83768.178382]  [<ffffffff80253e3b>] kthread+0x4b/0x80
      [83768.178427]  [<ffffffff8020d198>] child_rip+0xa/0x12
      [83768.178473]  [<ffffffff80253df0>] kthread+0x0/0x80
      [83768.178514]  [<ffffffff8020d18e>] child_rip+0x0/0x12
      [83768.178557]
      [83768.178594]
      [83768.178594] Code: 44 8b 87 20 01 00 00 49 89 f4 45 89 ce 45 85 c0
      0f 84 ad 00
      [83768.179167] RIP  [<ffffffff88339b4f>] :dvb_usb:dvb_usb_generic_rw+0x2f/0x1a0
      [83768.179234]  RSP <ffff810021939df0>
      [83768.179271] CR2: 0000000000000120
      [83768.179419] ---[ end trace dba8483163cb1700 ]---
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      8268c8f5
    • Hans Verkuil's avatar
      V4L/DVB (9486): ivtv/ivtvfb: no longer experimental · 7c34158f
      Hans Verkuil authored
      Remove the EXPERIMENTAL tag.
      Signed-off-by: default avatarHans Verkuil <hverkuil@xs4all.nl>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      7c34158f
    • Hans Verkuil's avatar
      V4L/DVB (9485): ivtv: remove incorrect V4L1 & tvaudio dependency · 6a95ec59
      Hans Verkuil authored
      ivtv used tvaudio in the past and at the time tvaudio required V4L1.
      Since tvaudio is no longer dependent on V4L1 and since ivtv actually
      no longer uses tvaudio at all, this is no removed from Kconfig.
      
      Without this patch ivtv won't be build if V4L1 is disabled.
      Signed-off-by: default avatarHans Verkuil <hverkuil@xs4all.nl>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      6a95ec59
    • Tobias Lorenz's avatar
      V4L/DVB (9482): Documentation, especially regarding audio and informational links · 6aadf82e
      Tobias Lorenz authored
      This patch adds a recommendation to select SND_USB_AUDIO for listing and
      adds a documentation file for si470x.
      Signed-off-by: default avatarTobias Lorenz <tobias.lorenz@gmx.net>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      6aadf82e
    • Andy Walls's avatar
      V4L/DVB (9475): cx18: Disable write retries for registers that always change - part 1. · f3a3e881
      Andy Walls authored
      cx18: Disable write retries for registers that always change - part 1.
      Interrupt related registers will likely not read back the value we just wrote.
      Disable retries for these registers for now to avoid accidently discarding
      interrupts.  More intelligent read back verification criteria are needed for
      these and other registers (e.g. GPIO line registers), which will be addressed in
      subsequent changes.
      Signed-off-by: default avatarAndy Walls <awalls@radix.net>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      f3a3e881
    • Jean Delvare's avatar
      V4L/DVB (9372): Minor fixes to the saa7110 driver · 8182ff69
      Jean Delvare authored
      * Apparently the author of the saa7110 driver was confused by the
        number of outputs returned by DECODER_GET_CAPABILITIES. Of course a
        decoder chip has no analog ouputs, but it must have at least one
        digital output.
      
      * Fix an off-by-one error when checking the input value of
        DECODER_SET_INPUT.
      Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      8182ff69
    • Rafael Diniz's avatar
      V4L/DVB (9369): Documentation update for cx88 · 0d0f1e0a
      Rafael Diniz authored
      Attached is a patch that updates the cx88 documentation to add the fact the
      closed caption works for at least NTSC capture.
      
      ps: I also updated the wiki at:
      http://www.linuxtv.org/v4lwiki/index.php/Text_capture#cx88_devicesSigned-off-by: default avatarRafael Diniz <diniz@wimobilis.com.br>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      0d0f1e0a
    • Rafael Diniz's avatar
      V4L/DVB (9368): VBI fix for cx88 cards · b058e3f3
      Rafael Diniz authored
      The attached patch fix VBI support cx88 card.
      I'm running a capture for hours, getting the closed caption from it[1], and
      it's working perfect - the output is the same of a bttv card.
      Please apply this patch as soon as possible.
      
      [1] - using zvbi-ntsc-cc of zvbi project.
      Signed-off-by: default avatarRafael Diniz <diniz@wimobilis.com.br>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      b058e3f3
    • Jean-Francois Moine's avatar
    • Thierry MERLE's avatar
      V4L/DVB (9358): CinergyT2: fix Kconfig typo · bdb6ee32
      Thierry MERLE authored
      config\tDVB_USB_CINERGY_T2 causes the make_kconfig.pl to forget to enable by default the compilation of cinergyT2 module.
      Signed-off-by: default avatarThierry MERLE <thierry.merle@free.fr>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      bdb6ee32
    • Matthias Schwarzott's avatar
      V4L/DVB (9357): cx88-dvb: Fix Oops in case i2c bus failed to register · 0e8bac97
      Matthias Schwarzott authored
      There already is an report at kernel bugzilla about this issue:
      http://bugzilla.kernel.org/show_bug.cgi?id=9455
      
      When enabling extra checks for the i2c-bus of cx88 based cards by
      loading i2c_algo_bit with bit_test=1 this may trigger an oops
      when loading cx88_dvb.
      
      This is caused by the extra check code that detects that the
      sda-line is stuck high and thus does not register the i2c-bus.
      
      cx88-dvb however does not check if the i2c-bus is valid and just
      uses core->i2c_adap to attach dvb frontend modules.
      This leads to an oops at the first call to i2c_transfer:
      
      $ modprobe i2c_algo_bit bit_test=1
      $ modprobe cx8802
      
      cx88/2: cx2388x MPEG-TS Driver Manager version 0.0.6 loaded
      cx88[0]: quirk: PCIPCI_NATOMA -- set TBFX
      cx88[0]: subsystem: 0070:9202, board: Hauppauge Nova-S-Plus DVB-S [card=37,autodetected], frontend(s): 1
      cx88[0]: TV tuner type 4, Radio tuner type -1
      cx88[0]: SDA stuck high!
      cx88[0]: i2c register FAILED
      input: cx88 IR (Hauppauge Nova-S-Plus  as /class/input/input5
      cx88[0]/2: cx2388x 8802 Driver Manager
      cx88-mpeg driver manager 0000:00:10.2: enabling device (0154 -> 0156)
      cx88-mpeg driver manager 0000:00:10.2: PCI INT A -> Link[LNKD] -> GSI 9 (level, low) -> IRQ 9
      cx88[0]/2: found at 0000:00:10.2, rev: 5, irq: 9, latency: 64, mmio: 0xfb000000
      cx8802_probe() allocating 1 frontend(s)
      cx88/2: cx2388x dvb driver version 0.0.6 loaded
      cx88/2: registering cx8802 driver, type: dvb access: shared
      cx88[0]/2: subsystem: 0070:9202, board: Hauppauge Nova-S-Plus DVB-S [card=37]
      cx88[0]/2: cx2388x based DVB/ATSC card
      BUG: unable to handle kernel NULL pointer dereference at 00000000
      IP: [<e084d4ef>] :i2c_core:i2c_transfer+0x1f/0x80
      *pde = 00000000
      Modules linked in: cx88_dvb(+) cx8802 cx88xx ir_common i2c_algo_bit tveeprom videobuf_dvb btcx_risc
      mga drm ipv6 fscpos eeprom nfsd exportfs stv0299 b2c2_flexcop_pci b2c2_flexcop cx24123 s5h1420 ves1x93
      dvb_ttpci dvb_core saa7146_vv saa7146 videobuf_dma_sg videobuf_core videodev v4l1_compat ttpci_eeprom
      lirc_serial lirc_dev usbhid rtc uhci_hcd 8139too i2c_piix4 i2c_core usbcore evdev
      Pid: 4249, comm: modprobe Not tainted (2.6.27-gentoo #3)
      EIP: 0060:[<e084d4ef>] EFLAGS: 00010296 CPU: 0
      EIP is at i2c_transfer+0x1f/0x80 [i2c_core]
      EAX: 00000000 EBX: ffffffa1 ECX: 00000002 EDX: d6c71e3c
      ESI: d80cd050 EDI: d8093c00 EBP: d6c71e20 ESP: d6c71e0c
      DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      0e8bac97
    • Suresh Siddha's avatar
      V4L/DVB (9356): [PATCH] saa7134: fix resource map sanity check conflict · d522af58
      Suresh Siddha authored
      Impact: driver could possibly stomp on resources outside of its scope
      
      {mchehab@redhat.com: I got two versions of the same patch (identical,
      except for whitespacing). One authored by Andy Burns and another
      authored by Suresh Siddha. Due to that, I'm applying the one that has
      less CodingStyle errors. I'm also adding both comments and the SOB's for
      both patches, since they are both interesting}
      
      Suresh Siddha commented:
      
        Alexey Fisher reported:
      
        > resource map sanity check conflict: 0xcfeff800 0xcff007ff 0xcfe00000
        > 0xcfefffff PCI Bus 0000:01
      
        BAR base is located in the middle of the 4K page and the hardcoded
        size argument makes the request span two pages causing the conflict.
      
        Fix the hard coded size argument in ioremap().
      
      Andy Burns commented:
      
        I have already sent this patch on the linux-dvb list, but it didn't get
        much attention, so re-sending direct, I hope you all don't mind.
      
        While attempting to run mythtv in a xen domU, I encountered problems
        loading the driver for my saa7134 card, with an error from ioremap().
      
        This error was due to the driver allocating an incorrectly sized mmio
        area, which was trapped by xen's permission checks, but this would go
        un-noticed on a kernel without xen.
      
        My card has a 1K sized mmio area, I've had information that other cards
        have 2K areas, perhaps others have different sizes, yet the driver
        always attempts to map 4K.  I realise that the granularity of mapping is
        the page size, which typically would be 4K, but unless the card's base
        address happens to fall on a 4K boundary (mine does not) then the
        base+4K will end up spanning two pages, and this is when the error
        occurs under xen.
      
        My patch uses the pci_resource_len macro to determine the size required
        for the user's particular card, instead of the hardcoded 4K value. I've
        tested with a couple of printk() inside ioremap() that the start address
        and size do get rounded to the closest page boundary.
      
        With this patch I am able to successfully load the saa7134 driver and
        run mythtv under xen with my card, subject to correct pollirq settings
        in case of shared IRQ, I am still seeing occasional DMA panics, which I
        think are related to swiotlb handling by dom0/domU, usually the panic
        occurs when changing mux, once tuned to a mux, 12 hour continuous
        recordings are possible without errors.
      Reported-by: default avatarAlexey Fisher <bug-track@fisher-privat.net>
      Tested-by: default avatarAlexey Fisher <bug-track@fisher-privat.net>
      Signed-off-by: default avatarSuresh Siddha <suresh.b.siddha@intel.com>
      Signed-off-by: default avatarAndy Burns <andy@burns.net>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      d522af58
    • Jonathan Corbet's avatar
      V4L/DVB (9355): de-BKL cafe_ccic.c · 74084d33
      Jonathan Corbet authored
      Remove lock_kernel() call from cafe_ccic.c
      
      Commit d56dc612 added lock_kernel()
      calls to cafe_ccic.c.  But that driver was written with proper locking
      and does not need the BKL, so take it back out.
      Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      74084d33
    • Gregor Jasny's avatar
      V4L/DVB (9352): Add some missing compat32 ioctls · c7f09db6
      Gregor Jasny authored
      This patch adds the missing compat ioctls that are needed to
      operate Skype in combination with libv4l and a MJPEG only camera.
      
      If you think it's trivial enough please submit it to -stable, too.
      Signed-off-by: default avatarGregor Jasny <gjasny@web.de>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      c7f09db6
    • Mauro Carvalho Chehab's avatar
      V4L/DVB (9351): ibmcam: Fix a regression caused by a482f327 · a24ddee3
      Mauro Carvalho Chehab authored
      As reported by David Ellingsworth:
      > I'm not sure if it matters or not, but the ibmcam driver in the
      > Mauro's linux-2.6 git tree in the for_linus branch is currently
      > broken.
      
      uvd is equal to NULL during most of ibmcam_probe. Due to that, an OOPS is
      generated at dev_info. This patch replaces uvd->dev->dev to dev->dev
      inside this routine.
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      Reviewed-by: default avatarDavid Ellingsworth <david@identd.dyndns.org>
      a24ddee3
    • Alexey Klimov's avatar
      V4L/DVB (9350): radio-si470x: add support for kworld usb radio · 69df96c3
      Alexey Klimov authored
      This patch add support for new device named KWorld USB FM Radio
      SnapMusic Mobile 700 (FM700).
      And changes few lines in comments.
      Signed-off-by: default avatarAlexey Klimov <klimov.linux@gmail.com>
      Acked-by: default avatarTobias Lorenz <tobias.lorenz@gmx.net>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      69df96c3
    • Antoine Jacquet's avatar
      V4L/DVB (9348): dtv5100: add dependency on zl10353 · e62b4756
      Antoine Jacquet authored
      Update Kconfig to add missing dependency on zl10353 for dtv5100 driver.
      Signed-off-by: default avatarAntoine Jacquet <royale@zerezo.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      e62b4756
    • Manu Abraham's avatar
      V4L/DVB (9346): Optimization: Enable gate in a symmetric/disciplined way, · 3b37a15c
      Manu Abraham authored
      rather than implementing different ways leading to confusion.
      
      This allows multiple gate_enable/disable's in the tuner_read/write
      functions, thereby lesser number of I/O operations throughout,
      eventually leading to better results. As a side effect demods that
      detect the STOP bit for auto closing of the gate can be avoided, thereby
      a very minimal gain in disabling the auto detect feature as well.
      Improves readability on the device control.
      Signed-off-by: default avatarManu Abraham <manu@linuxtv.org>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      3b37a15c
    • Jean Delvare's avatar
      V4L/DVB (9337b): remove tuner-3036 and dpc7146 drivers from feature-removal-schedule.txt · f7378995
      Jean Delvare authored
      The tuner-3036 and dpc7146 drivers have been deleted now so we can
      remove the corresponding entries from feature-removal-schedule.txt.
      (Thanks for doing this, BTW.)
      Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      f7378995
    • Alexey Klimov's avatar
      V4L/DVB (9337a): HID: Don't allow KWorld radio fm700 be handled by usb hid drivers · 6a13378a
      Alexey Klimov authored
      This device is already handled by radio-si470x driver, and we
      therefore want usbhid to ignore it.
      Signed-off-by: default avatarAlexey Klimov <klimov.linux@gmail.com>
      Acked-by: default avatarTobias Lorenz <tobias.lorenz@gmx.net>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      6a13378a
  2. 10 Nov, 2008 8 commits
  3. 09 Nov, 2008 12 commits