1. 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
  2. 02 7月, 2018 1 次提交
  3. 18 6月, 2018 2 次提交
  4. 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
  5. 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
  6. 22 8月, 2017 1 次提交
  7. 17 6月, 2017 1 次提交
  8. 16 6月, 2017 1 次提交
  9. 14 6月, 2017 2 次提交
  10. 08 6月, 2017 1 次提交
  11. 07 6月, 2017 3 次提交
  12. 25 5月, 2017 1 次提交
  13. 20 5月, 2017 2 次提交
  14. 16 3月, 2017 2 次提交
  15. 24 1月, 2017 1 次提交
  16. 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
  17. 27 9月, 2016 1 次提交
  18. 02 9月, 2016 9 次提交
  19. 11 8月, 2016 2 次提交
  20. 09 8月, 2016 2 次提交
  21. 08 8月, 2016 2 次提交
  22. 05 8月, 2016 1 次提交