1. 28 Aug, 2012 5 commits
    • David Flater's avatar
      ALSA: emu8000: fix emu8000 DRAM sized 512 KiB too small · 1338fc97
      David Flater authored
      v2:  Fixed result still wrong in the case of 512 KiB DRAM.  Oops.
      
      Applicable to 3.5.3 mainline.
      
      In emu8000.c, size_dram determines the amount of memory on the sound card by
      doing write/readback tests starting at 512 KiB and incrementing by 512 KiB.
      On success, detected_size is updated to the successful address and testing
      continues.  On failure, the loop is immediately exited.  The resulting
      detected_size is 512 KiB too small except in two special cases:
      
      1. If there is no memory, the initial 0 value of detected_size is used, which
         is correct.
      2. If the address space wraps around, detected_size is updated before the
         bailout, so the result is correct.
      
      The patch corrects all cases and was tested with an AWE64 Gold.  Before:
        EMU8000 [0x620]: 3584 Kb on-board memory detected
        asfxload 4GMGSMT.SF2 (4174814 B) fails.
      After:
        EMU8000 [0x620]: 4096 Kb on-board memory detected
        asfxload 4GMGSMT.SF2 succeeds.
      
      I do not have a card with 512 KiB to test with, but by forcibly enabling the
      added conditional I verified on the AWE64 Gold that it detects 512 KiB
      (successfully reading from the first memory location) and does not hang the
      card.
      
      C.f. Bug 46451 https://bugzilla.kernel.org/show_bug.cgi?id=46451Signed-off-by: default avatarDavid Flater <dave@flaterco.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      1338fc97
    • Takashi Iwai's avatar
      Merge branch 'for-linus' into for-next · a184d4e4
      Takashi Iwai authored
      Need to merge the fixes regarding EPSS.
      
      Conflicts:
      	sound/pci/hda/hda_codec.c
      a184d4e4
    • Takashi Iwai's avatar
      ALSA: hda - Don't trust codec EPSS bit for IDT 92HD83xx & co · c36b5b05
      Takashi Iwai authored
      These codecs seem reporting EPSS but require longer delay for the
      proper D3 transition.  For example, D3_STOP_CLOCK_OK bit won't be set
      correctly even after D3.
      
      In this patch, codec->epss flag is overridden for avoid the
      misbehavior.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      c36b5b05
    • Takashi Iwai's avatar
      ALSA: hda - Avoid unnecessary parameter read for EPSS · 983f6b93
      Takashi Iwai authored
      EPSS parameter should be static, so we can read it once and remember.
      This also allows more easily to override the wrong EPSS capability
      reported from a codec by changing the flag in the codec
      initialization step.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      983f6b93
    • Takashi Iwai's avatar
      ALSA: hda - Make clear built-in driver optimization · 5d908ab9
      Takashi Iwai authored
      Use unsigned int to make clear that the codes required only for
      modules will be reduced by the compiler optimization.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      5d908ab9
  2. 27 Aug, 2012 1 commit
  3. 24 Aug, 2012 2 commits
  4. 23 Aug, 2012 1 commit
    • Mengdong Lin's avatar
      ALSA: hda - add runtime PM support · b8dfc462
      Mengdong Lin authored
      Runtime PM can bring more power saving:
      - When the controller is suspended, its parent device will also have a chance
        to suspend.
      - PCI subsystem can choose the lowest power state the controller can signal
        wake up from. This state can be D3cold on platforms with ACPI PM support.
      And runtime PM can provide a gerneral sysfs interface for a system policy
      manager.
      
      Runtime PM support is based on current HDA power saving implementation. The user
      can enable runtime PM on platfroms that provide acceptable latency on transition
      from D3 to D0.
      
      Details:
      - When both power saving and runtime PM are enabled:
        -- If a codec supports 'stop-clock' in D3, it will request suspending the
           controller after it enters D3 and request resuming the controller before
           back to D0. Thus the controller will be suspended only when all codecs are
           suspended and support stop-clock in D3.
        -- User IO operations and HW wakeup signal can resume the controller back to
           D0.
      - If runtime PM is disabled, power saving just works as before.
      - If power saving is disabled, the controller won't be suspended because the
        power usage counter can never be 0.
      
      More about 'stop-clock' feature:
      If a codec can support targeted pass-through operations in D3 state when there
      is no BCLK present on the link, it will set CLKSTOP flag in the supported power
      states and report PS-ClkStopOk when entering D3 state. Please refer to HDA spec
      section 7.3.3.10 Power state and 7.3.4.12 Supported Power State.
      
      [Fixed CONFIG_PM_RUNTIME dependency in hda_intel.c by tiwai]
      Signed-off-by: default avatarMengdong Lin <mengdong.lin@intel.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      b8dfc462
  5. 22 Aug, 2012 2 commits
  6. 21 Aug, 2012 2 commits
    • Ondrej Zary's avatar
      ALSA: introduce snd-cmi8328: C-Media CMI8328 driver · f9933487
      Ondrej Zary authored
      Introduce snd-cmi8328 driver for C-Media CMI8328-based sound cards, such as
      AudioExcel AV500.
      
      It supports PCM playback and capture (full-duplex) through wss_lib, gameport,
      OPL3 and MPU401. The AV500 card has onboard Dream wavetable synth connected
      to the MPU401 port and Aux 1 input internally which works too.
      The CDROM interface is not supported (as the drivers for these CDROMs were
      removed from the kernel some time ago).
      
      A separate driver is needed because CMI8328 is completely different chip to
      CMI8329/CMI8330. It's configured by magic registers (there's no PnP). Sound is
      provided by a real WSS codec (CS4231A) and the SB part is just a SB Pro
      emulation (for DOS games, useless for Linux).
      
      When SB is enabled, the CMI8328 chip disables access to the WSS codec,
      emulates SoundBlaster on one side and outputs sound data to the codec - so SB
      and WSS can't work together with this card. The WSS codec can do full duplex
      by itself so there's no need for crazy things like snd-cmi8330 does
      (combining SB and WSS parts into one driver).
      Signed-off-by: default avatarOndrej Zary <linux@rainbow-software.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      f9933487
    • Ondrej Zary's avatar
      ALSA: snd-als100: fix suspend/resume · 53e1719f
      Ondrej Zary authored
      snd_card_als100_probe() does not set pcm field in struct snd_sb.
      As a result, PCM is not suspended and applications don't know that they need
      to resume the playback.
      
      Tested with Labway A381-F20 card (ALS120).
      Signed-off-by: default avatarOndrej Zary <linux@rainbow-software.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      53e1719f
  7. 20 Aug, 2012 20 commits
  8. 17 Aug, 2012 3 commits
  9. 16 Aug, 2012 2 commits
  10. 15 Aug, 2012 1 commit
    • Takashi Iwai's avatar
      ALSA: hda - Add 3stack-automute model to AD1882 codec · 1c868452
      Takashi Iwai authored
      Added a simple support of automute for the front HP jack to AD1882
      stack model.  Such an addition is basically an exception -- we really
      want to avoid the static quirk codes, but AD1882 parser isn't still
      ready for moving to the BIOS auto-parser yet.  So, as a quick fix, I
      merged it for now.
      
      In near future, we really need the big clean up of patch_analog.c to
      move on to the auto-parser...
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      1c868452
  11. 14 Aug, 2012 1 commit