1. 27 6月, 2014 1 次提交
    • T
      ALSA: hda - Make position_fix as generic callback · b6050ef6
      Takashi Iwai 提交于
      ... and move most parts into hda_intel.c from the generic controller
      code.  This is a clean up, and there should be no functional change by
      this patch.
      
      Now, struct azx obtains the generic callbacks for getting the position
      and the delay.  As default NULL, posbuf is read.  These replace the
      old position_fix[], and each is implemented as a callback.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      b6050ef6
  2. 26 6月, 2014 1 次提交
    • M
      ALSA: hda - restore BCLK M/N values when resuming HSW/BDW display controller · a07187c9
      Mengdong Lin 提交于
      For Intel Haswell/Broadwell display HD-A controller, the 24MHz HD-A link BCLK
      is converted from Core Display Clock (CDCLK): BCLK = CDCLK * M / N
      And there are two registers EM4 and EM5 to program M, N value respectively.
      The EM4/EM5 values will be lost and when the display power well is disabled.
      
      BIOS programs CDCLK selected by OEM and EM4/EM5, but BIOS has no idea about
      display power well on/off at runtime. So the M/N can be wrong if non-default
      CDCLK is used when the audio controller resumes, which results in an invalid
      BCLK and abnormal audio playback rate. So this patch saves and restores valid
      M/N values on controller suspend/resume.
      
      And 'struct hda_intel' is defined to contain standard HD-A 'struct azx' and
      Intel specific fields, as Takashi suggested.
      Signed-off-by: NMengdong Lin <mengdong.lin@intel.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      a07187c9
  3. 16 6月, 2014 1 次提交
    • T
      drm/i915, HD-audio: Don't continue probing when nomodeset is given · 74b0c2d7
      Takashi Iwai 提交于
      When a machine is booted with nomodeset option, i915 driver skips the
      whole initialization.  Meanwhile, HD-audio tries to bind wth i915 just
      by request_symbol() without knowing that the initialization was
      skipped, and eventually it hits WARN_ON() in i915_request_power_well()
      and i915_release_power_well() wrongly but still continues probing,
      even though it doesn't work at all.
      
      In this patch, both functions are changed to return an error in case
      of uninitialized state instead of WARN_ON(), so that HD-audio driver
      can give up HDMI controller initialization at the right time.
      Acked-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Cc: <stable@vger.kernel.org> [3.15]
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      74b0c2d7
  4. 09 6月, 2014 2 次提交
  5. 23 5月, 2014 1 次提交
  6. 22 5月, 2014 1 次提交
  7. 13 5月, 2014 1 次提交
  8. 30 4月, 2014 1 次提交
    • T
      ALSA: hda - Suppress CORBRP clear on Nvidia controller chips · 6ba736dd
      Takashi Iwai 提交于
      The recent commit (ca460f86) changed the CORB RP reset procedure to
      follow the specification with a couple of sanity checks.
      Unfortunately, Nvidia controller chips seem not following this way,
      and spew the warning messages like:
        snd_hda_intel 0000:00:10.1: CORB reset timeout#1, CORBRP = 0
      
      This patch adds the workaround for such chips.  It just skips the new
      reset procedure for the known broken chips.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      6ba736dd
  9. 09 4月, 2014 1 次提交
  10. 03 3月, 2014 2 次提交
  11. 01 3月, 2014 19 次提交
  12. 28 2月, 2014 1 次提交
  13. 25 2月, 2014 2 次提交
    • T
      ALSA: hda - Replace with standard printk · 4e76a883
      Takashi Iwai 提交于
      Use dev_err() and co for messages from HD-audio controller and codec
      drivers.  The codec drivers are mostly bound with codec objects, so
      some helper macros, codec_err(), codec_info(), etc, are provided.
      They merely wrap the corresponding dev_xxx().
      
      There are a few places still calling snd_printk() and its variants
      as they are called without the codec or device context.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      4e76a883
    • T
      ALSA: hda - Create own device struct for each codec · 13aeaf68
      Takashi Iwai 提交于
      As the HD-audio is treated individually in each codec driver, it's
      more convenient to assign an own struct device to each codec object.
      Then we'll be able to use dev_err() more easily for each codec, for
      example.
      
      For achieving it, this patch just creates an object "hdaudioCxDy".
      It belongs to sound class instead of creating a new bus, just for
      simplicity, at this stage.  No pm ops is implemented in the device
      struct level but currently it's merely a container.  The PCM and hwdep
      devices are now children of this codec device.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      13aeaf68
  14. 12 2月, 2014 1 次提交
  15. 10 2月, 2014 1 次提交
    • T
      ALSA: Replace with IS_ENABLED() · 8eeaa2f9
      Takashi Iwai 提交于
      Replace the lengthy #if defined(XXX) || defined(XXX_MODULE) with the
      new IS_ENABLED() macro.
      
      The patch still doesn't cover all ifdefs.  For example, the dependency
      on CONFIG_GAMEPORT is still open-coded because this also has an extra
      dependency on MODULE.  Similarly, an open-coded ifdef in pcm_oss.c and
      some sequencer-related stuff are left untouched.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      8eeaa2f9
  16. 07 2月, 2014 1 次提交
  17. 30 1月, 2014 1 次提交
  18. 09 1月, 2014 1 次提交
  19. 08 1月, 2014 1 次提交
    • T
      ALSA: hda - Increment default stream numbers for AMD HDMI controllers · 7546abfb
      Takashi Iwai 提交于
      It turned out that some AMD HDMI controllers still don't provide
      proper values in GCAP register (all zero), and the driver assigns only
      one stream in that case, although the connected codec chip supports
      more than one stream.
      
      In this patch, the default max number of streams for AMD HDMI
      controllers is increased to 8, which  should suffice for most use
      cases.  The overhead by this increase is more azx_dev struct and BDL
      allocations, so it's negligible.  Of course, if the controller
      provides a proper GCAP register, the register value would be used.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      7546abfb