1. 21 Dec, 2015 3 commits
    • Andy Shevchenko's avatar
      ALSA: fm801: detect FM-only card earlier · b56fa687
      Andy Shevchenko authored
      If user does not supply tea575x_tuner parameter the driver tries to detect the
      tuner type. The failed codec initialization is considered as FM-only card
      present, however the driver still registers an IRQ handler for it.
      
      Move codec detection earlier to set tea575x_tuner parameter before check.
      
      Here the following functions are introduced
       reset_coded()                       resets AC97 codec
       snd_fm801_chip_multichannel_init()  initializes cards with multichannel support
      
      Fixes: 5618955c (ALSA: fm801: move to pcim_* and devm_* functions)
      Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      b56fa687
    • Andy Shevchenko's avatar
      ALSA: fm801: propagate TUNER_ONLY bit when autodetected · dbec6719
      Andy Shevchenko authored
      The commit d7ba858a (ALSA: fm801: implement TEA575x tuner autodetection)
      brings autodetection to the driver. However the autodetection algorithm misses
      the TUNER_ONLY bit if it is supplied by the user.
      
      Thus, user gets weird messages and no card registered.
      
       snd_fm801 0000:0d:01.0: detected TEA575x radio type SF64-PCR
       snd_fm801 0000:0d:01.0: AC'97 interface is busy (1)
       snd_fm801 0000:0d:01.0: AC'97 interface is busy (1)
      ...
       snd_fm801 0000:0d:01.0: AC'97 0 does not respond - RESET
       snd_fm801 0000:0d:01.0: AC'97 interface is busy (1)
       snd_fm801 0000:0d:01.0: AC'97 interface is busy (1)
       snd_fm801 0000:0d:01.0: AC'97 0 access is not valid [0x0], removing mixer.
       snd_fm801: probe of 0000:0d:01.0 failed with error -5
      
      Do a copy of TUNER_ONLY bit to be applied after autodetection is done.
      
      Fixes: d7ba858a (ALSA: fm801: implement TEA575x tuner autodetection)
      Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Cc: Ondrej Zary <linux@rainbow-software.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      dbec6719
    • Takashi Iwai's avatar
      1d9d4495
  2. 20 Dec, 2015 5 commits
  3. 17 Dec, 2015 4 commits
  4. 16 Dec, 2015 1 commit
  5. 15 Dec, 2015 7 commits
  6. 11 Dec, 2015 1 commit
  7. 10 Dec, 2015 8 commits
    • Takashi Iwai's avatar
      ALSA: hda - Move audio component accesses to hdac_i915.c · e2dc7d7d
      Takashi Iwai authored
      A couple of i915_audio_component ops have been added and accessed
      directly from patch_hdmi.c.  Ideally all these should be factored out
      into hdac_i915.c.
      
      This patch does it, adds two new helper functions for setting N/CTS
      and fetching ELD bytes.  One bonus is that the hackish widget vs port
      mapping is also moved to hdac_i915.c, so that it can be fixed /
      enhanced more cleanly.
      Reviewed-by: default avatarVinod Koul <vinod.koul@intel.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      e2dc7d7d
    • Takashi Iwai's avatar
      ALSA: hda - Use component ops for i915 HDMI/DP audio jack handling · 788d441a
      Takashi Iwai authored
      Since we have a new audio component ops to fetch the current ELD and
      state now, we can reduce the usage of unsol event of HDMI/DP pins.
      The unsol event isn't only unreliable, but it also needs the power
      up/down of the codec and link at each time, which is a significant
      power and time loss.
      
      In this patch, the jack creation and unsol/jack event handling are
      modified to use the audio component for the dedicated Intel chips.
      
      The jack handling got slightly more codes than a simple usage of
      hda_jack layer since we need to deal directly with snd_jack object;
      the hda_jack layer is basically designed for the pin sense read and
      unsol events, both of which aren't used any longer in our case.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      788d441a
    • Takashi Iwai's avatar
      Merge tag 'drm-i915-get-eld' into topic/hdmi-jack · e826d22e
      Takashi Iwai authored
      Merge the latest i915 audio component changes for HDMI/DP get_eld ops.
      This is actually used in HD-audio side in this branch.
      e826d22e
    • Takashi Iwai's avatar
      ALSA: hda - Fix superfluous HDMI jack repoll · 9a5e5234
      Takashi Iwai authored
      The recent commit [e90247f9: ALSA: hda - Split ELD update code
      from hdmi_present_sense()] rewrote the HDMI jack handling code, but a
      slight behavior change sneaked in unexpectedly.  When the jack isn't
      connected, it tries repoll unnecessarily.
      
      This patch addresses the flaw, to the right behavior as before.
      
      Fixes: e90247f9 ('ALSA: hda - Split ELD update code from hdmi_present_sense()')
      Reported-and-tested-by: default avatarDavid Henningsson <david.henningsson@canonical.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      9a5e5234
    • Takashi Iwai's avatar
      drm/i915: Add reverse mapping between port and intel_encoder · 0bdf5a05
      Takashi Iwai authored
      This patch adds a reverse mapping from a digital port number to
      intel_encoder object containing the corresponding intel_digital_port.
      It simplifies the query of the encoder a lot.
      
      Note that, even if it's a valid digital port, the dig_port_map[] might
      point still to NULL -- usually it implies a DP MST port.  Due to this
      fact, the NULL check in each place has no WARN_ON() and just skips the
      port.  Once when the situation changes in future, we might introduce
      WARN_ON() for a more strict check.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      0bdf5a05
    • Takashi Iwai's avatar
      drm/i915: Add get_eld audio component · cae666ce
      Takashi Iwai authored
      Implement a new i915_audio_component_ops, get_eld().  It's called by
      the audio driver to fetch the current audio status and ELD of the
      given HDMI/DP port.  It returns the size of expected ELD bytes if it's
      valid, zero if no valid ELD is found, or a negative error code.  The
      current state of audio on/off is stored in the given pointer, too.
      
      Note that the returned size isn't limited to the given max bytes.  If
      the size is greater than the max bytes, it means that only a part of
      ELD has been copied back.
      
      For achieving this implementation, a new field audio_connector is
      added to struct intel_digital_port.  It points to the connector
      assigned to the given digital port.  It's set/reset at each audio
      enable/disable call in intel_audio.c, and protected with av_mutex.
      Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      cae666ce
    • Takashi Iwai's avatar
      ALSA: hda - Allow i915 binding later in codec driver · 55913110
      Takashi Iwai authored
      Due to the recent change, HDA controller driver for Intel PCH tries to
      bind i915 audio component always at the probe time no matter whether
      HDMI/DP codec is found.  This is, however, superflulous for old
      chipsets (e.g. on IVB) where they don't have always the HDMI/DP codecs
      but  often have only a discrete GPU instead.
      
      For the newer chipsets, we need already the i915 binding from the
      beginning due to power well control.  Meanwhile, for older chipsets
      where we don't need power well, we don't need the i915 binding at the
      controller level.
      
      This patch removes again the i915 binding in the HDA controller driver
      for old Intel PCHs, but adds the binding in HDMI/DP codec driver
      instead.  This allows still the use of the direct notification from
      the graphics driver while we can avoid the unnecessary load of i915
      driver for machines only with another GPU.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      55913110
    • Takashi Iwai's avatar
      ALSA: hda - Optimize audio component check in patch_hdmi.c · f4e3040b
      Takashi Iwai authored
      The audio component is enabled only when CONFIG_SND_HDA_I915 is set.
      Give a dummy macro for allowing the compiler optimize out the relevant
      codes when this Kconfig isn't set.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      f4e3040b
  8. 09 Dec, 2015 3 commits
    • Arnd Bergmann's avatar
      sound/oss: remove VIRT_TO_BUS dependency · c83d1b37
      Arnd Bergmann authored
      The OSS sound drivers used to rely on virt_to_bus(), but don't any more,
      so we can remove the Kconfig dependency.
      
      As a lot of architectures don't provide VIRT_TO_BUS any more, removing
      the dependency in sounds/oss/ would make the deprecated drivers appear
      there, which we probably don't want. Instead I'm replacing the
      simple dependency with 'VIRT_TO_BUS || RPC || NETWINDER' so we can
      still build these sound drivers for the platforms that need them,
      but don't change anything on other architectures.
      
      As a follow-up, we can remove the virt_to_bus() implementation
      and Kconfig symbol in the ARM architecture.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      c83d1b37
    • Takashi Iwai's avatar
      ALSA: hda - Don't try to bind i915 unless CONFIG_SND_HDA_I915 is set · fbaf9f9f
      Takashi Iwai authored
      snd-hda-intel driver tries to bind with i915 audio component always
      when AZX_DCAPS_I915_POWERWELL is set in the driver caps.  This was
      mostly OK in the past, as the flag was applied only to a limited set
      of devices, namely, Haswell and Broadwell.  On these machines, i915
      graphics is almost mandatory as long as HDMI/DP is concerned.
      
      Recently the application of i915 binding was widened to more Intel
      chips.  On these chips, the chance of a kernel without i915 graphics
      is much higher, and such user would hit an error like:
      
       snd_hda_intel 0000:00:1b.0: failed to add i915 component master (-19)
      
      Although the error itself is harmless, it's certainly superfluous even
      to try binding with i915, if we already know that there isn't any.
      
      This patch fixes it by simply defining AZX_DCAPS_I915_POWERWELL as 0
      in the case without i915.  Then all codes referring to this flag will
      be optimized out by the compiler.
      
      Fixes: 6603249d ('ALSA: hda - Enable audio component for old Intel PCH devices')
      Reported-by: default avatarkernel test robot <ying.huang@linux.intel.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      fbaf9f9f
    • Takashi Iwai's avatar
      ALSA: hda - Less grumbling about lack of i915 binding · 6ee8eeb4
      Takashi Iwai authored
      The recent commit [6603249d: ALSA: hda - Enable audio component
      for old Intel PCH devices] enabled the i915 binding for HDMI/DP on old
      Intel PCHs.  But many boards are without HDMI/DP, and they actually
      don't need i915 binding, and yet the driver has a check of i915
      binding and complains like
      	Haswell must be built with CONFIG_SND_HDA_I915
      This error is false-positive, and it should be put only for HSW/BDW,
      instead of all devices that may be bound with i915.
      
      This patch fixes the condition to check, as well as rephrasing the
      message specific to HSW/BDW HDMI/DP.
      
      Fixes: 6603249d ('ALSA: hda - Enable audio component for old Intel PCH devices')
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      6ee8eeb4
  9. 08 Dec, 2015 4 commits
    • Takashi Iwai's avatar
      ALSA: hda - Implement loopback control switch for Realtek and other codecs · e7fdd527
      Takashi Iwai authored
      Many codecs, typically found on Realtek codecs, have the analog
      loopback path merged to the secondary input of the middle of the
      output paths.  Currently, we don't offer the dynamic switching in such
      configuration but let each loopback path mute by itself.
      
      This should work well in theory, but in reality, we often see that
      such a dead loopback path causes some background noises even if all
      the elements get muted.  Such a problem has been fixed by adding the
      quirk accordingly to disable aamix, and it's the right fix, per se.
      The only problem is that it's not so trivial to achieve it; user needs
      to pass a hint string via patch module option or sysfs.
      
      This patch gives a bit improvement on the situation: it adds "Loopback
      Mixing" control element for such codecs like other codecs (e.g. IDT or
      VIA codecs) with the individual loopback paths.  User can turn on/off
      the loopback path simply via a mixer app.
      
      For keeping the compatibility, the loopback is still enabled on these
      codecs.  But user can try to turn it off if experiencing a suspicious
      background or click noise on the fly, then build a static fixup later
      once after the problem is addressed.
      
      Other than the addition of the loopback enable/disablement control,
      there should be no changes.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      e7fdd527
    • Takashi Iwai's avatar
      ALSA: hda - Make snd_hda_parse_nid_path() local · c4a58c30
      Takashi Iwai authored
      An exported function snd_hda_parse_nid_path() is used only inside
      hda_generic.c.  Let's make it a static local function for a better
      code optimization.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      c4a58c30
    • Takashi Iwai's avatar
      ALSA: hda - Remove unused snd_hda_get_nid_path() · 1e73bf78
      Takashi Iwai authored
      An exported helper function snd_hda_get_nid_path() is nowhere used.
      Let's remove it.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      1e73bf78
    • Dave Airlie's avatar
      Back merge tag 'v4.4-rc4' into drm-next · e876b41a
      Dave Airlie authored
      We've picked up a few conflicts and it would be nice
      to resolve them before we move onwards.
      e876b41a
  10. 07 Dec, 2015 2 commits
  11. 06 Dec, 2015 2 commits