1. 07 4月, 2009 1 次提交
  2. 30 3月, 2009 2 次提交
  3. 29 1月, 2009 1 次提交
    • A
      V4L/DVB (10229): cx88-dvb: Fix order of frontend allocations · 6e0e12f1
      Andy Walls 提交于
      On Fri, 2009-01-09 at 15:40 +0300, Goga777 wrote:
      > hI
      >
      > With today v4l-dvb I couldn't run my hvr4000 card on 2.6.27 kernel
      
      > [   14.555162] cx88/2: cx2388x dvb driver version 0.0.6 loaded
      > [   14.555231] cx88/2: registering cx8802 driver, type: dvb access: shared
      > [   14.555303] cx88[0]/2: subsystem: 0070:6900, board: Hauppauge WinTV-HVR4000 DVB-S/S2/T/Hybrid [card=68]
      > [   14.555374] cx88[0]/2: cx2388x based DVB/ATSC card
      > [   14.555446] BUG: unable to handle kernel NULL pointer dereference at 00000000
      > [   14.555560] IP: [<c02e6bff>] __mutex_lock_common+0x3c/0xe4
      > [   14.555652] *pde = 00000000
      > [   14.555735] Oops: 0002 [#1] SMP
      > [   14.555851] Modules linked in: cx88_dvb(+) cx88_vp3054_i2c videobuf_dvb wm8775 dvb_core tuner_simple tuner_types snd_seq_dummy tda9887 snd_seq_oss(+) snd_intel8x0(+) tda8290 snd_seq_midi snd_seq_midi_event snd_ac97_codec cx88_alsa(+) snd_seq ac97_bus snd_pcm_oss snd_mixer_oss snd_pcm snd_rawmidi snd_timer tuner snd_seq_device psmouse snd serio_raw ivtv(+) cx8800 cx8802 cx88xx soundcore cx2341x ir_common ns558 i2c_i801 v4l2_common videodev i2c_algo_bit gameport v4l1_compat snd_page_alloc tveeprom pcspkr floppy videobuf_dma_sg videobuf_core btcx_risc i2c_core parport_pc parport button intel_agp agpgart shpchp pci_hotplug rng_core iTCO_wdt sd_mod evdev usbhid hid ff_memless ext3 jbd mbcache ide_cd_mod cdrom ide_disk ata_piix libata dock 8139too usb_storage scsi_mod piix 8139cp mii ide_core uhci_hcd ehci_hcd usbcore thermal processor fan thermal_sys
      > [   14.557013]
      > [   14.557013] Pid: 2310, comm: modprobe Not tainted (2.6.27.1-custom-default1 #1)
      > [   14.557013] EIP: 0060:[<c02e6bff>] EFLAGS: 00010246 CPU: 1
      > [   14.557013] EIP is at __mutex_lock_common+0x3c/0xe4
      > [   14.557013] EAX: de653e98 EBX: de739118 ECX: de739120 EDX: 00000000
      > [   14.557013] ESI: dd4209e0 EDI: de73911c EBP: de653eb0 ESP: de653e88
      > [   14.557013]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
      > [   14.557013] Process modprobe (pid: 2310, ti=de652000 task=dd4209e0 task.ti=de652000)
      > [   14.557013] Stack: 3535352e 5d343733 00000002 de739120 de739120 00000000 c044a6c0 de739110
      > [   14.557013]        de739118 00000001 de653ebc c02e6d38 c02e6b88 de653ec4 c02e6b88 de653ed8
      > [   14.557013]        e1ac7115 de6a9000 00000001 00000000 de653f0c e1aeca62 de739004 de739000
      > [   14.557013] Call Trace:
      > [   14.557013]  [<c02e6d38>] ? __mutex_lock_slowpath+0x17/0x1a
      > [   14.557013]  [<c02e6b88>] ? mutex_lock+0x12/0x14
      > [   14.557013]  [<c02e6b88>] ? mutex_lock+0x12/0x14
      > [   14.557013]  [<e1ac7115>] ? videobuf_dvb_get_frontend+0x19/0x40 [videobuf_dvb]
      > [   14.557013]  [<e1aeca62>] ? cx8802_dvb_probe+0xc9/0x1945 [cx88_dvb]
      > [   14.557013]  [<e09ee41e>] ? cx8802_register_driver+0xbd/0x1ac [cx8802]
      > [   14.557013]  [<e09ee467>] ? cx8802_register_driver+0x106/0x1ac [cx8802]
      > [   14.557013]  [<e1aee37f>] ? dvb_init+0x22/0x27 [cx88_dvb]
      > [   14.557013]  [<c0101132>] ? _stext+0x42/0x11a
      > [   14.557013]  [<e1aee35d>] ? dvb_init+0x0/0x27 [cx88_dvb]
      > [   14.557013]  [<c013d2ca>] ? __blocking_notifier_call_chain+0xe/0x51
      > [   14.557013]  [<c014970b>] ? sys_init_module+0x8c/0x17d
      > [   14.557013]  [<c0103b42>] ? syscall_call+0x7/0xb
      > [   14.557013]  [<c013007b>] ? round_jiffies_relative+0x14/0x16
      > [   14.557013]  =======================
      > [   14.557013] Code: 78 04 89 f8 89 55 e0 64 8b 35 00 30 3f c0 e8 2e 0c 00 00 8d 43 08 89 45 e4 8b 53 0c 8d 45 e8 8b 4d e4 89 43 0c 89 4d e8 89 55 ec <89> 02 89 75 f0 83 c8 ff 87 03 48 74 55 8a 45 e0 8b 4d e0 83 e0
      > [   14.557013] EIP: [<c02e6bff>] __mutex_lock_common+0x3c/0xe4 SS:ESP 0068:de653e88
      > [   14.565211] ---[ end trace 94d8b014e067ac7b ]---
      
      Tested and confirmed to work by several users at linux-media@vger.kernel.org
      Signed-off-by: NAndy Walls <awalls@radix.net>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      6e0e12f1
  4. 08 1月, 2009 1 次提交
    • M
      V4L/DVB (10190): cx88: Fix some Kbuild troubles · e32fadc4
      Mauro Carvalho Chehab 提交于
      As Randy Dunlap <randy.dunlap@oracle.com> reported, cx88 has some compilation issues:
      
      drivers/built-in.o: In function `cx88_call_i2c_clients':
      (.text+0x20af17): undefined reference to `videobuf_dvb_get_frontend'
      drivers/built-in.o: In function `cx8802_probe':
      cx88-mpeg.c:(.devinit.text+0x268c4): undefined reference to `videobuf_dvb_alloc_frontend'
      cx88-mpeg.c:(.devinit.text+0x268ea): undefined reference to `videobuf_dvb_dealloc_frontends'
      
      With those configs:
      
      CONFIG_VIDEO_CX88=y
      CONFIG_VIDEO_CX88_BLACKBIRD=y
      CONFIG_VIDEO_CX88_DVB=m
      CONFIG_DVB_CORE=m
      
      After carefully examining the code, with the current code, several cx88 drivers
      (cx8800, cx8802, cx88_dvb and cx88_blackbird) should be compiled as a module,
      if one of them is marked as such. Just fixing Kconfig could create a very complex
      set of rules. Also, this hides a problem with the current approach where the dvb
      functionality weren't confined inside dvb module.
      
      What happens is that:
      	- cx88-i2c (part of cx8800) has some special rules if DVB;
      	- cx88-mpeg (cx8802 module) has also part of DVB init code;
      	- cx88-dvb has the rest of the dvb code;
      	- cx88-blackbird can be used with cx88-mpeg, having cx88-dvb or not.
      
      So, instead of doing some tricks at Kconfig and wait for a next breakage,
      this patch moves the dvb code inside cx88-i2c and cx88-mpeg into cx88-dvb.
      
      Another problem is that cx8802 were being compiled, even without cx88-dvb
      and cx88-blackbird modules.
      
      While on this code, let's fix also a reported problem:
      http://www.linuxtv.org/pipermail/linux-dvb/2009-January/031225.html
      
      A solution for the issue were proposed here:
      http://www.mail-archive.com/linux-media@vger.kernel.org/msg00021.html
      
      Thanks to Randy, Andy, Gregoire and Thomas for helping us to detect
      and solve the issues.
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      e32fadc4
  5. 30 12月, 2008 7 次提交
  6. 11 11月, 2008 1 次提交
    • M
      V4L/DVB (9357): cx88-dvb: Fix Oops in case i2c bus failed to register · 0e8bac97
      Matthias Schwarzott 提交于
      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: NMauro Carvalho Chehab <mchehab@redhat.com>
      0e8bac97
  7. 22 10月, 2008 2 次提交
  8. 18 10月, 2008 6 次提交
    • I
      V4L/DVB (9296): Patch to remove warning message during cx88-dvb compilation · d4305c68
      Igor M. Liplianin 提交于
      Remove warning message during cx88-dvb compilation.
      Also fixes double underline in function and struct names.
      Signed-off-by: NIgor M. Liplianin <liplianin@me.by>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      d4305c68
    • S
      V4L/DVB (9250): cx88: Convert __FUNCTION__ to __func__ · 2af03eea
      Steven Toth 提交于
      cx88: Convert __FUNCTION__ to __func__
      Signed-off-by: NSteven Toth <stoth@linuxtv.org>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      2af03eea
    • D
      V4L/DVB (9227): MFE: Add multi-frontend mutual exclusion · 59b1842d
      Darron Broad 提交于
      This add frontend R/W mutual exclusion.
      Prior to this point in time it was possible to open both
      frontends simultaneously which an MFE card cannot support.
      
      In order to stop this, a delayed open is performed which
      has the following function:
      
      -  Return EBUSY after a configurable amount of time
         if a frontend is unavailable due to the other being
         in use.
      
      -  Only allow opening of a frontend if the kernel thread
         of the other has stopped.
      
      This solution was chosen to allow switching between
      frontends to work as seamlessly as possible. When both
      frontends are actually opened simultaneously then one
      will only open, but if quick switching is performed
      between one of many then the new open will succeed in
      a clean fashion rather than interrupting a kernel
      thread.
      Signed-off-by: NDarron Broad <darron@kewl.org>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      59b1842d
    • D
      V4L/DVB (9225): MFE: Add configurable gate control · 8e739090
      Darron Broad 提交于
      This adds a configurable (one per card) gate control option
      for multi-frontend. Prior to this point gate control was
      assumed to be on the primary frontend, this is a fault
      when the gate to the analogue section is on the secondary
      which is the default for both the HVR-3000 and HVR-4000
      in MFE.
      Signed-off-by: NDarron Broad <darron@kewl.org>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      8e739090
    • D
      V4L/DVB (9223): MFE: Fix a number of bugs and some tidying up · 92abe9ee
      Darron Broad 提交于
      A number of reference to videobuf_dvb_get_frontend used an invalid
      index. This has been fixed.
      
      The section for the HVR3000 in advise_acquire was redundant as
      the same logic is used on the HVR4000. This has been removed
      and both cards now use the same function.
      
      A number of small errors and whitespace errors are also fixed.
      Signed-off-by: NDarron Broad <darron@kewl.org>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      92abe9ee
    • S
      V4L/DVB (9222): S2API: Add Multiple-frontend on a single adapter support. · 363c35fc
      Steven Toth 提交于
      A detailed description from the original patches 2 years ago:
      
      "The WinTV-HVR3000 has a single transport bus which is shared between
      a DVB-T and DVB-S modulator. These patches build on the bus acquisition
      cx88 work from a few weeks ago to add support for this.
      
      So to applications the HVR3000 looks like this:
      /dev/dvb/adapter0/fe0 (cx24123 DVB-S demod)
      /dev/dvb/adapter0/fe1 (cx22702 DVB-T demod)
      
      Additional boards continue as before, eg:
      /dev/dvb/adapter1/fe0 (lgdt3302 ATSC demod)
      
      The basic change is removing the single instance of the videobuf_dvb in
      cx8802_dev and saa7134_dev(?) and replacing it with a list and some
      supporting functions.
      
      *NOTE* This branch was taken before v4l-dvb was closed for 2.6.19 so
      two or three current cx88 patches appear to be reversed by this tree,
      this will be cleaned up in the near future. The patches missing change
      the mutex handing to core->lock, fix an enumeration problem."
      
      It should be recognised that a number of people have been maintaining
      this patchset. Significant levels of Kudos to everyone one involved,
      including but not limited to:
      
      Darron Broad
      Fabio M. Di Nitto
      Carlo Scarfoglio
      Hans Werner
      
      Without the work of these people, and countless others, my two year old
      patches would of died on the Mercurial linuxtv.org vine a long time
      ago.
      
      TODO: Revise these patches a little further so that the need for
      demux1 and dvr0 is optional, not mandatory on the HVR3000.
      
      HISTORY (darron):
      This is the last update to MFE prepared by Hans which is based
      upon the `scratchpad' diff created by Carlo.
      All MFE work prior to that point must be attributed to Fabio
      who ported and maintained Steve's original patch up to that
      time.
      Signed-off-by: NSteven Toth <stoth@linuxtv.org>
      Signed-off-by: NDarron Broad <darron@kewl.org>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      363c35fc
  9. 13 10月, 2008 1 次提交
  10. 12 10月, 2008 11 次提交
  11. 14 5月, 2008 2 次提交
  12. 26 4月, 2008 1 次提交
  13. 25 4月, 2008 4 次提交