1. 18 1月, 2010 1 次提交
  2. 13 1月, 2010 1 次提交
  3. 08 1月, 2010 1 次提交
  4. 07 1月, 2010 4 次提交
  5. 22 12月, 2009 1 次提交
  6. 21 12月, 2009 1 次提交
    • K
      ALSA: fix incorrect rounding direction in snd_interval_ratnum() · 40962d7c
      Krzysztof Helt 提交于
      The direction of rounding is incorrect in the snd_interval_ratnum()
      It was detected with following parameters (sb8 driver playing
      8kHz stereo file):
       - num is always 1000000
       - requested frequency rate is from 7999 to 7999 (single frequency)
      
      The first loop calculates div_down(num, freq->min) which is 125.
      Thus, a frequency range's minimum value is 1000000 / 125 = 8000 Hz.
      The second loop calculates div_up(num, freq->max) which is 126
      The frequency range's maximum value is 1000000 / 126 = 7936 Hz.
      The range maximum is lower than the range minimum so the function
      fails due to empty result range.
      Signed-off-by: NKrzysztof Helt <krzysztof.h1@wp.pl>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      40962d7c
  7. 11 12月, 2009 1 次提交
  8. 10 12月, 2009 1 次提交
    • C
      vfs: Implement proper O_SYNC semantics · 6b2f3d1f
      Christoph Hellwig 提交于
      While Linux provided an O_SYNC flag basically since day 1, it took until
      Linux 2.4.0-test12pre2 to actually get it implemented for filesystems,
      since that day we had generic_osync_around with only minor changes and the
      great "For now, when the user asks for O_SYNC, we'll actually give
      O_DSYNC" comment.  This patch intends to actually give us real O_SYNC
      semantics in addition to the O_DSYNC semantics.  After Jan's O_SYNC
      patches which are required before this patch it's actually surprisingly
      simple, we just need to figure out when to set the datasync flag to
      vfs_fsync_range and when not.
      
      This patch renames the existing O_SYNC flag to O_DSYNC while keeping it's
      numerical value to keep binary compatibility, and adds a new real O_SYNC
      flag.  To guarantee backwards compatiblity it is defined as expanding to
      both the O_DSYNC and the new additional binary flag (__O_SYNC) to make
      sure we are backwards-compatible when compiled against the new headers.
      
      This also means that all places that don't care about the differences can
      just check O_DSYNC and get the right behaviour for O_SYNC, too - only
      places that actuall care need to check __O_SYNC in addition.  Drivers and
      network filesystems have been updated in a fail safe way to always do the
      full sync magic if O_DSYNC is set.  The few places setting O_SYNC for
      lower layers are kept that way for now to stay failsafe.
      
      We enforce that O_DSYNC is set when __O_SYNC is set early in the open path
      to make sure we always get these sane options.
      
      Note that parisc really screwed up their headers as they already define a
      O_DSYNC that has always been a no-op.  We try to repair it by using it for
      the new O_DSYNC and redefinining O_SYNC to send both the traditional
      O_SYNC numerical value _and_ the O_DSYNC one.
      
      Cc: Richard Henderson <rth@twiddle.net>
      Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
      Cc: Grant Grundler <grundler@parisc-linux.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Andreas Dilger <adilger@sun.com>
      Acked-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      Acked-by: NKyle McMartin <kyle@mcmartin.ca>
      Acked-by: NUlrich Drepper <drepper@redhat.com>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NJan Kara <jack@suse.cz>
      6b2f3d1f
  9. 27 11月, 2009 2 次提交
    • T
      ALSA: pcm - fix page conversion on non-coherent PPC arch · 6985c887
      Takashi Iwai 提交于
      The non-cohernet PPC arch doesn't give the correct address by a simple
      virt_to_page() for pages allocated via dma_alloc_coherent().
      This patch adds a hack to fix the conversion similarly like MIPS.
      
      Note that this doesn't fix perfectly: the pages should be marked with
      proper pgprot value.  This will be done in a future implementation like
      the conversion to dma_mmap_coherent().
      Acked-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      6985c887
    • T
      ALSA: pcm - fix page conversion on non-coherent MIPS arch · 66b6cfac
      Takashi Iwai 提交于
      The non-coherent MIPS arch doesn't give the correct address by a simple
      virt_to_page() for pages allocated via dma_alloc_coherent().
      
      Original patch by Wu Zhangjin <wuzj@lemote.com>.
      [Ralf mentioned: "The origins of this patch go back far further.
       The oldest patch I could find which is a superset of this was written
       by Atsushi Nemoto and various incarnations of it have been sumitted
       to and reject by me a number of times through the years."]
      A proper check of the buffer allocation type was added to avoid the
      wrong conversion.
      
      Note that this doesn't fix perfectly: the pages should be marked with
      proper pgprot value.  This will be done in a future implementation like
      the conversion to dma_mmap_coherent().
      Acked-by: NRalf Baechle <ralf@linux-mips.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      66b6cfac
  10. 26 11月, 2009 2 次提交
  11. 18 11月, 2009 1 次提交
  12. 10 11月, 2009 6 次提交
  13. 06 11月, 2009 2 次提交
  14. 05 11月, 2009 2 次提交
  15. 30 10月, 2009 1 次提交
  16. 12 10月, 2009 1 次提交
    • K
      ALSA: snd_dma_pointer workaround for chipsets with buggy DMA · 8066e51a
      Krzysztof Helt 提交于
      The chipsets with the isa_dma_bridge_buggy set do not stop DMA during
      DMA counter reads. The DMA counter is read in two 8-bit read steps
      on x86 platform. Sometimes, such reads happen during higher byte
      change so the lower byte is already decremented (rolled over) but
      the higher byte is not. It introduces an error that position is
      moved 256 bytes ahead of the true position. Thus, the next DMA
      position read can return a lower value then the previous read.
      If the DMA position is decreased (reversed) the ALSA subsystem is
      tricked into the playback underrun error and resets the playback.
      It results in a "pop" during a playback.
      
      Work around the issue by reading the counter twice and choosing a higher
      value.
      Signed-off-by: NKrzysztof Helt <krzysztof.h1@wp.pl>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      8066e51a
  17. 28 9月, 2009 1 次提交
  18. 21 9月, 2009 1 次提交
  19. 08 9月, 2009 2 次提交
  20. 07 9月, 2009 1 次提交
  21. 31 8月, 2009 1 次提交
  22. 27 8月, 2009 2 次提交
    • T
      ALSA: Add debug module option · 36ce99c1
      Takashi Iwai 提交于
      Add debug module option to snd core.
      This controls the debug print level.  When CONFIG_SND_DEBUG_VERBOSE
      is set, you can suppress the debug messages by giving or changing this
      parameter to a lower value.  debug=0 means no debug messsages.
      As default, it's set to the verbose level 2.
      
      Since this option can be changed dynamically via sysfs file, you can
      suppress the verbose debug messages on the fly, which wasn't possible
      before.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      36ce99c1
    • T
      ALSA: core - strip too long file names in snd_print*() · 1b0053a0
      Takashi Iwai 提交于
      When modules are built with M= option, they pass long file paths to
      __FILE__.  This results in ugly outputs of snd_print*() when
      CONFIG_SND_VERBOSE_PRINTK is set.
      
      This patch adds a check of the path and strips the leading path dirs
      if the file name is an absolute path to improve the readability of logs.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      1b0053a0
  23. 25 8月, 2009 1 次提交
  24. 20 8月, 2009 1 次提交
    • T
      ALSA: pcm - Fix drain behavior in non-blocking mode · 4cdc115f
      Takashi Iwai 提交于
      The current PCM core has the following problems regarding PCM draining
      in non-blocking mode:
      
      - the current f_flags isn't checked in snd_pcm_drain(), thus changing
        the mode dynamically via snd_pcm_nonblock() after open doesn't work.
      - calling drain in non-blocking mode just return -EAGAIN error, but
        doesn't provide any way to sync with draining.
      
      This patch fixes these issues.
      - check file->f_flags in snd_pcm_drain() properly
      - when O_NONBLOCK is set, PCM core sets the stream(s) to DRAIN state
        but quits ioctl immediately without waiting the whole drain; the
        caller can sync the drain manually via poll()
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      4cdc115f
  25. 17 8月, 2009 2 次提交