1. 05 Sep, 2018 1 commit
    • Charles Keepax's avatar
      ASoC: dapm: Move error handling to snd_soc_dapm_new_control_unlocked · 3bbf5d34
      Charles Keepax authored
      Currently DAPM has a lot of similar code to handle errors from
      snd_soc_dapm_new_control_unlocked, and much of this code does
      not really accurately reflect what the function returns.
      
      Firstly, most places will check for a return value of
      -EPROBE_DEFER and silence any error messages in that case. The
      one notable exception here being dapm_kcontrol_data_alloc
      which does currently print any error messages in the case
      of snd_soc_dapm_new_control_unlocked returning NULL or an
      error. Additionally the error prints being silenced in these
      case are redundant as snd_soc_dapm_new_control_unlocked can
      only return -EPROBE_DEFER or NULL when failing.
      
      Secondly, most places will treat a return value of NULL as
      an -ENOMEM.  This is not correct either since any error except
      EPROBE_DEFER will cause a return value of NULL from
      snd_soc_dapm_new_control_unlocked.
      
      Centralise this handling and the error messages within
      snd_soc_dapm_new_control_unlocked and update the callers
      to simply check IS_ERR and return. Note that this update is
      slightly simpler in the case of dapm_kcontrol_data_alloc where
      that is fairly close to the handling that was already in place.
      Signed-off-by: default avatarCharles Keepax <ckeepax@opensource.cirrus.com>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      3bbf5d34
  2. 04 Sep, 2018 3 commits
  3. 03 Sep, 2018 20 commits
  4. 31 Aug, 2018 16 commits
    • Andrew F. Davis's avatar
      ASoC: tas6424: Add channel fault reporting · 5fb6589a
      Andrew F. Davis authored
      The TAS6426 has a register that reports channel faults such as
      overcurrent and continuous DC output. Add reporting of this here.
      Signed-off-by: default avatarAndrew F. Davis <afd@ti.com>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      5fb6589a
    • Mark Brown's avatar
      4c11d767
    • Andrew F. Davis's avatar
      ASoC: tas6424: Save last fault register even when clear · d40e3e9e
      Andrew F. Davis authored
      When there is no fault bit set in a fault register we skip the fault
      reporting section for that register. This also skips over saving that
      registers value. We save the value so we will not double report an
      error, but if an error clears then returns we will also not report it
      as we did not save the all cleared register value. Fix this by saving
      the fault register value in the all clear path.
      Signed-off-by: default avatarAndrew F. Davis <afd@ti.com>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      Cc: stable@vger.kernel.org
      d40e3e9e
    • Andrew F. Davis's avatar
      ASoC: tas6424: Print full register name in error message · 91986921
      Andrew F. Davis authored
      The current short version of the register name may be
      ambiguous when another fault register detection is added.
      Use the full name.
      
      While here fix comment about clearing faults, the CLEAR_FAULT
      register actually only clears sticky bits, which are only
      warnings, fault bits can only cleared by resolving the fault.
      Signed-off-by: default avatarAndrew F. Davis <afd@ti.com>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      91986921
    • Kuninori Morimoto's avatar
      ASoC: simple-card-util: remove dai_link compatible code for platform · c2f0898b
      Kuninori Morimoto authored
      Now no simple/audio cards are using legacy dai_link style for platform.
      Let's remove compatible code.
      Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      c2f0898b
    • Kuninori Morimoto's avatar
      ASoC: audio-graph-scu-card: support snd_soc_dai_link_component style for platform · 77b9b841
      Kuninori Morimoto authored
      Current ASoC is supporting snd_soc_dai_link_component for binding,
      it is more useful than current legacy style.
      Currently only codec is supporting it as multicodec (= codecs).
      CPU will support multi style in the future.
      We want to have it on Platform too in the future.
      
      If all Codec/CPU/Platform are replaced into snd_soc_dai_link_component
      style, we can remove legacy complex style.
      This patch supports snd_soc_dai_link_component style
      for audio-graph-scu-card for platform.
      
      [current]
      struct snd_soc_dai_link {
      	...
      	*cpu_name;
      	*cpu_of_node;
      	*cpu_dai_name;
      
      	*codec_name;
      	*codec_of_node;
      	*codec_dai_name;
      	*codecs;
      	num_codecs;
      
      	*platform_name;
      	*platform_of_node;
      	...
      }
      
      [in the future]
      struct snd_soc_dai_link {
      	...
      	*cpus
      	num_cpus;
      
      	*codecs;
      	num_codecs;
      
      	*platform;
      	...
      }
      Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      77b9b841
    • Kuninori Morimoto's avatar
      ASoC: audio-graph-card: support snd_soc_dai_link_component style for platform · 46c73187
      Kuninori Morimoto authored
      Current ASoC is supporting snd_soc_dai_link_component for binding,
      it is more useful than current legacy style.
      Currently only codec is supporting it as multicodec (= codecs).
      CPU will support multi style in the future.
      We want to have it on Platform too in the future.
      
      If all Codec/CPU/Platform are replaced into snd_soc_dai_link_component
      style, we can remove legacy complex style.
      This patch supports snd_soc_dai_link_component style
      for audio-graph-card for platform.
      
      [current]
      struct snd_soc_dai_link {
      	...
      	*cpu_name;
      	*cpu_of_node;
      	*cpu_dai_name;
      
      	*codec_name;
      	*codec_of_node;
      	*codec_dai_name;
      	*codecs;
      	num_codecs;
      
      	*platform_name;
      	*platform_of_node;
      	...
      }
      
      [in the future]
      struct snd_soc_dai_link {
      	...
      	*cpus
      	num_cpus;
      
      	*codecs;
      	num_codecs;
      
      	*platform;
      	...
      }
      Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      46c73187
    • Kuninori Morimoto's avatar
      ASoC: simple-scu-card: support snd_soc_dai_link_component style for platform · 24f3bead
      Kuninori Morimoto authored
      Current ASoC is supporting snd_soc_dai_link_component for binding,
      it is more useful than current legacy style.
      Currently only codec is supporting it as multicodec (= codecs).
      CPU will support multi style in the future.
      We want to have it on Platform too in the future.
      
      If all Codec/CPU/Platform are replaced into snd_soc_dai_link_component
      style, we can remove legacy complex style.
      This patch supports snd_soc_dai_link_component style
      for simple-scu-card for platform.
      
      [current]
      struct snd_soc_dai_link {
      	...
      	*cpu_name;
      	*cpu_of_node;
      	*cpu_dai_name;
      
      	*codec_name;
      	*codec_of_node;
      	*codec_dai_name;
      	*codecs;
      	num_codecs;
      
      	*platform_name;
      	*platform_of_node;
      	...
      }
      
      [in the future]
      struct snd_soc_dai_link {
      	...
      	*cpus
      	num_cpus;
      
      	*codecs;
      	num_codecs;
      
      	*platform;
      	...
      }
      Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      24f3bead
    • Kuninori Morimoto's avatar
      ASoC: simple-card: support snd_soc_dai_link_component style for platform · e58f41e4
      Kuninori Morimoto authored
      Current ASoC is supporting snd_soc_dai_link_component for binding,
      it is more useful than current legacy style.
      Currently only codec is supporting it as multicodec (= codecs).
      CPU will support multi style in the future.
      We want to have it on Platform too in the future.
      
      If all Codec/CPU/Platform are replaced into snd_soc_dai_link_component
      style, we can remove legacy complex style.
      This patch supports snd_soc_dai_link_component style
      for simple-card for platform.
      
      [current]
      struct snd_soc_dai_link {
      	...
      	*cpu_name;
      	*cpu_of_node;
      	*cpu_dai_name;
      
      	*codec_name;
      	*codec_of_node;
      	*codec_dai_name;
      	*codecs;
      	num_codecs;
      
      	*platform_name;
      	*platform_of_node;
      	...
      }
      
      [in the future]
      struct snd_soc_dai_link {
      	...
      	*cpus
      	num_cpus;
      
      	*codecs;
      	num_codecs;
      
      	*platform;
      	...
      }
      Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      e58f41e4
    • Kuninori Morimoto's avatar
      ASoC: simple-card-util: support snd_soc_dai_link_component style for platform · 868cdb46
      Kuninori Morimoto authored
      Current ASoC is supporting snd_soc_dai_link_component for binding,
      it is more useful than current legacy style.
      Currently only codec is supporting it as multicodec (= codecs).
      CPU will support multi style in the future.
      We want to have it on Platform too in the future.
      
      If all Codec/CPU/Platform are replaced into snd_soc_dai_link_component
      style, we can remove legacy complex style.
      This patch supports snd_soc_dai_link_component style
      for simple-card-util for platform.
      
      [current]
      struct snd_soc_dai_link {
      	...
      	*cpu_name;
      	*cpu_of_node;
      	*cpu_dai_name;
      
      	*codec_name;
      	*codec_of_node;
      	*codec_dai_name;
      	*codecs;
      	num_codecs;
      
      	*platform_name;
      	*platform_of_node;
      	...
      }
      
      [in the future]
      struct snd_soc_dai_link {
      	...
      	*cpus
      	num_cpus;
      
      	*codecs;
      	num_codecs;
      
      	*platform;
      	...
      }
      Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      868cdb46
    • Kuninori Morimoto's avatar
      ASoC: soc-core: use snd_soc_dai_link_component for platform · daecf46e
      Kuninori Morimoto authored
      Current struct snd_soc_dai_link is supporting multicodec,
      and it is supporting legacy style of
      	codec_name
      	codec_of_node
      	code_dai_name
      This is handled as single entry of multicodec.
      
      We don't have multicpu support yet, but in the future we will.
      In such case, we can use snd_soc_dai_link_component for both
      cpu/codec. Then the code will be more simple and readble.
      
      As next step, we want to use it for platform, too.
      This patch adds snd_soc_dai_link_component style for platform.
      We might have multiplatform support in the future, but we
      don't know yet. To avoid un-known issue / complex code,
      this patch supports just single-platform as 1st step.
      
      If we could use snd_soc_dai_link_component for all CPU/Codec/Platform,
      we will switch to new style, and remove legacy code.
      This is prepare for it.
      Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      daecf46e
    • Kuninori Morimoto's avatar
      ASoC: simple-card-util: remove dai_link compatible code for codec · 2967e5ea
      Kuninori Morimoto authored
      Now no simple/audio cards are using legacy dai_link style for codec.
      Let's remove compatible code.
      Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      2967e5ea
    • Kuninori Morimoto's avatar
      ASoC: audio-graph-scu-card: support snd_soc_dai_link_component style for codec · 04f7267a
      Kuninori Morimoto authored
      Current ASoC is supporting snd_soc_dai_link_component for binding,
      it is more useful than current legacy style.
      Currently only codec is supporting it as multicodec (= codecs).
      CPU will support multi style in the future.
      We want to have it on Platform too in the future.
      
      If all Codec/CPU/Platform are replaced into snd_soc_dai_link_component
      style, we can remove legacy complex style.
      This patch supports snd_soc_dai_link_component style
      for audio-graph-scu-card for codec.
      
      [current]
      struct snd_soc_dai_link {
      	...
      	*cpu_name;
      	*cpu_of_node;
      	*cpu_dai_name;
      
      	*codec_name;
      	*codec_of_node;
      	*codec_dai_name;
      	*codecs;
      	num_codecs;
      
      	*platform_name;
      	*platform_of_node;
      	...
      }
      
      [in the future]
      struct snd_soc_dai_link {
      	...
      	*cpus
      	num_cpus;
      
      	*codecs;
      	num_codecs;
      
      	*platform;
      	...
      }
      Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      04f7267a
    • Kuninori Morimoto's avatar
      ASoC: audio-graph-scu-card: use simple_dai_props · 1340739d
      Kuninori Morimoto authored
      audi-graph-card and audio-graph-scu-card are very similar driver,
      but using different feature. Thus we are keeping synchronization
      on these 2 drivers style, because it is easy to confirm / check.
      
      Current big difference between these 2 drivers are "dai_props" on
      graph_card_data (= priv).
      It will be difficult to keep synchronize if we will add new feature
      on audio-graph-scu-card. Thus, this patch synchronize it.
      
      [audio-graph]
      struct graph_card_data {
      	...
      	struct graph_dai_props {
      		...
      	} *dai_props;
      	...
      };
      
      [audio-graph-scu]
      struct graph_card_data {
      	...
      	struct asoc_simple_dai *dai_props;
      	...
      };
      Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      1340739d
    • Kuninori Morimoto's avatar
      ASoC: audio-graph-card: support snd_soc_dai_link_component style for codec · 8e6746db
      Kuninori Morimoto authored
      Current ASoC is supporting snd_soc_dai_link_component for binding,
      it is more useful than current legacy style.
      Currently only codec is supporting it as multicodec (= codecs).
      CPU will support multi style in the future.
      We want to have it on Platform too in the future.
      
      If all Codec/CPU/Platform are replaced into snd_soc_dai_link_component
      style, we can remove legacy complex style.
      This patch supports snd_soc_dai_link_component style
      for audio-graph-card for codec.
      
      [current]
      struct snd_soc_dai_link {
      	...
      	*cpu_name;
      	*cpu_of_node;
      	*cpu_dai_name;
      
      	*codec_name;
      	*codec_of_node;
      	*codec_dai_name;
      	*codecs;
      	num_codecs;
      
      	*platform_name;
      	*platform_of_node;
      	...
      }
      
      [in the future]
      struct snd_soc_dai_link {
      	...
      	*cpus
      	num_cpus;
      
      	*codecs;
      	num_codecs;
      
      	*platform;
      	...
      }
      Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      8e6746db
    • Kuninori Morimoto's avatar
      ASoC: simple-scu-card: support snd_soc_dai_link_component style for codec · 2289cc1c
      Kuninori Morimoto authored
      Current ASoC is supporting snd_soc_dai_link_component for binding,
      it is more useful than current legacy style.
      Currently only codec is supporting it as multicodec (= codecs).
      CPU will support multi style in the future.
      We want to have it on Platform too in the future.
      
      If all Codec/CPU/Platform are replaced into snd_soc_dai_link_component
      style, we can remove legacy complex style.
      This patch supports snd_soc_dai_link_component style
      for simple-scu-card for codec.
      
      [current]
      struct snd_soc_dai_link {
      	...
      	*cpu_name;
      	*cpu_of_node;
      	*cpu_dai_name;
      
      	*codec_name;
      	*codec_of_node;
      	*codec_dai_name;
      	*codecs;
      	num_codecs;
      
      	*platform_name;
      	*platform_of_node;
      	...
      }
      
      [in the future]
      struct snd_soc_dai_link {
      	...
      	*cpus
      	num_cpus;
      
      	*codecs;
      	num_codecs;
      
      	*platform;
      	...
      }
      Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      2289cc1c