1. 11 Jun, 2018 1 commit
  2. 16 Apr, 2018 1 commit
    • Takashi Iwai's avatar
      ALSA: emu10k1: Reduce GFP_ATOMIC allocation · 057666b6
      Takashi Iwai authored
      
      
      The emu10k1 fx8010 code allocates each irq resource dynamically and
      links to the list at PCM trigger callback.  Due to the nature of
      trigger callback, the allocation is done with GFP_ATOMIC, hence it
      may fail more often.  Moreover, the irq resource isn't big at all, and
      using the kmalloc for this won't save many bytes, either.
      
      This patch removes the dynamic allocation and embeds the irq resource
      into struct snd_emu10k1_fx8010_pcm.irq field instead of keeping a
      pointer.  As a result, it simplifies the code and removes the
      unnecessary GFP_ATOMIC usage.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      057666b6
  3. 14 Feb, 2018 1 commit
    • Maciej S. Szmigiero's avatar
      ALSA: emu10k1: add a IOMMU workaround · 04f8773a
      Maciej S. Szmigiero authored
      
      
      The Audigy 2 CA0102 chip (but most likely others from the emu10k1 family,
      too) has a problem that from time to time it likes to do few DMA reads a
      bit beyond its normal allocation and gets very confused if these reads get
      blocked by a IOMMU.
      
      For the first (reserved) page this happens multiple times at every
      playback, for various synth pages it happens randomly, rarely for PCM
      playback buffers and the page table memory itself.
      All these reads seem to follow a similar pattern, observed read offsets
      beyond the allocation end were 0x00, 0x40, 0x80 and 0xc0 (PCI cache line
      multiples), so it looks like the device tries to accesses up to 256 extra
      bytes.
      
      As a workaround let's widen these DMA allocations by an extra page if we
      detect that the device is behind a non-passthrough IOMMU (the DMA memory
      should be relatively plenty on IOMMU systems).
      Signed-off-by: default avatarMaciej S. Szmigiero <mail@maciej.szmigiero.name>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      04f8773a
  4. 12 Aug, 2017 1 commit
  5. 09 Jun, 2017 1 commit
  6. 25 May, 2017 1 commit
  7. 21 Feb, 2017 1 commit
    • Bhumika Goyal's avatar
      ALSA: pci: constify snd_kcontrol_new structures · f3b827e0
      Bhumika Goyal authored
      
      
      Declare snd_kcontrol_new structures as const as they are only passed as
      an argument to the function snd_ctl_new1. This argument is of type
      const, so snd_kcontrol_new structures having the same property can be
      made const too.
      Done using Coccinelle:
      
      @r1 disable optional_qualifier @
      identifier i;
      position p;
      @@
      static struct snd_kcontrol_new i@p = {...};
      
      @ok1@
      identifier r1.i;
      position p;
      expression e1;
      @@
      snd_ctl_new1(&i@p,e1)
      
      @bad@
      position p!={r1.p,ok1.p};
      identifier r1.i;
      @@
      i@p
      
      @depends on !bad disable optional_qualifier@
      identifier r1.i;
      @@
      +const
      struct snd_kcontrol_new i;
      Signed-off-by: default avatarBhumika Goyal <bhumirks@gmail.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      f3b827e0
  8. 02 Sep, 2016 1 commit
    • Julia Lawall's avatar
      ALSA: constify snd_pcm_ops structures · 6769e988
      Julia Lawall authored
      Check for snd_pcm_ops structures that are only stored in the ops field of a
      snd_soc_platform_driver structure or passed as the third argument to
      snd_pcm_set_ops.  The corresponding field or parameter is declared const,
      so snd_pcm_ops structures that have this property can be declared as const
      also.
      
      The semantic patch that makes this change is as follows:
      (http://coccinelle.lip6.fr/
      
      )
      
      // <smpl>
      @r disable optional_qualifier@
      identifier i;
      position p;
      @@
      static struct snd_pcm_ops i@p = { ... };
      
      @ok1@
      identifier r.i;
      struct snd_soc_platform_driver e;
      position p;
      @@
      e.ops = &i@p;
      
      @ok2@
      identifier r.i;
      expression e1, e2;
      position p;
      @@
      snd_pcm_set_ops(e1, e2, &i@p)
      
      @bad@
      position p != {r.p,ok1.p,ok2.p};
      identifier r.i;
      struct snd_pcm_ops e;
      @@
      e@i@p
      
      @depends on !bad disable optional_qualifier@
      identifier r.i;
      @@
      static
      +const
       struct snd_pcm_ops i = { ... };
      // </smpl>
      Signed-off-by: default avatarJulia Lawall <Julia.Lawall@lip6.fr>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      6769e988
  9. 29 Apr, 2015 1 commit
    • Peter Zubaj's avatar
      ALSA: emu10k1: Emu10k2 32 bit DMA mode · 7241ea55
      Peter Zubaj authored
      
      
      Looks like audigy emu10k2 (probably emu10k1 - sb live too) support two
      modes for DMA. Second mode is useful for 64 bit os with more then 2 GB
      of ram (fixes problems with big soundfont loading)
      
      1) 32MB from 2 GB address space using 8192 pages (used now as default)
      2) 16MB from 4 GB address space using 4096 pages
      
      Mode is set using HCFG_EXPANDED_MEM flag in HCFG register.
      Also format of emu10k2 page table is then different.
      Signed-off-by: default avatarPeter Zubaj <pzubaj@marticonet.sk>
      Tested-by: default avatarTakashi Iwai <tiwai@suse.de>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      7241ea55
  10. 02 Jan, 2015 1 commit
  11. 26 Feb, 2014 1 commit
  12. 25 Feb, 2013 1 commit
  13. 07 Dec, 2012 1 commit
  14. 06 Oct, 2012 1 commit
  15. 20 Sep, 2011 1 commit
  16. 18 Aug, 2010 1 commit
  17. 08 Jun, 2009 1 commit
  18. 05 Feb, 2009 1 commit
  19. 31 Jan, 2008 2 commits
  20. 16 Oct, 2007 1 commit
  21. 20 Jul, 2007 1 commit
  22. 09 Feb, 2007 2 commits
  23. 03 Jan, 2006 4 commits
  24. 04 Nov, 2005 1 commit
  25. 12 Sep, 2005 1 commit
    • Takashi Iwai's avatar
      [ALSA] Replace with kzalloc() - pci stuff · e560d8d8
      Takashi Iwai authored
      
      
      AD1889 driver,ATIIXP driver,ATIIXP-modem driver,AZT3328 driver
      BT87x driver,CMIPCI driver,CS4281 driver,ENS1370/1+ driver
      ES1938 driver,ES1968 driver,FM801 driver,Intel8x0 driver
      Intel8x0-modem driver,Maestro3 driver,SonicVibes driver,VIA82xx driver
      VIA82xx-modem driver,AC97 Codec,AK4531 codec,au88x0 driver
      CA0106 driver,CS46xx driver,EMU10K1/EMU10K2 driver,HDA Codec driver
      HDA generic driver,HDA Intel driver,ICE1712 driver,ICE1724 driver
      KORG1212 driver,MIXART driver,NM256 driver,Trident driver,YMFPCI driver
      Replace kcalloc(1,..) with kzalloc().
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      e560d8d8
  26. 30 Aug, 2005 1 commit
    • Clemens Ladisch's avatar
      [ALSA] sound - fix .iface field of mixer control elements · 67ed4161
      Clemens Ladisch authored
      
      
      Documentation,CS46xx driver,EMU10K1/EMU10K2 driver,AD1848 driver
      SB16/AWE driver,CMIPCI driver,ENS1370/1+ driver,RME32 driver
      RME96 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
      RME HDSP driver,RME9652 driver
      This patch changes .iface to SNDRV_CTL_ELEM_IFACE_MIXER whre _PCM or
      _HWDEP was used in controls that are not associated with a specific PCM
      (sub)stream or hwdep device, and changes some controls that got
      inconsitent .iface values due to copy+paste errors.  Furthermore, it
      makes sure that all control that do use _PCM or _HWDEP use the correct
      number in the .device field.
      Signed-off-by: default avatarClemens Ladisch <clemens@ladisch.de>
      67ed4161
  27. 22 Jun, 2005 1 commit
    • Jesper Juhl's avatar
      [ALSA] Remove redundant NULL checks before kfree · 4d572776
      Jesper Juhl authored
      
      
      Timer Midlevel,ALSA sequencer,ALSA<-OSS sequencer,Digigram VX core
      I2C tea6330t,GUS Library,VIA82xx driver,VIA82xx-modem driver
      CA0106 driver,CS46xx driver,EMU10K1/EMU10K2 driver,YMFPCI driver
      Digigram VX Pocket driver,Common EMU synth,USB generic driver,USB USX2Y
      Checking a pointer for NULL before calling kfree() on it is redundant,
      kfree() deals with NULL pointers just fine.
      This patch removes such checks from sound/
      
      This patch also makes another, but closely related, change.
      It avoids casting pointers about to be kfree()'ed.
      Signed-off-by: default avatarJesper Juhl <juhl-lkml@dif.dk>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      4d572776
  28. 29 May, 2005 1 commit
  29. 16 Apr, 2005 1 commit
    • Linus Torvalds's avatar
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds authored
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4