1. 12 1月, 2014 3 次提交
    • M
      [media] em28xx-audio: don't hardcode audio URB calculus · 1b3fd2d3
      Mauro Carvalho Chehab 提交于
      The current code hardcodes the number of audio URBs, the number
      of packets per URB and the maximum URB size.
      
      This is not a good idea, as it:
      
      - wastes more bandwidth than necessary, by using a very
        large number of packets;
      
      - those constants are bound to an specific scenario, with
        a bandwidth of 48 kHz;
      
      - don't take the maximum endpoint size into account;
      
      - with urb->interval = 1 on xHCI, those constraints cause a "funny"
        setup: URBs with 64 packets inside, with only 24 bytes total. E. g.
        a complete waste of space.
      
      Change the code to do dynamic URB audio calculus and allocation.
      
      For now, use the same constraints as used before this patch, to
      avoid regressions.
      
      A good scenario (tested) seems to use those defines, instead:
      
      	#define EM28XX_MAX_AUDIO_BUFS          8
      	#define EM28XX_MIN_AUDIO_PACKETS       2
      
      But let's not do such change here, letting the optimization to
      happen on latter patches, after more tests.
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      1b3fd2d3
    • M
      [media] em28xx-audio: Fix error path · 439c491c
      Mauro Carvalho Chehab 提交于
      De-allocate memory and free sound if an error happens.
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      439c491c
    • M
      [media] em28xx-audio: use bInterval on em28xx-audio · d2849fa5
      Mauro Carvalho Chehab 提交于
      Just filling urb->interval with 1 is wrong, and causes a different
      behaviour with xHCI.
      
      With EHCI, the URB size is typically 192 bytes. However, as
      xHCI specifies intervals in microframes, the URB size becomes
      too short (24 bytes).
      
      With this patch, the interval will be properly initialized, and
      the device will behave the same if connected into a xHCI or an
      EHCI device port.
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      d2849fa5
  2. 10 1月, 2014 2 次提交
  3. 07 1月, 2014 2 次提交
  4. 16 8月, 2012 1 次提交
  5. 11 8月, 2012 1 次提交
  6. 21 6月, 2012 2 次提交
  7. 15 5月, 2012 1 次提交
    • H
      [media] v4l: fix compiler warnings · e92ba283
      Hans Verkuil 提交于
      media_build/v4l/au0828-video.c: In function 'au0828_irq_callback':
      media_build/v4l/au0828-video.c:123:6: warning: variable 'rc' set but not used [-Wunused-but-set-variable]
      media_build/v4l/cx23888-ir.c: In function 'pulse_clocks_to_clock_divider':
      media_build/v4l/cx23888-ir.c:334:6: warning: variable 'rem' set but not used [-Wunused-but-set-variable]
      media_build/v4l/cx25840-ir.c: In function 'pulse_clocks_to_clock_divider':
      media_build/v4l/cx25840-ir.c:319:6: warning: variable 'rem' set but not used [-Wunused-but-set-variable]
      media_build/v4l/cx25840-ir.c: In function 'cx25840_ir_tx_write':
      media_build/v4l/cx25840-ir.c:863:21: warning: variable 'c' set but not used [-Wunused-but-set-variable]
      media_build/v4l/em28xx-audio.c: In function 'snd_em28xx_hw_capture_params':
      media_build/v4l/em28xx-audio.c:346:31: warning: variable 'format' set but not used [-Wunused-but-set-variable]
      media_build/v4l/em28xx-audio.c:346:25: warning: variable 'rate' set but not used [-Wunused-but-set-variable]
      media_build/v4l/em28xx-audio.c:346:15: warning: variable 'channels' set but not used [-Wunused-but-set-variable]
      media_build/v4l/hdpvr-control.c: In function 'get_input_lines_info':
      media_build/v4l/hdpvr-control.c:98:6: warning: variable 'ret' set but not used [-Wunused-but-set-variable]
      media_build/v4l/hdpvr-video.c: In function 'hdpvr_try_ctrl':
      media_build/v4l/hdpvr-video.c:955:6: warning: variable 'ret' set but not used [-Wunused-but-set-variable]
      media_build/v4l/saa7134-video.c: In function 'saa7134_s_tuner':
      media_build/v4l/saa7134-video.c:2030:6: warning: variable 'rx' set but not used [-Wunused-but-set-variable]
      media_build/v4l/sn9c102_core.c: In function 'sn9c102_stream_interrupt':
      media_build/v4l/sn9c102_core.c:998:7: warning: variable 'timeout' set but not used [-Wunused-but-set-variable]
      Signed-off-by: NHans Verkuil <hans.verkuil@cisco.com>
      Acked-by: NJanne Grunau <j@jannau.net>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      e92ba283
  8. 06 1月, 2012 1 次提交
  9. 28 7月, 2011 8 次提交
  10. 21 10月, 2010 1 次提交
  11. 18 5月, 2010 1 次提交
  12. 06 12月, 2009 1 次提交
  13. 07 11月, 2009 1 次提交
  14. 17 6月, 2009 1 次提交
  15. 30 3月, 2009 11 次提交
  16. 27 2月, 2009 1 次提交
    • N
      V4L/DVB (10659): em28xx: register device to soundcard for sysfs · 7662b00c
      Nicola Soranzo 提交于
      As explained in "Writing an ALSA driver" (T. Iwai), audio drivers should
      set the struct device for the card before registering the card instance.
      This will add the correct /sys/class/sound/cardN/device symlink, so HAL
      can see the device and ConsoleKit sets its ACL permissions for the
      logged-in user.
      
      For em28xx audio capture cards found e.g. in Hauppauge WinTV-HVR-900 (R2),
      this patch fixes errors like:
      
      ALSA lib pcm_hw.c:1429:(_snd_pcm_hw_open) Invalid value for card
      Error opening audio: Permission denied
      
      when running mplayer as a normal user.
      Signed-off-by: NNicola Soranzo <nsoranzo@tiscali.it>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      7662b00c
  17. 29 1月, 2009 2 次提交
    • R
      V4L/DVB (10325): em28xx: Fix for fail to submit URB with IRQs and Pre-emption Disabled · 9c06210b
      Robert Krakora 提交于
      Trace:  (Provided by Douglas)
      
      BUG: sleeping function called from invalid context at drivers/usb/core/urb.c:558
      in_atomic():0, irqs_disabled():1
      Pid: 4918, comm: sox Not tainted 2.6.27.5 #1
       [<c04246d8>] __might_sleep+0xc6/0xcb
       [<c058c8b0>] usb_kill_urb+0x1a/0xd8
       [<c0488e68>] ? __kmalloc+0x9b/0xfc
       [<c0488e85>] ? __kmalloc+0xb8/0xfc
       [<c058cd5a>] ? usb_alloc_urb+0xf/0x31
       [<f8dd638c>] em28xx_isoc_audio_deinit+0x2f/0x6c [em28xx_alsa]
       [<f8dd6573>] em28xx_cmd+0x1aa/0x1c5 [em28xx_alsa]
       [<f8dd65e1>] snd_em28xx_capture_trigger+0x53/0x68 [em28xx_alsa]
       [<f8aa8674>] snd_pcm_do_start+0x1c/0x23 [snd_pcm]
       [<f8aa85d7>] snd_pcm_action_single+0x25/0x4b [snd_pcm]
       [<f8aa9833>] snd_pcm_action+0x6a/0x76 [snd_pcm]
       [<f8aa98f5>] snd_pcm_start+0x14/0x16 [snd_pcm]
       [<f8aae10e>] snd_pcm_lib_read1+0x66/0x273 [snd_pcm]
       [<f8aac5a3>] ? snd_pcm_kernel_ioctl+0x46/0x5f [snd_pcm]
       [<f8aae4a7>] snd_pcm_lib_read+0xbf/0xcd [snd_pcm]
       [<f8aad774>] ? snd_pcm_lib_read_transfer+0x0/0xaf [snd_pcm]
       [<f89feeb6>] snd_pcm_oss_read3+0x99/0xdc [snd_pcm_oss]
       [<f89fef9c>] snd_pcm_oss_read2+0xa3/0xbf [snd_pcm_oss]
       [<c064169d>] ? _cond_resched+0x8/0x32
       [<f89ff0be>] snd_pcm_oss_read+0x106/0x150 [snd_pcm_oss]
       [<f89fefb8>] ? snd_pcm_oss_read+0x0/0x150 [snd_pcm_oss]
       [<c048c6e2>] vfs_read+0x81/0xdc
       [<c048c7d6>] sys_read+0x3b/0x60
       [<c04039bf>] sysenter_do_call+0x12/0x34
       =======================
      
      The culprit in the trace is snd_pcm_action() which invokes a spin lock
      which disables pre-emption which disables an IRQ which causes the
      __might_sleep() function to fail the irqs_disabled() test.  Since
      pre-emption is enabled then it is safe to de-allocate the memory if
      you first unlink each URB.  In this instance you are safe since
      pre-emption is disabled.  If pre-emption and irqs are not disabled then
      call usb_kill_urb(), else call usb_unlink_urb().
      
      Thanks to Douglas for tracking down this bug originally!!!
      
      [dougsland@redhat.com: Fixed codyingstyle]
      Signed-off-by: NRobert Krakora <rob.krakora@messagenetsystems.com>
      Signed-off-by: NDouglas Schilling Landgraf <dougsland@redhat.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      9c06210b
    • D
      V4L/DVB (10261): em28xx: fix kernel panic on audio shutdown · 8760e5b6
      Devin Heitmueller 提交于
      Revert a change made in change 9743 which resulted in a kernel panic in some
      cases on shutdown of the audio stream.
      
      First discovered when working on the Pinnacle 880e support, and later
      reproduced by a user on the mailing list with the HVR-900 as well.
      Signed-off-by: NDevin Heitmueller <dheitmueller@linuxtv.org>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      8760e5b6