mbox series

[00/56] Specify clock provider directly to CPU DAIs

Message ID 20220519154318.2153729-1-ckeepax@opensource.cirrus.com (mailing list archive)
Headers show
Series Specify clock provider directly to CPU DAIs | expand

Message

Charles Keepax May 19, 2022, 3:42 p.m. UTC
Currently the set_fmt callback always passes clock provider/consumer
with respect to the CODEC. This made sense when the framework was
directly broken down into platforms and CODECs. However, as things
are now broken down into components which can be connected as either
the CPU or CODEC side of a DAI link it simplifies things if each
side of the link is just told if it is provider or consumer of the
clocks. Making this change allows us to remove one of the last parts
of the ASoC core that needs to know if a driver is a CODEC driver,
where it flips the clock format specifier if a CODEC driver is used on
the CPU side of a DAI link, as well as just being conceptually more
consistent with componentisation.

The basic idea of this patch chain is to change the set_fmt callback
from specifying if the CODEC is provider/consumer into directly
specifying if the component is provider/consumer. To do this we add
some new defines, and then to preserve bisectability, the migration is
done by adding a new callback, converting over all existing CPU side
drivers, converting the core, and then finally reverting back to the
old callback.

Converting the platform drivers makes sense as the existing defines
are from the perspective of the CODEC and there are more CODEC drivers
than platform drivers.

Obviously a fair amount of this patch chain I was only able to build
test, so any testing that can be done would be greatly appreciated.

Thanks,
Charles

Charles Keepax (56):
  ASoC: core: Add set_fmt_new callback that directly specifies provider
  ASoC: amd: vangogh: Update to use set_fmt_new callback
  ASoC: atmel: Update to use set_fmt_new callback
  ASoC: au1x: Update to use set_fmt_new callback
  ASoC: bcm: Update to use set_fmt_new callback
  ASoC: ep93xx: Update to use set_fmt_new callback
  ASoC: dwc: Update to use set_fmt_new callback
  ASoC: fsl: Update to use set_fmt_new callback
  ASoC: hisilicon: Update to use set_fmt_new callback
  ASoC: img: Update to use set_fmt_new callback
  ASoC: Intel: Update to use set_fmt_new callback
  ASoC: js4740-i2s: Update to use set_fmt_new callback
  ASoC: mediatek: Update to use set_fmt_new callback
  ASoC: meson: Update to use set_fmt_new callback
  ASoC: mxs-saif: Update to use set_fmt_new callback
  ASoC: pxa: Update to use set_fmt_new callback
  ASoC: qcom: Update to use set_fmt_new callback
  ASoC: rockchip: Update to use set_fmt_new callback
  ASoC: samsung: Update to use set_fmt_new callback
  ASoC: sh: Update to use set_fmt_new callback
  ASoC: stm: Update to use set_fmt_new callback
  ASoC: sunxi: Update to use set_fmt_new callback
  ASoC: tegra: Update to use set_fmt_new callback
  ASoC: test-component: Update to use set_fmt_new callback
  ASoC: ti: Update to use set_fmt_new callback
  ASoC: ux500: Update to use set_fmt_new callback
  ASoC: xtensa: Update to use set_fmt_new callback
  ASoC: core: Always send the CPU DAI a direct clock specifier
  ASoC: amd: vangogh: Rename set_fmt_new back to set_fmt
  ASoC: atmel: Rename set_fmt_new back to set_fmt
  ASoC: au1x: Rename set_fmt_new back to set_fmt
  ASoC: bcm: Rename set_fmt_new back to set_fmt
  ASoC: ep93xx: Rename set_fmt_new back to set_fmt
  ASoC: dwc: Rename set_fmt_new back to set_fmt
  ASoC: fsl: Rename set_fmt_new back to set_fmt
  ASoC: hisilicon: Rename set_fmt_new back to set_fmt
  ASoC: img: Rename set_fmt_new back to set_fmt
  ASoC: Intel: Rename set_fmt_new back to set_fmt
  ASoC: jz4740-i2s: Rename set_fmt_new back to set_fmt
  ASoC: mediatek: Rename set_fmt_new back to set_fmt
  ASoC: meson: Rename set_fmt_new back to set_fmt
  ASoC: mxs-saif: Rename set_fmt_new back to set_fmt
  ASoC: pxa: Rename set_fmt_new back to set_fmt
  ASoC: qcom: Rename set_fmt_new back to set_fmt
  ASoC: rockchip: Rename set_fmt_new back to set_fmt
  ASoC: samsung: Rename set_fmt_new back to set_fmt
  ASoC: sh: Rename set_fmt_new back to set_fmt
  ASoC: stm: Rename set_fmt_new back to set_fmt
  ASoC: sunxi: Rename set_fmt_new back to set_fmt
  ASoC: tegra: Rename set_fmt_new back to set_fmt
  ASoC: test-component: Rename set_fmt_new back to set_fmt
  ASoC: ti: Rename set_fmt_new back to set_fmt
  ASoC: ux500: Rename set_fmt_new back to set_fmt
  ASoC: xtensa: Rename set_fmt_new back to set_fmt
  ASoC: soc-dai: Remove set_fmt_new callback
  ASoC: simple-card-utils: Move snd_soc_component_is_codec to be local

 include/sound/soc-component.h                |  5 ---
 include/sound/soc-dai.h                      |  6 ++++
 sound/soc/amd/vangogh/acp5x-i2s.c            |  4 +--
 sound/soc/atmel/atmel-i2s.c                  |  4 +--
 sound/soc/atmel/atmel_ssc_dai.c              | 18 +++++-----
 sound/soc/atmel/mchp-i2s-mcc.c               |  8 ++---
 sound/soc/atmel/mchp-pdmc.c                  |  4 +--
 sound/soc/au1x/i2sc.c                        |  2 +-
 sound/soc/au1x/psc-i2s.c                     |  4 +--
 sound/soc/bcm/bcm2835-i2s.c                  | 20 +++++------
 sound/soc/bcm/cygnus-ssp.c                   |  4 +--
 sound/soc/cirrus/ep93xx-i2s.c                |  4 +--
 sound/soc/dwc/dwc-i2s.c                      |  8 ++---
 sound/soc/fsl/fsl_audmix.c                   |  6 ++--
 sound/soc/fsl/fsl_esai.c                     |  8 ++---
 sound/soc/fsl/fsl_mqs.c                      |  2 +-
 sound/soc/fsl/fsl_sai.c                      |  8 ++---
 sound/soc/fsl/fsl_ssi.c                      | 22 ++++++------
 sound/soc/fsl/imx-audmix.c                   |  4 +--
 sound/soc/fsl/imx-card.c                     |  2 +-
 sound/soc/generic/simple-card-utils.c        |  7 +++-
 sound/soc/generic/test-component.c           | 18 +++++-----
 sound/soc/hisilicon/hi6210-i2s.c             | 18 +++++-----
 sound/soc/img/img-i2s-in.c                   |  4 +--
 sound/soc/img/img-i2s-out.c                  |  6 ++--
 sound/soc/intel/atom/sst-atom-controls.c     |  4 +--
 sound/soc/intel/boards/bytcht_cx2072x.c      |  2 +-
 sound/soc/intel/boards/bytcht_da7213.c       |  2 +-
 sound/soc/intel/boards/bytcht_es8316.c       |  2 +-
 sound/soc/intel/boards/bytcht_nocodec.c      |  2 +-
 sound/soc/intel/boards/bytcr_rt5640.c        |  2 +-
 sound/soc/intel/boards/bytcr_rt5651.c        |  2 +-
 sound/soc/intel/boards/bytcr_wm5102.c        |  2 +-
 sound/soc/intel/boards/cht_bsw_max98090_ti.c |  3 +-
 sound/soc/intel/boards/cht_bsw_rt5645.c      |  6 ++--
 sound/soc/intel/boards/cht_bsw_rt5672.c      |  2 +-
 sound/soc/intel/keembay/kmb_platform.c       |  4 +--
 sound/soc/jz4740/jz4740-i2s.c                | 10 +++---
 sound/soc/mediatek/mt8195/mt8195-dai-etdm.c  |  6 ++--
 sound/soc/mediatek/mt8195/mt8195-dai-pcm.c   |  6 ++--
 sound/soc/meson/aiu-encoder-i2s.c            |  2 +-
 sound/soc/meson/axg-tdm-interface.c          | 14 ++++----
 sound/soc/mxs/mxs-saif.c                     |  4 +--
 sound/soc/pxa/magician.c                     |  8 ++---
 sound/soc/pxa/mmp-sspa.c                     |  6 ++--
 sound/soc/pxa/pxa-ssp.c                      | 22 ++++++------
 sound/soc/pxa/pxa2xx-i2s.c                   |  6 ++--
 sound/soc/qcom/apq8016_sbc.c                 |  2 +-
 sound/soc/qcom/qdsp6/audioreach.c            |  4 +--
 sound/soc/qcom/qdsp6/q6afe.c                 |  6 ++--
 sound/soc/qcom/sc7180.c                      |  2 +-
 sound/soc/qcom/sdm845.c                      |  6 ++--
 sound/soc/qcom/sm8250.c                      |  4 +--
 sound/soc/rockchip/rockchip_i2s.c            |  6 ++--
 sound/soc/rockchip/rockchip_i2s_tdm.c        |  6 ++--
 sound/soc/samsung/i2s.c                      |  6 ++--
 sound/soc/samsung/pcm.c                      |  4 +--
 sound/soc/samsung/s3c-i2s-v2.c               |  6 ++--
 sound/soc/samsung/s3c24xx-i2s.c              |  6 ++--
 sound/soc/sh/fsi.c                           |  6 ++--
 sound/soc/sh/rcar/core.c                     |  4 +--
 sound/soc/sh/rz-ssi.c                        |  2 +-
 sound/soc/sh/ssi.c                           | 10 +++---
 sound/soc/soc-core.c                         | 14 ++------
 sound/soc/soc-dai.c                          |  3 +-
 sound/soc/stm/stm32_i2s.c                    |  8 ++---
 sound/soc/stm/stm32_sai_sub.c                |  8 ++---
 sound/soc/sunxi/sun4i-i2s.c                  | 18 +++++-----
 sound/soc/sunxi/sun8i-codec.c                |  6 ++--
 sound/soc/tegra/tegra20_i2s.c                |  6 ++--
 sound/soc/tegra/tegra210_i2s.c               |  6 ++--
 sound/soc/tegra/tegra30_i2s.c                |  6 ++--
 sound/soc/ti/davinci-i2s.c                   | 32 ++++++++---------
 sound/soc/ti/davinci-mcasp.c                 | 10 +++---
 sound/soc/ti/omap-mcbsp.c                    | 12 +++----
 sound/soc/ux500/ux500_msp_dai.c              | 36 ++++++++++----------
 sound/soc/xtensa/xtfpga-i2s.c                |  4 +--
 77 files changed, 279 insertions(+), 283 deletions(-)

Comments

Pierre-Louis Bossart May 19, 2022, 6:43 p.m. UTC | #1
On 5/19/22 10:42, Charles Keepax wrote:
> Currently the set_fmt callback always passes clock provider/consumer
> with respect to the CODEC. This made sense when the framework was
> directly broken down into platforms and CODECs. However, as things
> are now broken down into components which can be connected as either
> the CPU or CODEC side of a DAI link it simplifies things if each
> side of the link is just told if it is provider or consumer of the
> clocks. Making this change allows us to remove one of the last parts
> of the ASoC core that needs to know if a driver is a CODEC driver,
> where it flips the clock format specifier if a CODEC driver is used on
> the CPU side of a DAI link, as well as just being conceptually more
> consistent with componentisation.
> 
> The basic idea of this patch chain is to change the set_fmt callback
> from specifying if the CODEC is provider/consumer into directly
> specifying if the component is provider/consumer. To do this we add
> some new defines, and then to preserve bisectability, the migration is
> done by adding a new callback, converting over all existing CPU side
> drivers, converting the core, and then finally reverting back to the
> old callback.
> 
> Converting the platform drivers makes sense as the existing defines
> are from the perspective of the CODEC and there are more CODEC drivers
> than platform drivers.
> 
> Obviously a fair amount of this patch chain I was only able to build
> test, so any testing that can be done would be greatly appreciated.

All good for the SOF CI (small subset tested for Intel platforms).

https://github.com/thesofproject/linux/pull/3660

> 
> Thanks,
> Charles
> 
> Charles Keepax (56):
>   ASoC: core: Add set_fmt_new callback that directly specifies provider
>   ASoC: amd: vangogh: Update to use set_fmt_new callback
>   ASoC: atmel: Update to use set_fmt_new callback
>   ASoC: au1x: Update to use set_fmt_new callback
>   ASoC: bcm: Update to use set_fmt_new callback
>   ASoC: ep93xx: Update to use set_fmt_new callback
>   ASoC: dwc: Update to use set_fmt_new callback
>   ASoC: fsl: Update to use set_fmt_new callback
>   ASoC: hisilicon: Update to use set_fmt_new callback
>   ASoC: img: Update to use set_fmt_new callback
>   ASoC: Intel: Update to use set_fmt_new callback
>   ASoC: js4740-i2s: Update to use set_fmt_new callback
>   ASoC: mediatek: Update to use set_fmt_new callback
>   ASoC: meson: Update to use set_fmt_new callback
>   ASoC: mxs-saif: Update to use set_fmt_new callback
>   ASoC: pxa: Update to use set_fmt_new callback
>   ASoC: qcom: Update to use set_fmt_new callback
>   ASoC: rockchip: Update to use set_fmt_new callback
>   ASoC: samsung: Update to use set_fmt_new callback
>   ASoC: sh: Update to use set_fmt_new callback
>   ASoC: stm: Update to use set_fmt_new callback
>   ASoC: sunxi: Update to use set_fmt_new callback
>   ASoC: tegra: Update to use set_fmt_new callback
>   ASoC: test-component: Update to use set_fmt_new callback
>   ASoC: ti: Update to use set_fmt_new callback
>   ASoC: ux500: Update to use set_fmt_new callback
>   ASoC: xtensa: Update to use set_fmt_new callback
>   ASoC: core: Always send the CPU DAI a direct clock specifier
>   ASoC: amd: vangogh: Rename set_fmt_new back to set_fmt
>   ASoC: atmel: Rename set_fmt_new back to set_fmt
>   ASoC: au1x: Rename set_fmt_new back to set_fmt
>   ASoC: bcm: Rename set_fmt_new back to set_fmt
>   ASoC: ep93xx: Rename set_fmt_new back to set_fmt
>   ASoC: dwc: Rename set_fmt_new back to set_fmt
>   ASoC: fsl: Rename set_fmt_new back to set_fmt
>   ASoC: hisilicon: Rename set_fmt_new back to set_fmt
>   ASoC: img: Rename set_fmt_new back to set_fmt
>   ASoC: Intel: Rename set_fmt_new back to set_fmt
>   ASoC: jz4740-i2s: Rename set_fmt_new back to set_fmt
>   ASoC: mediatek: Rename set_fmt_new back to set_fmt
>   ASoC: meson: Rename set_fmt_new back to set_fmt
>   ASoC: mxs-saif: Rename set_fmt_new back to set_fmt
>   ASoC: pxa: Rename set_fmt_new back to set_fmt
>   ASoC: qcom: Rename set_fmt_new back to set_fmt
>   ASoC: rockchip: Rename set_fmt_new back to set_fmt
>   ASoC: samsung: Rename set_fmt_new back to set_fmt
>   ASoC: sh: Rename set_fmt_new back to set_fmt
>   ASoC: stm: Rename set_fmt_new back to set_fmt
>   ASoC: sunxi: Rename set_fmt_new back to set_fmt
>   ASoC: tegra: Rename set_fmt_new back to set_fmt
>   ASoC: test-component: Rename set_fmt_new back to set_fmt
>   ASoC: ti: Rename set_fmt_new back to set_fmt
>   ASoC: ux500: Rename set_fmt_new back to set_fmt
>   ASoC: xtensa: Rename set_fmt_new back to set_fmt
>   ASoC: soc-dai: Remove set_fmt_new callback
>   ASoC: simple-card-utils: Move snd_soc_component_is_codec to be local
> 
>  include/sound/soc-component.h                |  5 ---
>  include/sound/soc-dai.h                      |  6 ++++
>  sound/soc/amd/vangogh/acp5x-i2s.c            |  4 +--
>  sound/soc/atmel/atmel-i2s.c                  |  4 +--
>  sound/soc/atmel/atmel_ssc_dai.c              | 18 +++++-----
>  sound/soc/atmel/mchp-i2s-mcc.c               |  8 ++---
>  sound/soc/atmel/mchp-pdmc.c                  |  4 +--
>  sound/soc/au1x/i2sc.c                        |  2 +-
>  sound/soc/au1x/psc-i2s.c                     |  4 +--
>  sound/soc/bcm/bcm2835-i2s.c                  | 20 +++++------
>  sound/soc/bcm/cygnus-ssp.c                   |  4 +--
>  sound/soc/cirrus/ep93xx-i2s.c                |  4 +--
>  sound/soc/dwc/dwc-i2s.c                      |  8 ++---
>  sound/soc/fsl/fsl_audmix.c                   |  6 ++--
>  sound/soc/fsl/fsl_esai.c                     |  8 ++---
>  sound/soc/fsl/fsl_mqs.c                      |  2 +-
>  sound/soc/fsl/fsl_sai.c                      |  8 ++---
>  sound/soc/fsl/fsl_ssi.c                      | 22 ++++++------
>  sound/soc/fsl/imx-audmix.c                   |  4 +--
>  sound/soc/fsl/imx-card.c                     |  2 +-
>  sound/soc/generic/simple-card-utils.c        |  7 +++-
>  sound/soc/generic/test-component.c           | 18 +++++-----
>  sound/soc/hisilicon/hi6210-i2s.c             | 18 +++++-----
>  sound/soc/img/img-i2s-in.c                   |  4 +--
>  sound/soc/img/img-i2s-out.c                  |  6 ++--
>  sound/soc/intel/atom/sst-atom-controls.c     |  4 +--
>  sound/soc/intel/boards/bytcht_cx2072x.c      |  2 +-
>  sound/soc/intel/boards/bytcht_da7213.c       |  2 +-
>  sound/soc/intel/boards/bytcht_es8316.c       |  2 +-
>  sound/soc/intel/boards/bytcht_nocodec.c      |  2 +-
>  sound/soc/intel/boards/bytcr_rt5640.c        |  2 +-
>  sound/soc/intel/boards/bytcr_rt5651.c        |  2 +-
>  sound/soc/intel/boards/bytcr_wm5102.c        |  2 +-
>  sound/soc/intel/boards/cht_bsw_max98090_ti.c |  3 +-
>  sound/soc/intel/boards/cht_bsw_rt5645.c      |  6 ++--
>  sound/soc/intel/boards/cht_bsw_rt5672.c      |  2 +-
>  sound/soc/intel/keembay/kmb_platform.c       |  4 +--
>  sound/soc/jz4740/jz4740-i2s.c                | 10 +++---
>  sound/soc/mediatek/mt8195/mt8195-dai-etdm.c  |  6 ++--
>  sound/soc/mediatek/mt8195/mt8195-dai-pcm.c   |  6 ++--
>  sound/soc/meson/aiu-encoder-i2s.c            |  2 +-
>  sound/soc/meson/axg-tdm-interface.c          | 14 ++++----
>  sound/soc/mxs/mxs-saif.c                     |  4 +--
>  sound/soc/pxa/magician.c                     |  8 ++---
>  sound/soc/pxa/mmp-sspa.c                     |  6 ++--
>  sound/soc/pxa/pxa-ssp.c                      | 22 ++++++------
>  sound/soc/pxa/pxa2xx-i2s.c                   |  6 ++--
>  sound/soc/qcom/apq8016_sbc.c                 |  2 +-
>  sound/soc/qcom/qdsp6/audioreach.c            |  4 +--
>  sound/soc/qcom/qdsp6/q6afe.c                 |  6 ++--
>  sound/soc/qcom/sc7180.c                      |  2 +-
>  sound/soc/qcom/sdm845.c                      |  6 ++--
>  sound/soc/qcom/sm8250.c                      |  4 +--
>  sound/soc/rockchip/rockchip_i2s.c            |  6 ++--
>  sound/soc/rockchip/rockchip_i2s_tdm.c        |  6 ++--
>  sound/soc/samsung/i2s.c                      |  6 ++--
>  sound/soc/samsung/pcm.c                      |  4 +--
>  sound/soc/samsung/s3c-i2s-v2.c               |  6 ++--
>  sound/soc/samsung/s3c24xx-i2s.c              |  6 ++--
>  sound/soc/sh/fsi.c                           |  6 ++--
>  sound/soc/sh/rcar/core.c                     |  4 +--
>  sound/soc/sh/rz-ssi.c                        |  2 +-
>  sound/soc/sh/ssi.c                           | 10 +++---
>  sound/soc/soc-core.c                         | 14 ++------
>  sound/soc/soc-dai.c                          |  3 +-
>  sound/soc/stm/stm32_i2s.c                    |  8 ++---
>  sound/soc/stm/stm32_sai_sub.c                |  8 ++---
>  sound/soc/sunxi/sun4i-i2s.c                  | 18 +++++-----
>  sound/soc/sunxi/sun8i-codec.c                |  6 ++--
>  sound/soc/tegra/tegra20_i2s.c                |  6 ++--
>  sound/soc/tegra/tegra210_i2s.c               |  6 ++--
>  sound/soc/tegra/tegra30_i2s.c                |  6 ++--
>  sound/soc/ti/davinci-i2s.c                   | 32 ++++++++---------
>  sound/soc/ti/davinci-mcasp.c                 | 10 +++---
>  sound/soc/ti/omap-mcbsp.c                    | 12 +++----
>  sound/soc/ux500/ux500_msp_dai.c              | 36 ++++++++++----------
>  sound/soc/xtensa/xtfpga-i2s.c                |  4 +--
>  77 files changed, 279 insertions(+), 283 deletions(-)
>
Mark Brown June 9, 2022, 1:32 p.m. UTC | #2
On Thu, 19 May 2022 16:42:22 +0100, Charles Keepax wrote:
> Currently the set_fmt callback always passes clock provider/consumer
> with respect to the CODEC. This made sense when the framework was
> directly broken down into platforms and CODECs. However, as things
> are now broken down into components which can be connected as either
> the CPU or CODEC side of a DAI link it simplifies things if each
> side of the link is just told if it is provider or consumer of the
> clocks. Making this change allows us to remove one of the last parts
> of the ASoC core that needs to know if a driver is a CODEC driver,
> where it flips the clock format specifier if a CODEC driver is used on
> the CPU side of a DAI link, as well as just being conceptually more
> consistent with componentisation.
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[01/56] ASoC: core: Add set_fmt_new callback that directly specifies provider
        commit: 905f3a04e184854555fc248ca4e692fdbf2f2547
[02/56] ASoC: amd: vangogh: Update to use set_fmt_new callback
        commit: ab890e0f83a65624d20b0ca4a7cb6306b8511558
[03/56] ASoC: atmel: Update to use set_fmt_new callback
        commit: 0fd054a577180cd807992e32c7cd394e54c85903
[04/56] ASoC: au1x: Update to use set_fmt_new callback
        commit: fee11f70849b21a244e6e27d281f3858b671bfea
[05/56] ASoC: bcm: Update to use set_fmt_new callback
        commit: 04ea2404468b7885c560c3673f6f2fd368f305a2
[06/56] ASoC: ep93xx: Update to use set_fmt_new callback
        commit: 5d6124e58d56818249a6266f56d9c3739e72e1bd
[07/56] ASoC: dwc: Update to use set_fmt_new callback
        commit: ca0444f1f7b228ae3b8d1a5c0f0d1b4463171f98
[08/56] ASoC: fsl: Update to use set_fmt_new callback
        commit: 3b14c15a333b8225ea38479e13c0366539d3374a
[09/56] ASoC: hisilicon: Update to use set_fmt_new callback
        commit: 0f362524dd3face4865077a4f7e7e640a95702aa
[10/56] ASoC: img: Update to use set_fmt_new callback
        commit: ed2b384082a678a0c4c8c56deff9e5f46d5e3fca
[11/56] ASoC: Intel: Update to use set_fmt_new callback
        commit: add9ee8c64c617f561a309cdda50104e9e2c12f6
[12/56] ASoC: js4740-i2s: Update to use set_fmt_new callback
        commit: cbb3a19f090d5a41b822caf9ff2058e1c6bc7ea3
[13/56] ASoC: mediatek: Update to use set_fmt_new callback
        commit: 3af99430f8d948a41556156155b0295dec274d41
[14/56] ASoC: meson: Update to use set_fmt_new callback
        commit: f60442bf6eab47aa4ab127aab88afdcc29a09a73
[15/56] ASoC: mxs-saif: Update to use set_fmt_new callback
        commit: f3c0064f1f8e358799c70c7905a09d15c5ec5e5a
[16/56] ASoC: pxa: Update to use set_fmt_new callback
        commit: 84c5b47c8ce4d5059d5e7539d3b44922cc0390e9
[17/56] ASoC: qcom: Update to use set_fmt_new callback
        commit: 1148e16b335f341f36475b646c692b4a71a1855e
[18/56] ASoC: rockchip: Update to use set_fmt_new callback
        commit: 27646d265da1745b2d1d10fec18465631cb1135f
[19/56] ASoC: samsung: Update to use set_fmt_new callback
        commit: 0b491c7c1b2555ef08285fd49a8567f2f9f34ff8
[20/56] ASoC: sh: Update to use set_fmt_new callback
        commit: 2d4dd776e902546389f2d7808ece7fd815aa829c
[21/56] ASoC: stm: Update to use set_fmt_new callback
        commit: 0092dac91ec1c404787841bdd9ecbf3404d1a41c
[22/56] ASoC: sunxi: Update to use set_fmt_new callback
        commit: 7cc3965fde74c9c725ed01de4ac35bc7d562d16a
[23/56] ASoC: tegra: Update to use set_fmt_new callback
        commit: d92ad6633fa77f9496840b77c8effeaa13ac78dc
[24/56] ASoC: test-component: Update to use set_fmt_new callback
        commit: d444c8d246a62392c0d249b1030c3ca271d47649
[25/56] ASoC: ti: Update to use set_fmt_new callback
        commit: 563ff63dc9fbb8ef4b8f145a53c84a5489bbd789
[26/56] ASoC: ux500: Update to use set_fmt_new callback
        commit: ce3467c78478e33927aea9043bf20f46fa4d5688
[27/56] ASoC: xtensa: Update to use set_fmt_new callback
        commit: e945206a0a448ac81dde0609578508368946f7a6
[28/56] ASoC: core: Always send the CPU DAI a direct clock specifier
        commit: 6c076273a326cc5b5162451aacf7b7744bb03c66
[29/56] ASoC: amd: vangogh: Rename set_fmt_new back to set_fmt
        commit: 346f47e784cd48b456f267a66e0daf1ef10d21b3
[30/56] ASoC: atmel: Rename set_fmt_new back to set_fmt
        commit: a839a53b9dc70f94032a671ee019599884612d4a
[31/56] ASoC: au1x: Rename set_fmt_new back to set_fmt
        commit: 2c73f5fd20a845fcb48173578b7c83dbcbacdeda
[32/56] ASoC: bcm: Rename set_fmt_new back to set_fmt
        commit: 1a267dd98c246237be00587b6e71f969bf75f10d
[33/56] ASoC: ep93xx: Rename set_fmt_new back to set_fmt
        commit: 324a4db8de05290237793dc3d7da887846ae90c1
[34/56] ASoC: dwc: Rename set_fmt_new back to set_fmt
        commit: 765fb623a2cd925c550370f73efe2137c52a1b25
[35/56] ASoC: fsl: Rename set_fmt_new back to set_fmt
        commit: 00778276cf4c611882219ab7aba9664c48981f1a
[36/56] ASoC: hisilicon: Rename set_fmt_new back to set_fmt
        commit: b9a7972818b84a15d46505df7808fd86c3fba5bb
[37/56] ASoC: img: Rename set_fmt_new back to set_fmt
        commit: 1830a30ec4cf1642a429e80dbbeb86aa7825c71a
[38/56] ASoC: Intel: Rename set_fmt_new back to set_fmt
        commit: c14a6ce9848571cf67faff206b02e212bec82761
[39/56] ASoC: jz4740-i2s: Rename set_fmt_new back to set_fmt
        commit: 1724cc38e7685ad8b01413acd70a4a731fc105ae
[40/56] ASoC: mediatek: Rename set_fmt_new back to set_fmt
        commit: 00ca2d152ef0fa9f4beb2a590e176499440de8fe
[41/56] ASoC: meson: Rename set_fmt_new back to set_fmt
        commit: eee6b5b9f3af0e906085022713ef41e56d03eca8
[42/56] ASoC: mxs-saif: Rename set_fmt_new back to set_fmt
        commit: 1a805faeb4915496671cd24bd2a75cc97a85dfc8
[43/56] ASoC: pxa: Rename set_fmt_new back to set_fmt
        commit: 8e2cc2b241bc0bb905231f301e6dfc80dc79f8a8
[44/56] ASoC: qcom: Rename set_fmt_new back to set_fmt
        commit: f1bd2fae856384f9377ca3faed0583d929002640
[45/56] ASoC: rockchip: Rename set_fmt_new back to set_fmt
        commit: 059f16bc0e02164617312435c31dffdc419f113f
[46/56] ASoC: samsung: Rename set_fmt_new back to set_fmt
        commit: b99d00c724bcf395558cb3028e823bd8f554fee6
[47/56] ASoC: sh: Rename set_fmt_new back to set_fmt
        commit: adced68031f96642272fae4e8c36d45d13797306
[48/56] ASoC: stm: Rename set_fmt_new back to set_fmt
        commit: 02ba0d9680feee645a321d65012f38d0a368b559
[49/56] ASoC: sunxi: Rename set_fmt_new back to set_fmt
        commit: 15011b2388d020a6cdb323539fc69c31b04d9f21
[50/56] ASoC: tegra: Rename set_fmt_new back to set_fmt
        commit: 475f2af6a2ff33e828900601a162e324b9986f9a
[51/56] ASoC: test-component: Rename set_fmt_new back to set_fmt
        commit: 408c122ef9de99220f7919594ab8af98194a19e8
[52/56] ASoC: ti: Rename set_fmt_new back to set_fmt
        commit: 9ff1836023ae19013c01f230e6a091fad6835213
[53/56] ASoC: ux500: Rename set_fmt_new back to set_fmt
        commit: e24ba1a21e244e7174e75ca0c4020beaff0ad369
[54/56] ASoC: xtensa: Rename set_fmt_new back to set_fmt
        commit: 58e23e21d18532aaa404e1db87ec92762e1fecd5
[55/56] ASoC: soc-dai: Remove set_fmt_new callback
        commit: 19423951a4b5c4f0ca107d6a4bed23f3f63718ca
[56/56] ASoC: simple-card-utils: Move snd_soc_component_is_codec to be local
        commit: 28086d05ada6d03daa886aad0e469854b811311c

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark
Samuel Holland June 10, 2022, 2:03 a.m. UTC | #3
Hi Mark,

On 6/9/22 8:32 AM, Mark Brown wrote:
> On Thu, 19 May 2022 16:42:22 +0100, Charles Keepax wrote:
>> Currently the set_fmt callback always passes clock provider/consumer
>> with respect to the CODEC. This made sense when the framework was
>> directly broken down into platforms and CODECs. However, as things
>> are now broken down into components which can be connected as either
>> the CPU or CODEC side of a DAI link it simplifies things if each
>> side of the link is just told if it is provider or consumer of the
>> clocks. Making this change allows us to remove one of the last parts
>> of the ASoC core that needs to know if a driver is a CODEC driver,
>> where it flips the clock format specifier if a CODEC driver is used on
>> the CPU side of a DAI link, as well as just being conceptually more
>> consistent with componentisation.
>>
>> [...]
> 
> Applied to
> 
>    https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
> 
> Thanks!
> 
> [01/56] ASoC: core: Add set_fmt_new callback that directly specifies provider
>         commit: 905f3a04e184854555fc248ca4e692fdbf2f2547
> [02/56] ASoC: amd: vangogh: Update to use set_fmt_new callback
>         commit: ab890e0f83a65624d20b0ca4a7cb6306b8511558
> [03/56] ASoC: atmel: Update to use set_fmt_new callback
>         commit: 0fd054a577180cd807992e32c7cd394e54c85903
> [04/56] ASoC: au1x: Update to use set_fmt_new callback
>         commit: fee11f70849b21a244e6e27d281f3858b671bfea
> [05/56] ASoC: bcm: Update to use set_fmt_new callback
>         commit: 04ea2404468b7885c560c3673f6f2fd368f305a2
> [06/56] ASoC: ep93xx: Update to use set_fmt_new callback
>         commit: 5d6124e58d56818249a6266f56d9c3739e72e1bd
> [07/56] ASoC: dwc: Update to use set_fmt_new callback
>         commit: ca0444f1f7b228ae3b8d1a5c0f0d1b4463171f98
> [08/56] ASoC: fsl: Update to use set_fmt_new callback
>         commit: 3b14c15a333b8225ea38479e13c0366539d3374a
> [09/56] ASoC: hisilicon: Update to use set_fmt_new callback
>         commit: 0f362524dd3face4865077a4f7e7e640a95702aa
> [10/56] ASoC: img: Update to use set_fmt_new callback
>         commit: ed2b384082a678a0c4c8c56deff9e5f46d5e3fca
> [11/56] ASoC: Intel: Update to use set_fmt_new callback
>         commit: add9ee8c64c617f561a309cdda50104e9e2c12f6
> [12/56] ASoC: js4740-i2s: Update to use set_fmt_new callback
>         commit: cbb3a19f090d5a41b822caf9ff2058e1c6bc7ea3
> [13/56] ASoC: mediatek: Update to use set_fmt_new callback
>         commit: 3af99430f8d948a41556156155b0295dec274d41
> [14/56] ASoC: meson: Update to use set_fmt_new callback
>         commit: f60442bf6eab47aa4ab127aab88afdcc29a09a73
> [15/56] ASoC: mxs-saif: Update to use set_fmt_new callback
>         commit: f3c0064f1f8e358799c70c7905a09d15c5ec5e5a
> [16/56] ASoC: pxa: Update to use set_fmt_new callback
>         commit: 84c5b47c8ce4d5059d5e7539d3b44922cc0390e9
> [17/56] ASoC: qcom: Update to use set_fmt_new callback
>         commit: 1148e16b335f341f36475b646c692b4a71a1855e
> [18/56] ASoC: rockchip: Update to use set_fmt_new callback
>         commit: 27646d265da1745b2d1d10fec18465631cb1135f
> [19/56] ASoC: samsung: Update to use set_fmt_new callback
>         commit: 0b491c7c1b2555ef08285fd49a8567f2f9f34ff8
> [20/56] ASoC: sh: Update to use set_fmt_new callback
>         commit: 2d4dd776e902546389f2d7808ece7fd815aa829c
> [21/56] ASoC: stm: Update to use set_fmt_new callback
>         commit: 0092dac91ec1c404787841bdd9ecbf3404d1a41c
> [22/56] ASoC: sunxi: Update to use set_fmt_new callback
>         commit: 7cc3965fde74c9c725ed01de4ac35bc7d562d16a

This patch is wrong, which I pointed out earlier[1]. It will break audio on the
Allwinner A33 and A64 SoCs. Charles said he would send a v2[2]. Excluding the
changes to sound/soc/sunxi/sun8i-codec.c from the patch would fix it.

Regards,
Samuel

[1]:
https://lore.kernel.org/alsa-devel/948d5418-44ca-2e60-0c1c-0b16f315feba@sholland.org/
[2]:
https://lore.kernel.org/linux-sunxi/20220520095654.GK38351@ediswmail.ad.cirrus.com/
Mark Brown June 10, 2022, 12:03 p.m. UTC | #4
On Thu, Jun 09, 2022 at 09:03:15PM -0500, Samuel Holland wrote:
> On 6/9/22 8:32 AM, Mark Brown wrote:
> > On Thu, 19 May 2022 16:42:22 +0100, Charles Keepax wrote:

Please delete unneeded context from mails when replying.  Doing this
makes it much easier to find your reply in the message, helping ensure
it won't be missed by people scrolling through the irrelevant quoted
material.

> > [22/56] ASoC: sunxi: Update to use set_fmt_new callback
> >         commit: 7cc3965fde74c9c725ed01de4ac35bc7d562d16a

> This patch is wrong, which I pointed out earlier[1]. It will break audio on the
> Allwinner A33 and A64 SoCs. Charles said he would send a v2[2]. Excluding the
> changes to sound/soc/sunxi/sun8i-codec.c from the patch would fix it.

Your mail doesn't say that this will break, it says the change is
unexpected.  In any case, please send an incremental fix - there's no
need to revert the entire series for this.
Charles Keepax June 13, 2022, 9:54 a.m. UTC | #5
On Fri, Jun 10, 2022 at 01:03:08PM +0100, Mark Brown wrote:
> On Thu, Jun 09, 2022 at 09:03:15PM -0500, Samuel Holland wrote:
> > On 6/9/22 8:32 AM, Mark Brown wrote:
> > > On Thu, 19 May 2022 16:42:22 +0100, Charles Keepax wrote:
> 
> Please delete unneeded context from mails when replying.  Doing this
> makes it much easier to find your reply in the message, helping ensure
> it won't be missed by people scrolling through the irrelevant quoted
> material.
> 
> > > [22/56] ASoC: sunxi: Update to use set_fmt_new callback
> > >         commit: 7cc3965fde74c9c725ed01de4ac35bc7d562d16a
> 
> > This patch is wrong, which I pointed out earlier[1]. It will break audio on the
> > Allwinner A33 and A64 SoCs. Charles said he would send a v2[2]. Excluding the
> > changes to sound/soc/sunxi/sun8i-codec.c from the patch would fix it.
> 
> Your mail doesn't say that this will break, it says the change is
> unexpected.  In any case, please send an incremental fix - there's no
> need to revert the entire series for this.

Apologies guys was on PTO last week, I will send an incremental
fix today to patch up the issues.

Thanks,
Charles