1. 22 1月, 2019 1 次提交
    • K
      ASoC: soc-core: add .num_platform for dai_link · 910fdcab
      Kuninori Morimoto 提交于
      Current snd_soc_dai_link is starting to use snd_soc_dai_link_component
      (= modern) style for Platform, but it is still assuming single Platform
      so far. We will need to have multi Platform support in the not far
      future.
      
      Currently only simple card is using it as sound card driver,
      and other drivers are converted to it from legacy style by
      snd_soc_init_platform().
      To avoid future problem of multi Platform support, let's add
      num_platforms before it is too late.
      
      In the same time, to make it same naming mothed, "platform" should
      be "platforms". This patch fixup it too.
      Signed-off-by: NKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      910fdcab
  2. 04 1月, 2019 6 次提交
  3. 14 12月, 2018 4 次提交
  4. 13 12月, 2018 1 次提交
  5. 11 12月, 2018 1 次提交
  6. 21 11月, 2018 1 次提交
  7. 31 8月, 2018 2 次提交
    • K
      ASoC: simple-card: support snd_soc_dai_link_component style for platform · e58f41e4
      Kuninori Morimoto 提交于
      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: NKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      e58f41e4
    • K
      ASoC: simple-card: support snd_soc_dai_link_component style for codec · 710af919
      Kuninori Morimoto 提交于
      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 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: NKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      710af919
  8. 02 7月, 2018 1 次提交
  9. 18 6月, 2018 2 次提交
  10. 13 6月, 2018 1 次提交
    • K
      treewide: devm_kzalloc() -> devm_kcalloc() · a86854d0
      Kees Cook 提交于
      The devm_kzalloc() function has a 2-factor argument form, devm_kcalloc().
      This patch replaces cases of:
      
              devm_kzalloc(handle, a * b, gfp)
      
      with:
              devm_kcalloc(handle, a * b, gfp)
      
      as well as handling cases of:
      
              devm_kzalloc(handle, a * b * c, gfp)
      
      with:
      
              devm_kzalloc(handle, array3_size(a, b, c), gfp)
      
      as it's slightly less ugly than:
      
              devm_kcalloc(handle, array_size(a, b), c, gfp)
      
      This does, however, attempt to ignore constant size factors like:
      
              devm_kzalloc(handle, 4 * 1024, gfp)
      
      though any constants defined via macros get caught up in the conversion.
      
      Any factors with a sizeof() of "unsigned char", "char", and "u8" were
      dropped, since they're redundant.
      
      Some manual whitespace fixes were needed in this patch, as Coccinelle
      really liked to write "=devm_kcalloc..." instead of "= devm_kcalloc...".
      
      The Coccinelle script used for this was:
      
      // Fix redundant parens around sizeof().
      @@
      expression HANDLE;
      type TYPE;
      expression THING, E;
      @@
      
      (
        devm_kzalloc(HANDLE,
      -	(sizeof(TYPE)) * E
      +	sizeof(TYPE) * E
        , ...)
      |
        devm_kzalloc(HANDLE,
      -	(sizeof(THING)) * E
      +	sizeof(THING) * E
        , ...)
      )
      
      // Drop single-byte sizes and redundant parens.
      @@
      expression HANDLE;
      expression COUNT;
      typedef u8;
      typedef __u8;
      @@
      
      (
        devm_kzalloc(HANDLE,
      -	sizeof(u8) * (COUNT)
      +	COUNT
        , ...)
      |
        devm_kzalloc(HANDLE,
      -	sizeof(__u8) * (COUNT)
      +	COUNT
        , ...)
      |
        devm_kzalloc(HANDLE,
      -	sizeof(char) * (COUNT)
      +	COUNT
        , ...)
      |
        devm_kzalloc(HANDLE,
      -	sizeof(unsigned char) * (COUNT)
      +	COUNT
        , ...)
      |
        devm_kzalloc(HANDLE,
      -	sizeof(u8) * COUNT
      +	COUNT
        , ...)
      |
        devm_kzalloc(HANDLE,
      -	sizeof(__u8) * COUNT
      +	COUNT
        , ...)
      |
        devm_kzalloc(HANDLE,
      -	sizeof(char) * COUNT
      +	COUNT
        , ...)
      |
        devm_kzalloc(HANDLE,
      -	sizeof(unsigned char) * COUNT
      +	COUNT
        , ...)
      )
      
      // 2-factor product with sizeof(type/expression) and identifier or constant.
      @@
      expression HANDLE;
      type TYPE;
      expression THING;
      identifier COUNT_ID;
      constant COUNT_CONST;
      @@
      
      (
      - devm_kzalloc
      + devm_kcalloc
        (HANDLE,
      -	sizeof(TYPE) * (COUNT_ID)
      +	COUNT_ID, sizeof(TYPE)
        , ...)
      |
      - devm_kzalloc
      + devm_kcalloc
        (HANDLE,
      -	sizeof(TYPE) * COUNT_ID
      +	COUNT_ID, sizeof(TYPE)
        , ...)
      |
      - devm_kzalloc
      + devm_kcalloc
        (HANDLE,
      -	sizeof(TYPE) * (COUNT_CONST)
      +	COUNT_CONST, sizeof(TYPE)
        , ...)
      |
      - devm_kzalloc
      + devm_kcalloc
        (HANDLE,
      -	sizeof(TYPE) * COUNT_CONST
      +	COUNT_CONST, sizeof(TYPE)
        , ...)
      |
      - devm_kzalloc
      + devm_kcalloc
        (HANDLE,
      -	sizeof(THING) * (COUNT_ID)
      +	COUNT_ID, sizeof(THING)
        , ...)
      |
      - devm_kzalloc
      + devm_kcalloc
        (HANDLE,
      -	sizeof(THING) * COUNT_ID
      +	COUNT_ID, sizeof(THING)
        , ...)
      |
      - devm_kzalloc
      + devm_kcalloc
        (HANDLE,
      -	sizeof(THING) * (COUNT_CONST)
      +	COUNT_CONST, sizeof(THING)
        , ...)
      |
      - devm_kzalloc
      + devm_kcalloc
        (HANDLE,
      -	sizeof(THING) * COUNT_CONST
      +	COUNT_CONST, sizeof(THING)
        , ...)
      )
      
      // 2-factor product, only identifiers.
      @@
      expression HANDLE;
      identifier SIZE, COUNT;
      @@
      
      - devm_kzalloc
      + devm_kcalloc
        (HANDLE,
      -	SIZE * COUNT
      +	COUNT, SIZE
        , ...)
      
      // 3-factor product with 1 sizeof(type) or sizeof(expression), with
      // redundant parens removed.
      @@
      expression HANDLE;
      expression THING;
      identifier STRIDE, COUNT;
      type TYPE;
      @@
      
      (
        devm_kzalloc(HANDLE,
      -	sizeof(TYPE) * (COUNT) * (STRIDE)
      +	array3_size(COUNT, STRIDE, sizeof(TYPE))
        , ...)
      |
        devm_kzalloc(HANDLE,
      -	sizeof(TYPE) * (COUNT) * STRIDE
      +	array3_size(COUNT, STRIDE, sizeof(TYPE))
        , ...)
      |
        devm_kzalloc(HANDLE,
      -	sizeof(TYPE) * COUNT * (STRIDE)
      +	array3_size(COUNT, STRIDE, sizeof(TYPE))
        , ...)
      |
        devm_kzalloc(HANDLE,
      -	sizeof(TYPE) * COUNT * STRIDE
      +	array3_size(COUNT, STRIDE, sizeof(TYPE))
        , ...)
      |
        devm_kzalloc(HANDLE,
      -	sizeof(THING) * (COUNT) * (STRIDE)
      +	array3_size(COUNT, STRIDE, sizeof(THING))
        , ...)
      |
        devm_kzalloc(HANDLE,
      -	sizeof(THING) * (COUNT) * STRIDE
      +	array3_size(COUNT, STRIDE, sizeof(THING))
        , ...)
      |
        devm_kzalloc(HANDLE,
      -	sizeof(THING) * COUNT * (STRIDE)
      +	array3_size(COUNT, STRIDE, sizeof(THING))
        , ...)
      |
        devm_kzalloc(HANDLE,
      -	sizeof(THING) * COUNT * STRIDE
      +	array3_size(COUNT, STRIDE, sizeof(THING))
        , ...)
      )
      
      // 3-factor product with 2 sizeof(variable), with redundant parens removed.
      @@
      expression HANDLE;
      expression THING1, THING2;
      identifier COUNT;
      type TYPE1, TYPE2;
      @@
      
      (
        devm_kzalloc(HANDLE,
      -	sizeof(TYPE1) * sizeof(TYPE2) * COUNT
      +	array3_size(COUNT, sizeof(TYPE1), sizeof(TYPE2))
        , ...)
      |
        devm_kzalloc(HANDLE,
      -	sizeof(TYPE1) * sizeof(THING2) * (COUNT)
      +	array3_size(COUNT, sizeof(TYPE1), sizeof(TYPE2))
        , ...)
      |
        devm_kzalloc(HANDLE,
      -	sizeof(THING1) * sizeof(THING2) * COUNT
      +	array3_size(COUNT, sizeof(THING1), sizeof(THING2))
        , ...)
      |
        devm_kzalloc(HANDLE,
      -	sizeof(THING1) * sizeof(THING2) * (COUNT)
      +	array3_size(COUNT, sizeof(THING1), sizeof(THING2))
        , ...)
      |
        devm_kzalloc(HANDLE,
      -	sizeof(TYPE1) * sizeof(THING2) * COUNT
      +	array3_size(COUNT, sizeof(TYPE1), sizeof(THING2))
        , ...)
      |
        devm_kzalloc(HANDLE,
      -	sizeof(TYPE1) * sizeof(THING2) * (COUNT)
      +	array3_size(COUNT, sizeof(TYPE1), sizeof(THING2))
        , ...)
      )
      
      // 3-factor product, only identifiers, with redundant parens removed.
      @@
      expression HANDLE;
      identifier STRIDE, SIZE, COUNT;
      @@
      
      (
        devm_kzalloc(HANDLE,
      -	(COUNT) * STRIDE * SIZE
      +	array3_size(COUNT, STRIDE, SIZE)
        , ...)
      |
        devm_kzalloc(HANDLE,
      -	COUNT * (STRIDE) * SIZE
      +	array3_size(COUNT, STRIDE, SIZE)
        , ...)
      |
        devm_kzalloc(HANDLE,
      -	COUNT * STRIDE * (SIZE)
      +	array3_size(COUNT, STRIDE, SIZE)
        , ...)
      |
        devm_kzalloc(HANDLE,
      -	(COUNT) * (STRIDE) * SIZE
      +	array3_size(COUNT, STRIDE, SIZE)
        , ...)
      |
        devm_kzalloc(HANDLE,
      -	COUNT * (STRIDE) * (SIZE)
      +	array3_size(COUNT, STRIDE, SIZE)
        , ...)
      |
        devm_kzalloc(HANDLE,
      -	(COUNT) * STRIDE * (SIZE)
      +	array3_size(COUNT, STRIDE, SIZE)
        , ...)
      |
        devm_kzalloc(HANDLE,
      -	(COUNT) * (STRIDE) * (SIZE)
      +	array3_size(COUNT, STRIDE, SIZE)
        , ...)
      |
        devm_kzalloc(HANDLE,
      -	COUNT * STRIDE * SIZE
      +	array3_size(COUNT, STRIDE, SIZE)
        , ...)
      )
      
      // Any remaining multi-factor products, first at least 3-factor products,
      // when they're not all constants...
      @@
      expression HANDLE;
      expression E1, E2, E3;
      constant C1, C2, C3;
      @@
      
      (
        devm_kzalloc(HANDLE, C1 * C2 * C3, ...)
      |
        devm_kzalloc(HANDLE,
      -	(E1) * E2 * E3
      +	array3_size(E1, E2, E3)
        , ...)
      |
        devm_kzalloc(HANDLE,
      -	(E1) * (E2) * E3
      +	array3_size(E1, E2, E3)
        , ...)
      |
        devm_kzalloc(HANDLE,
      -	(E1) * (E2) * (E3)
      +	array3_size(E1, E2, E3)
        , ...)
      |
        devm_kzalloc(HANDLE,
      -	E1 * E2 * E3
      +	array3_size(E1, E2, E3)
        , ...)
      )
      
      // And then all remaining 2 factors products when they're not all constants,
      // keeping sizeof() as the second factor argument.
      @@
      expression HANDLE;
      expression THING, E1, E2;
      type TYPE;
      constant C1, C2, C3;
      @@
      
      (
        devm_kzalloc(HANDLE, sizeof(THING) * C2, ...)
      |
        devm_kzalloc(HANDLE, sizeof(TYPE) * C2, ...)
      |
        devm_kzalloc(HANDLE, C1 * C2 * C3, ...)
      |
        devm_kzalloc(HANDLE, C1 * C2, ...)
      |
      - devm_kzalloc
      + devm_kcalloc
        (HANDLE,
      -	sizeof(TYPE) * (E2)
      +	E2, sizeof(TYPE)
        , ...)
      |
      - devm_kzalloc
      + devm_kcalloc
        (HANDLE,
      -	sizeof(TYPE) * E2
      +	E2, sizeof(TYPE)
        , ...)
      |
      - devm_kzalloc
      + devm_kcalloc
        (HANDLE,
      -	sizeof(THING) * (E2)
      +	E2, sizeof(THING)
        , ...)
      |
      - devm_kzalloc
      + devm_kcalloc
        (HANDLE,
      -	sizeof(THING) * E2
      +	E2, sizeof(THING)
        , ...)
      |
      - devm_kzalloc
      + devm_kcalloc
        (HANDLE,
      -	(E1) * E2
      +	E1, E2
        , ...)
      |
      - devm_kzalloc
      + devm_kcalloc
        (HANDLE,
      -	(E1) * (E2)
      +	E1, E2
        , ...)
      |
      - devm_kzalloc
      + devm_kcalloc
        (HANDLE,
      -	E1 * E2
      +	E1, E2
        , ...)
      )
      Signed-off-by: NKees Cook <keescook@chromium.org>
      a86854d0
  11. 01 6月, 2018 1 次提交
    • D
      ASoC: simple-card: set cpu dai clk in hw_params · e9be4ffd
      Daniel Mack 提交于
      The simple-card driver currently accepts a clock node in the cpu dai
      sub-node and only uses it as an alternative to the
      'system-clock-frequency' property to get the current frequency.
      
      This patch adds another use of the passed clock node. If mclk-fs is
      specified, the clocks in cpu and codec dai sub-nodes will be set to
      the calculated rate (stream rate * mclk_fs) in hw_params.
      
      This allows platforms to pass tuneable clocks as phandle that will
      automatically be set to the right rates.
      Signed-off-by: NDaniel Mack <daniel@zonque.org>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      e9be4ffd
  12. 22 8月, 2017 1 次提交
  13. 17 6月, 2017 1 次提交
  14. 16 6月, 2017 1 次提交
  15. 14 6月, 2017 2 次提交
  16. 08 6月, 2017 1 次提交
  17. 07 6月, 2017 3 次提交
  18. 25 5月, 2017 1 次提交
  19. 20 5月, 2017 2 次提交
  20. 16 3月, 2017 2 次提交
  21. 24 1月, 2017 1 次提交
  22. 25 10月, 2016 1 次提交
    • J
      ASoC: constify snd_soc_ops structures · 9b6fdef6
      Julia Lawall 提交于
      Check for snd_soc_ops structures that are only stored in the ops field of a
      snd_soc_dai_link structure.  This field is declared const, so snd_soc_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_soc_ops i@p = { ... };
      
      @ok1@
      identifier r.i;
      struct snd_soc_dai_link e;
      position p;
      @@
      e.ops = &i@p;
      
      @ok2@
      identifier r.i, e;
      position p;
      @@
      struct snd_soc_dai_link e[] = { ..., { .ops = &i@p, }, ..., };
      
      @bad@
      position p != {r.p,ok1.p,ok2.p};
      identifier r.i;
      struct snd_soc_ops e;
      @@
      e@i@p
      
      @depends on !bad disable optional_qualifier@
      identifier r.i;
      @@
      static
      +const
       struct snd_soc_ops i = { ... };
      // </smpl>
      
      The effect on the layout of the .o files is shown by the following output
      of the size command, first before then after the transformation:
      
         text    data     bss     dec     hex filename
         4500     696       0    5196    144c sound/soc/generic/simple-card.o
         4564     632       0    5196    144c sound/soc/generic/simple-card.o
      
         text    data     bss     dec     hex filename
         3018     608       0    3626     e2a sound/soc/generic/simple-scu-card.o
         3074     544       0    3618     e22 sound/soc/generic/simple-scu-card.o
      
         text    data     bss     dec     hex filename
         4148    2448     768    7364    1cc4 sound/soc/intel/boards/bdw-rt5677.o
         4212    2384     768    7364    1cc4 sound/soc/intel/boards/bdw-rt5677.o
      
         text    data     bss     dec     hex filename
         5403    4628     384   10415    28af sound/soc/intel/boards/bxt_da7219_max98357a.o
         5531    4516     384   10431    28bf sound/soc/intel/boards/bxt_da7219_max98357a.o
      
         text    data     bss     dec     hex filename
         5275    4496     384   10155    27ab sound/soc/intel/boards/bxt_rt298.o
         5403    4368     384   10155    27ab sound/soc/intel/boards/bxt_rt298.o
      
         text    data     bss     dec     hex filename
        10017    2344      48   12409    3079 sound/soc/intel/boards/bytcr_rt5640.o
        10145    2232      48   12425    3089 sound/soc/intel/boards/bytcr_rt5640.o
      
         text    data     bss     dec     hex filename
         3719    2356       0    6075    17bb sound/soc/intel/boards/bytcr_rt5651.o
         3847    2244       0    6091    17cb sound/soc/intel/boards/bytcr_rt5651.o
      
         text    data     bss     dec     hex filename
         3598    2392       0    5990    1766 sound/soc/intel/boards/cht_bsw_max98090_ti.o
         3726    2280       0    6006    1776 sound/soc/intel/boards/cht_bsw_max98090_ti.o
      
         text    data     bss     dec     hex filename
         5343    3624      16    8983    2317 sound/soc/intel/boards/cht_bsw_rt5645.o
         5471    3496      16    8983    2317 sound/soc/intel/boards/cht_bsw_rt5645.o
      
         text    data     bss     dec     hex filename
         4662    2592     384    7638    1dd6 sound/soc/intel/boards/cht_bsw_rt5672.o
         4790    2464     384    7638    1dd6 sound/soc/intel/boards/cht_bsw_rt5672.o
      
         text    data     bss     dec     hex filename
         1595    2528       0    4123    101b sound/soc/intel/boards/haswell.o
         1659    2472       0    4131    1023 sound/soc/intel/boards/haswell.o
      
         text    data     bss     dec     hex filename
         6272    4760     416   11448    2cb8 sound/soc/intel/boards/skl_nau88l25_max98357a.o
         6464    4568     416   11448    2cb8 sound/soc/intel/boards/skl_nau88l25_max98357a.o
      
         text    data     bss     dec     hex filename
         7075    4888     416   12379    305b sound/soc/intel/boards/skl_nau88l25_ssm4567.o
         7267    4696     416   12379    305b sound/soc/intel/boards/skl_nau88l25_ssm4567.o
      
         text    data     bss     dec     hex filename
         5659    4496     384   10539    292b sound/soc/intel/boards/skl_rt286.o
         5787    4368     384   10539    292b sound/soc/intel/boards/skl_rt286.o
      
         text    data     bss     dec     hex filename
         1721    2048       0    3769     eb9 sound/soc/kirkwood/armada-370-db.o
         1769    1976       0    3745     ea1 sound/soc/kirkwood/armada-370-db.o
      
         text    data     bss     dec     hex filename
         1363    1792       0    3155     c53 sound/soc/mxs/mxs-sgtl5000.o
         1427    1728       0    3155     c53 sound/soc/mxs/mxs-sgtl5000.o
      Signed-off-by: NJulia Lawall <Julia.Lawall@lip6.fr>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      9b6fdef6
  23. 27 9月, 2016 1 次提交
  24. 02 9月, 2016 2 次提交