Alsa-devel
Threads by month
- ----- 2025 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
January 2018
- 132 participants
- 286 discussions
14 Feb '18
Hi Mark
These are v2 of replace platform/codec to component.
Main diff between v1 -> v2 are
- Based on v4.15 + asoc/for-next
- Added missing new driver's replace
- Added Tested-by / Acked-by from each driver author
I will post both "replace platform" and "replace codec".
Kuninori Morimoto (225):
ASoC: remove rtd->platform checck
ASoC: soc-utils: replace platform to component
ASoC: soc-generic-dmaengine-pcm: replace platform to component
ASoC: intel: atom: replace platform to component
ASoC: intel: skylake: replace platform to component
ASoC: intel: baytrail: replace platform to component
ASoC: intel: haswell: replace platform to component
ASoC: bcm: cygnus: replace platform to component
ASoC: sh: rsnd: replace platform to component
ASoC: sh: dma-sh7760: replace platform to component
ASoC: sh: fsi: replace platform to component
ASoC: sh: siu: replace platform to component
ASoC: atmel: replace platform to component
ASoC: amd: replace platform to component
ASoC: cs47l24: replace platform to component
ASoC: rt5514-spi: replace platform to component
ASoC: wm5110: replace platform to component
ASoC: wm5102: replace platform to component
ASoC: davinci-i2s: replace platform to component
ASoC: fsl: dma: replace platform to component
ASoC: fsl: asrc: replace platform to component
ASoC: fsl: imx: replace platform to component
ASoC: fsl: mpc5200: replace platform to component
ASoC: dwc-pcm: replace platform to component
ASoC: kirkwood: replace platform to component
ASoC: pxa: mmp: replace platform to component
ASoC: pxa: pxa2xx: replace platform to component
ASoC: qcom: lpass-platform: replace platform to component
ASoC: samsung: idma: replace platform to component
ASoC: xtfpga-i2s: replace platform to component
ASoC: blackfin: bf5xx-ac97-pcm: replace platform to component
ASoC: blackfin: bf5xx-i2s-pcm: replace platform to component
ASoC: omap-pcm: replace platform to component
ASoC: au1x: dbdma2: replace platform to component
ASoC: au1x: dma: replace platform to component
ASoC: nuc900-pcm: replace platform to component
ASoC: txx9aclc: replace platform to component
ASoC: mt2701/mt8173: replace platform to component
ASoC: stm: stm32_adfsdm: replace platform to component
ASoC: soc-utils: replace codec to component
ASoC: ac97: replace codec to component
ASoC: wm0010: replace codec to component
ASoC: wm2000: replace codec to component
ASoC: wm2200: replace codec to component
ASoC: wm5100: replace codec to component
ASoC: wm8350: replace codec to component
ASoC: wm8400: replace codec to component
ASoC: wm8580: replace codec to component
ASoC: wm8524: replace codec to component
ASoC: wm8510: replace codec to component
ASoC: wm8523: replace codec to component
ASoC: wm8711: replace codec to component
ASoC: wm8750: replace codec to component
ASoC: wm8737: replace codec to component
ASoC: wm8776: replace codec to component
ASoC: wm8770: replace codec to component
ASoC: wm8727: replace codec to component
ASoC: wm8731: replace codec to component
ASoC: wm8782: replace codec to component
ASoC: wm8728: replace codec to component
ASoC: wm8741: replace codec to component
ASoC: wm8753: replace codec to component
ASoC: wm8804: replace codec to component
ASoC: wm8900: replace codec to component
ASoC: wm8903: replace codec to component
ASoC: wm8955: replace codec to component
ASoC: wm8960: replace codec to component
ASoC: wm8985: replace codec to component
ASoC: wm8971: replace codec to component
ASoC: wm8978: replace codec to component
ASoC: wm8974: replace codec to component
ASoC: wm8990: replace codec to component
ASoC: wm8988: replace codec to component
ASoC: wm8983: replace codec to component
ASoC: wm8962: replace codec to component
ASoC: wm8996: replace codec to component
ASoC: wm8991: replace codec to component
ASoC: wm8995: replace codec to component
ASoC: wm8961: replace codec to component
ASoC: wm8940: replace codec to component
ASoC: wm8904: replace codec to component
ASoC: wm9081: replace codec to component
ASoC: wm9090: replace codec to component
ASoC: wm9705: replace codec to component
ASoC: wm9712: replace codec to component
ASoC: wm9713: replace codec to component
ASoC: wm9867: replace codec to component
ASoC: wm1250-ev1: replace codec to component
ASoC: wm8993/wm8994/wm8958: replace codec to component
ASoC: ak4613: replace codec to component
ASoC: ak4642: replace codec to component
ASoC: ak5386: replace codec to component
ASoC: ak4671: replace codec to component
ASoC: ak4104: replace codec to component
ASoC: ak4535: replace codec to component
ASoC: ak4641: replace codec to component
ASoC: ak4554: replace codec to component
ASoC: rt274: replace codec to component
ASoC: rt5616: replace codec to component
ASoC: rt5640: replace codec to component
ASoC: rt5651: replace codec to component
ASoC: rt5514: replace codec to component
ASoC: rt5659: replace codec to component
ASoC: rt5670: replace codec to component
ASoC: rt5660: replace codec to component
ASoC: rt5631: replace codec to component
ASoC: rt5665: replace codec to component
ASoC: rt5645/rt5677: replace codec to component
ASoC: cs4271: replace codec to component
ASoC: cs4270: replace codec to component
ASoC: cs4349: replace codec to component
ASoC: cs4265: replace codec to component
ASoC: cs35l32: replace codec to component
ASoC: cs35l33: replace codec to component
ASoC: cs35l35: replace codec to component
ASoC: cs35l34: replace codec to component
ASoC: cs42xx8: replace codec to component
ASoC: cs42l73: replace codec to component
ASoC: cs42l52: replace codec to component
ASoC: cs42l56: replace codec to component
ASoC: cs42l51: replace codec to component
ASoC: cs42l42: replace codec to component
ASoC: cs43130: replace codec to component
ASoC: cs53l30: replace codec to component
ASoC: da732x: replace codec to component
ASoC: da7210: replace codec to component
ASoC: da7218: replace codec to component
ASoC: da7213: replace codec to component
ASoC: da9055: replace codec to component
ASoC: max9860: replace codec to component
ASoC: max9850: replace codec to component
ASoC: max98371: replace codec to component
ASoC: max98095: replace codec to component
ASoC: max98090: replace codec to component
ASoC: max98926: replace codec to component
ASoC: max98088: replace codec to component
ASoC: max98925: replace codec to component
ASoC: max98927: replace codec to component
ASoC: max98357a: replace codec to component
ASoC: max98373: replace codec to component
ASoC: adav80x: replace codec to component
ASoC: adau1373: replace codec to component
ASoC: adau7002: replace codec to component
ASoC: adau1977: replace codec to component
ASoC: adau1701: replace codec to component
ASoC: adau17x1/adau1761/adau1781: replace codec to component
ASoC: tlv320aic23: replace codec to component
ASoC: tlv320aic26: replace codec to component
ASoC: tlv320aic3x: replace codec to component
ASoC: tlv320dac33: replace codec to component
ASoC: tlv320aic32x4: replace codec to component
ASoC: tlv320aic31xx: replace codec to component
ASoC: cx20442: replace codec to component
ASoC: tscs42xx: replace codec to component
ASoC: pcm179x: replace codec to component
ASoC: pcm3008: replace codec to component
ASoC: pcm1681: replace codec to component
ASoC: pcm512x: replace codec to component
ASoC: pcm5102a: replace codec to component
ASoC: pcm3168a: replace codec to component
ASoC: twl6040: replace codec to component
ASoC: twl4030: replace codec to component
ASoC: msm8916-wcd-analog: replace codec to component
ASoC: msm8916-wcd-digital: replace codec to component
ASoC: spdif_transmitter: replace codec to component
ASoC: spdif_receiver: replace codec to component
ASoC: tas5720: replace codec to component
ASoC: tas2552: replace codec to component
ASoC: sun4i: replace codec to component
ASoC: sun8i: replace codec to component
ASoC: ads117x: replace codec to component
ASoC: ab8500: replace codec to component
ASoC: ad193x: replace codec to component
ASoC: ad1836: replace codec to component
ASoC: ad1980: replace codec to component
ASoC: ad73311: replace codec to component
ASoC: atmel-pdmic: replace codec to component
ASoC: atmel-classd: replace codec to component
ASoC: ssm4567: replace codec to component
ASoC: ssm2602: replace codec to component
ASoC: ssm2518: replace codec to component
ASoC: sta350: replace codec to component
ASoC: sta32x: replace codec to component
ASoC: sta529: replace codec to component
ASoC: tas5086: replace codec to component
ASoC: tas571x: replace codec to component
ASoC: nau8824: replace codec to component
ASoC: nau8810: replace codec to component
ASoC: nau8540: replace codec to component
ASoC: es8316: replace codec to component
ASoC: es7134: replace codec to component
ASoC: es8328: replace codec to component
ASoC: alc5632: replace codec to component
ASoC: alc5623: replace codec to component
ASoC: hdmi-codec: replace codec to component
ASoC: bt-sco: replace codec to component
ASoC: vc4_hdmi: replace codec to component
ASoC: zx_aud96p22: replace codec to component
ASoC: wl1273: replace codec to component
ASoC: hdac_hdmi/nau8825/rt286/rt298/rt5663/da7219: replace codec to component
ASoC: arizona: replace codec to component
ASoC: mc13783: replace codec to component
ASoC: sgtl5000: replace codec to component
ASoC: stac9766: replace codec to component
ASoC: sirf-audio: replace codec to component
ASoC: inno_rk3036: replace codec to component
ASoC: isabelle: replace codec to component
ASoC: tfa9879: replace codec to component
ASoC: dmic: replace codec to component
ASoC: sti-sas: replace codec to component
ASoC: gtm601: replace codec to component
ASoC: 88pm860x: replace codec to component
ASoC: pistachio: replace codec to component
ASoC: lm49453: replace codec to component
ASoC: cq93vc: replace codec to component
ASoC: jz4740: replace codec to component
ASoC: uda1380: replace codec to component
ASoC: ml26124: replace codec to component
ASoC: si476x: replace codec to component
ASoC: uda134x: replace codec to component
ASoC: ics43432: replace codec to component
ASoC: pxa/mioa701_wm9713: replace codec to component
ASoC: uniphier: evea: replace codec to component
ASoC: pcm186x: replace codec to component
ASoC: tas6424: replace codec to component
drivers/gpu/drm/vc4/vc4_hdmi.c | 47 +-
include/sound/dmaengine_pcm.h | 2 +
include/sound/soc.h | 13 +-
sound/soc/amd/acp-pcm-dma.c | 29 +-
sound/soc/amd/acp-rt5645.c | 4 +-
sound/soc/atmel/atmel-classd.c | 58 +-
sound/soc/atmel/atmel-pcm-pdc.c | 6 +-
sound/soc/atmel/atmel-pdmic.c | 60 +-
sound/soc/au1x/dbdma2.c | 13 +-
sound/soc/au1x/dma.c | 12 +-
sound/soc/bcm/cygnus-pcm.c | 7 +-
sound/soc/blackfin/bf5xx-ac97-pcm.c | 6 +-
sound/soc/blackfin/bf5xx-i2s-pcm.c | 6 +-
sound/soc/codecs/88pm860x-codec.c | 166 ++---
sound/soc/codecs/88pm860x-codec.h | 4 +-
sound/soc/codecs/ab8500-codec.c | 295 ++++----
sound/soc/codecs/ac97.c | 46 +-
sound/soc/codecs/ad1836.c | 68 +-
sound/soc/codecs/ad193x-i2c.c | 7 -
sound/soc/codecs/ad193x-spi.c | 7 -
sound/soc/codecs/ad193x.c | 46 +-
sound/soc/codecs/ad1980.c | 87 +--
sound/soc/codecs/ad73311.c | 27 +-
sound/soc/codecs/adau1373.c | 84 +--
sound/soc/codecs/adau1701.c | 101 ++-
sound/soc/codecs/adau1761.c | 88 +--
sound/soc/codecs/adau1781.c | 51 +-
sound/soc/codecs/adau17x1.c | 67 +-
sound/soc/codecs/adau17x1.h | 8 +-
sound/soc/codecs/adau1977-i2c.c | 7 -
sound/soc/codecs/adau1977-spi.c | 7 -
sound/soc/codecs/adau1977.c | 59 +-
sound/soc/codecs/adau7002.c | 20 +-
sound/soc/codecs/adav801.c | 7 -
sound/soc/codecs/adav803.c | 7 -
sound/soc/codecs/adav80x.c | 130 ++--
sound/soc/codecs/ads117x.c | 27 +-
sound/soc/codecs/ak4104.c | 68 +-
sound/soc/codecs/ak4535.c | 78 +-
sound/soc/codecs/ak4554.c | 27 +-
sound/soc/codecs/ak4613.c | 73 +-
sound/soc/codecs/ak4641.c | 91 +--
sound/soc/codecs/ak4642.c | 105 ++-
sound/soc/codecs/ak4671.c | 67 +-
sound/soc/codecs/ak5386.c | 62 +-
sound/soc/codecs/alc5623.c | 147 ++--
sound/soc/codecs/alc5632.c | 138 ++--
sound/soc/codecs/arizona.c | 208 +++---
sound/soc/codecs/arizona.h | 24 +-
sound/soc/codecs/bt-sco.c | 21 +-
sound/soc/codecs/cq93vc.c | 33 +-
sound/soc/codecs/cs35l32.c | 45 +-
sound/soc/codecs/cs35l33.c | 186 +++--
sound/soc/codecs/cs35l34.c | 127 ++--
sound/soc/codecs/cs35l35.c | 104 ++-
sound/soc/codecs/cs4265.c | 98 ++-
sound/soc/codecs/cs4270.c | 124 ++--
sound/soc/codecs/cs4271-i2c.c | 7 -
sound/soc/codecs/cs4271-spi.c | 7 -
sound/soc/codecs/cs4271.c | 105 ++-
sound/soc/codecs/cs42l42.c | 154 ++--
sound/soc/codecs/cs42l42.h | 2 +-
sound/soc/codecs/cs42l51-i2c.c | 8 -
sound/soc/codecs/cs42l51.c | 81 ++-
sound/soc/codecs/cs42l52.c | 146 ++--
sound/soc/codecs/cs42l56.c | 158 ++--
sound/soc/codecs/cs42l73.c | 122 ++--
sound/soc/codecs/cs42xx8-i2c.c | 1 -
sound/soc/codecs/cs42xx8.c | 57 +-
sound/soc/codecs/cs43130.c | 243 ++++---
sound/soc/codecs/cs43130.h | 2 +-
sound/soc/codecs/cs4349.c | 39 +-
sound/soc/codecs/cs47l24.c | 120 ++-
sound/soc/codecs/cs53l30.c | 57 +-
sound/soc/codecs/cx20442.c | 89 ++-
sound/soc/codecs/da7210.c | 181 +++--
sound/soc/codecs/da7213.c | 328 ++++-----
sound/soc/codecs/da7218.c | 498 +++++++------
sound/soc/codecs/da7218.h | 2 +-
sound/soc/codecs/da7219-aad.c | 236 +++---
sound/soc/codecs/da7219-aad.h | 12 +-
sound/soc/codecs/da7219.c | 307 ++++----
sound/soc/codecs/da7219.h | 2 +-
sound/soc/codecs/da732x.c | 241 +++---
sound/soc/codecs/da9055.c | 186 +++--
sound/soc/codecs/dmic.c | 33 +-
sound/soc/codecs/es7134.c | 27 +-
sound/soc/codecs/es8316.c | 80 +-
sound/soc/codecs/es8328-i2c.c | 7 -
sound/soc/codecs/es8328-spi.c | 7 -
sound/soc/codecs/es8328.c | 147 ++--
sound/soc/codecs/gtm601.c | 28 +-
sound/soc/codecs/hdac_hdmi.c | 47 +-
sound/soc/codecs/hdac_hdmi.h | 2 +-
sound/soc/codecs/hdmi-codec.c | 23 +-
sound/soc/codecs/ics43432.c | 16 +-
sound/soc/codecs/inno_rk3036.c | 70 +-
sound/soc/codecs/isabelle.c | 57 +-
sound/soc/codecs/jz4740.c | 50 +-
sound/soc/codecs/lm49453.c | 65 +-
sound/soc/codecs/max98088.c | 314 ++++----
sound/soc/codecs/max98090.c | 319 ++++----
sound/soc/codecs/max98090.h | 4 +-
sound/soc/codecs/max98095.c | 448 ++++++------
sound/soc/codecs/max98095.h | 2 +-
sound/soc/codecs/max98357a.c | 29 +-
sound/soc/codecs/max98371.c | 43 +-
sound/soc/codecs/max98371.h | 1 -
sound/soc/codecs/max98373.c | 75 +-
sound/soc/codecs/max9850.c | 80 +-
sound/soc/codecs/max9860.c | 70 +-
sound/soc/codecs/max9867.c | 65 +-
sound/soc/codecs/max9867.h | 2 +-
sound/soc/codecs/max98925.c | 72 +-
sound/soc/codecs/max98925.h | 2 +-
sound/soc/codecs/max98926.c | 56 +-
sound/soc/codecs/max98926.h | 2 +-
sound/soc/codecs/max98927.c | 82 +--
sound/soc/codecs/max98927.h | 2 +-
sound/soc/codecs/mc13783.c | 68 +-
sound/soc/codecs/ml26124.c | 103 ++-
sound/soc/codecs/msm8916-wcd-analog.c | 207 +++---
sound/soc/codecs/msm8916-wcd-digital.c | 115 +--
sound/soc/codecs/nau8540.c | 79 +-
sound/soc/codecs/nau8810.c | 73 +-
sound/soc/codecs/nau8824.c | 113 ++-
sound/soc/codecs/nau8824.h | 2 +-
sound/soc/codecs/nau8825.c | 107 ++-
sound/soc/codecs/nau8825.h | 2 +-
sound/soc/codecs/pcm1681.c | 62 +-
sound/soc/codecs/pcm179x-i2c.c | 6 -
sound/soc/codecs/pcm179x-spi.c | 6 -
sound/soc/codecs/pcm179x.c | 45 +-
sound/soc/codecs/pcm179x.h | 1 -
sound/soc/codecs/pcm186x-i2c.c | 8 -
sound/soc/codecs/pcm186x-spi.c | 8 -
sound/soc/codecs/pcm186x.c | 143 ++--
sound/soc/codecs/pcm186x.h | 1 -
sound/soc/codecs/pcm3008.c | 36 +-
sound/soc/codecs/pcm3168a.c | 51 +-
sound/soc/codecs/pcm5102a.c | 16 +-
sound/soc/codecs/pcm512x.c | 162 ++---
sound/soc/codecs/rt274.c | 206 +++---
sound/soc/codecs/rt286.c | 198 +++--
sound/soc/codecs/rt286.h | 2 +-
sound/soc/codecs/rt298.c | 210 +++---
sound/soc/codecs/rt298.h | 2 +-
sound/soc/codecs/rt5514-spi.c | 36 +-
sound/soc/codecs/rt5514.c | 124 ++--
sound/soc/codecs/rt5514.h | 2 +-
sound/soc/codecs/rt5616.c | 219 +++---
sound/soc/codecs/rt5631.c | 324 +++++----
sound/soc/codecs/rt5640.c | 260 ++++---
sound/soc/codecs/rt5640.h | 6 +-
sound/soc/codecs/rt5645.c | 370 +++++-----
sound/soc/codecs/rt5645.h | 4 +-
sound/soc/codecs/rt5651.c | 220 +++---
sound/soc/codecs/rt5651.h | 4 +-
sound/soc/codecs/rt5659.c | 307 ++++----
sound/soc/codecs/rt5659.h | 4 +-
sound/soc/codecs/rt5660.c | 145 ++--
sound/soc/codecs/rt5660.h | 2 +-
sound/soc/codecs/rt5663.c | 600 ++++++++-------
sound/soc/codecs/rt5663.h | 4 +-
sound/soc/codecs/rt5665.c | 345 +++++----
sound/soc/codecs/rt5665.h | 2 +-
sound/soc/codecs/rt5670.c | 295 ++++----
sound/soc/codecs/rt5670.h | 10 +-
sound/soc/codecs/rt5677.c | 205 +++---
sound/soc/codecs/rt5677.h | 4 +-
sound/soc/codecs/sgtl5000.c | 173 +++--
sound/soc/codecs/si476x.c | 42 +-
sound/soc/codecs/sirf-audio-codec.c | 58 +-
sound/soc/codecs/spdif_receiver.c | 26 +-
sound/soc/codecs/spdif_transmitter.c | 26 +-
sound/soc/codecs/ssm2518.c | 57 +-
sound/soc/codecs/ssm2602-i2c.c | 7 -
sound/soc/codecs/ssm2602-spi.c | 7 -
sound/soc/codecs/ssm2602.c | 77 +-
sound/soc/codecs/ssm4567.c | 44 +-
sound/soc/codecs/sta32x.c | 134 ++--
sound/soc/codecs/sta350.c | 117 ++-
sound/soc/codecs/sta529.c | 69 +-
sound/soc/codecs/stac9766.c | 77 +-
sound/soc/codecs/sti-sas.c | 84 +--
sound/soc/codecs/tas2552.c | 178 +++--
sound/soc/codecs/tas5086.c | 94 +--
sound/soc/codecs/tas571x.c | 55 +-
sound/soc/codecs/tas5720.c | 151 ++--
sound/soc/codecs/tas6424.c | 99 ++-
sound/soc/codecs/tfa9879.c | 50 +-
sound/soc/codecs/tlv320aic23-i2c.c | 7 -
sound/soc/codecs/tlv320aic23-spi.c | 7 -
sound/soc/codecs/tlv320aic23.c | 120 +--
sound/soc/codecs/tlv320aic26.c | 83 +--
sound/soc/codecs/tlv320aic31xx.c | 240 +++---
sound/soc/codecs/tlv320aic32x4.c | 207 +++---
sound/soc/codecs/tlv320aic3x.c | 293 ++++----
sound/soc/codecs/tlv320dac33.c | 402 +++++-----
sound/soc/codecs/tscs42xx.c | 222 +++---
sound/soc/codecs/twl4030.c | 383 +++++-----
sound/soc/codecs/twl6040.c | 269 ++++---
sound/soc/codecs/twl6040.h | 10 +-
sound/soc/codecs/uda134x.c | 78 +-
sound/soc/codecs/uda1380.c | 160 ++--
sound/soc/codecs/wl1273.c | 93 ++-
sound/soc/codecs/wl1273.h | 2 +-
sound/soc/codecs/wm0010.c | 181 +++--
sound/soc/codecs/wm1250-ev1.c | 27 +-
sound/soc/codecs/wm2000.c | 78 +-
sound/soc/codecs/wm2200.c | 157 ++--
sound/soc/codecs/wm5100.c | 260 ++++---
sound/soc/codecs/wm5100.h | 2 +-
sound/soc/codecs/wm5102.c | 140 ++--
sound/soc/codecs/wm5110.c | 174 ++---
sound/soc/codecs/wm8350.c | 183 +++--
sound/soc/codecs/wm8350.h | 4 +-
sound/soc/codecs/wm8400.c | 211 +++---
sound/soc/codecs/wm8510.c | 149 ++--
sound/soc/codecs/wm8523.c | 98 ++-
sound/soc/codecs/wm8524.c | 56 +-
sound/soc/codecs/wm8580.c | 150 ++--
sound/soc/codecs/wm8711.c | 116 ++-
sound/soc/codecs/wm8727.c | 29 +-
sound/soc/codecs/wm8728.c | 82 +--
sound/soc/codecs/wm8731.c | 101 ++-
sound/soc/codecs/wm8737.c | 109 ++-
sound/soc/codecs/wm8741.c | 133 ++--
sound/soc/codecs/wm8750.c | 115 ++-
sound/soc/codecs/wm8753.c | 289 ++++----
sound/soc/codecs/wm8770.c | 131 ++--
sound/soc/codecs/wm8776.c | 105 ++-
sound/soc/codecs/wm8782.c | 27 +-
sound/soc/codecs/wm8804.c | 100 ++-
sound/soc/codecs/wm8900.c | 251 ++++---
sound/soc/codecs/wm8903.c | 211 +++---
sound/soc/codecs/wm8903.h | 2 +-
sound/soc/codecs/wm8904.c | 355 +++++----
sound/soc/codecs/wm8940.c | 159 ++--
sound/soc/codecs/wm8955.c | 189 +++--
sound/soc/codecs/wm8958-dsp2.c | 278 +++----
sound/soc/codecs/wm8960.c | 249 +++----
sound/soc/codecs/wm8961.c | 241 +++---
sound/soc/codecs/wm8962.c | 397 +++++-----
sound/soc/codecs/wm8962.h | 2 +-
sound/soc/codecs/wm8971.c | 108 ++-
sound/soc/codecs/wm8974.c | 143 ++--
sound/soc/codecs/wm8978.c | 185 +++--
sound/soc/codecs/wm8983.c | 170 ++---
sound/soc/codecs/wm8985.c | 201 +++--
sound/soc/codecs/wm8988.c | 127 ++--
sound/soc/codecs/wm8990.c | 179 +++--
sound/soc/codecs/wm8991.c | 167 ++---
sound/soc/codecs/wm8993.c | 237 +++---
sound/soc/codecs/wm8994.c | 810 +++++++++++----------
sound/soc/codecs/wm8994.h | 8 +-
sound/soc/codecs/wm8995.c | 286 ++++----
sound/soc/codecs/wm8996.c | 401 +++++-----
sound/soc/codecs/wm8996.h | 4 +-
sound/soc/codecs/wm8997.c | 62 +-
sound/soc/codecs/wm8998.c | 88 ++-
sound/soc/codecs/wm9081.c | 228 +++---
sound/soc/codecs/wm9090.c | 109 ++-
sound/soc/codecs/wm9705.c | 83 +--
sound/soc/codecs/wm9712.c | 109 ++-
sound/soc/codecs/wm9713.c | 201 +++--
sound/soc/codecs/wm_adsp.c | 58 +-
sound/soc/codecs/wm_adsp.h | 6 +-
sound/soc/codecs/wm_hubs.c | 254 +++----
sound/soc/codecs/wm_hubs.h | 18 +-
sound/soc/codecs/zx_aud96p22.c | 35 +-
sound/soc/davinci/davinci-i2s.c | 13 +-
sound/soc/dwc/dwc-pcm.c | 5 +-
sound/soc/fsl/fsl_asrc.c | 10 -
sound/soc/fsl/fsl_asrc.h | 3 +-
sound/soc/fsl/fsl_asrc_dma.c | 14 +-
sound/soc/fsl/fsl_dma.c | 27 +-
sound/soc/fsl/imx-pcm-fiq.c | 6 +-
sound/soc/fsl/mpc5200_dma.c | 16 +-
sound/soc/fsl/wm1133-ev1.c | 6 +-
sound/soc/img/pistachio-internal-dac.c | 34 +-
sound/soc/intel/atom/sst-atom-controls.c | 36 +-
sound/soc/intel/atom/sst-mfld-platform-compress.c | 4 +-
sound/soc/intel/atom/sst-mfld-platform-pcm.c | 32 +-
sound/soc/intel/atom/sst-mfld-platform.h | 4 +-
sound/soc/intel/baytrail/sst-baytrail-pcm.c | 66 +-
sound/soc/intel/boards/bdw-rt5677.c | 41 +-
sound/soc/intel/boards/broadwell.c | 17 +-
sound/soc/intel/boards/bxt_da7219_max98357a.c | 12 +-
sound/soc/intel/boards/bxt_rt298.c | 12 +-
sound/soc/intel/boards/byt-rt5640.c | 4 +-
sound/soc/intel/boards/bytcr_rt5640.c | 8 +-
sound/soc/intel/boards/bytcr_rt5651.c | 2 +-
sound/soc/intel/boards/cht_bsw_rt5645.c | 8 +-
sound/soc/intel/boards/cht_bsw_rt5672.c | 18 +-
sound/soc/intel/boards/haswell.c | 3 +-
sound/soc/intel/boards/kbl_rt5663_max98927.c | 14 +-
.../soc/intel/boards/kbl_rt5663_rt5514_max98927.c | 14 +-
sound/soc/intel/boards/skl_nau88l25_max98357a.c | 12 +-
sound/soc/intel/boards/skl_nau88l25_ssm4567.c | 12 +-
sound/soc/intel/boards/skl_rt286.c | 12 +-
sound/soc/intel/haswell/sst-haswell-ipc.h | 2 +
sound/soc/intel/haswell/sst-haswell-pcm.c | 118 ++-
sound/soc/intel/skylake/skl-debug.c | 2 +-
sound/soc/intel/skylake/skl-pcm.c | 52 +-
sound/soc/intel/skylake/skl-topology.c | 26 +-
sound/soc/intel/skylake/skl-topology.h | 2 +-
sound/soc/intel/skylake/skl.h | 2 +-
sound/soc/kirkwood/kirkwood-dma.c | 3 +-
sound/soc/kirkwood/kirkwood-i2s.c | 20 +-
sound/soc/kirkwood/kirkwood.h | 4 +-
sound/soc/mediatek/common/mtk-afe-fe-dai.c | 16 +-
.../soc/mediatek/common/mtk-afe-platform-driver.c | 9 +-
.../soc/mediatek/common/mtk-afe-platform-driver.h | 3 +-
sound/soc/mediatek/mt2701/mt2701-afe-pcm.c | 50 +-
sound/soc/mediatek/mt8173/mt8173-afe-pcm.c | 42 +-
sound/soc/mediatek/mt8173/mt8173-max98090.c | 4 +-
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c | 6 +-
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c | 12 +-
sound/soc/mediatek/mt8173/mt8173-rt5650.c | 12 +-
sound/soc/nuc900/nuc900-pcm.c | 5 +-
sound/soc/omap/ams-delta.c | 20 +-
sound/soc/omap/omap-abe-twl6040.c | 8 +-
sound/soc/omap/omap-pcm.c | 5 +-
sound/soc/pxa/mioa701_wm9713.c | 30 +-
sound/soc/pxa/mmp-pcm.c | 11 +-
sound/soc/pxa/pxa2xx-pcm.c | 5 +-
sound/soc/pxa/ttc-dkb.c | 6 +-
sound/soc/qcom/lpass-platform.c | 42 +-
sound/soc/rockchip/rk3399_gru_sound.c | 4 +-
sound/soc/rockchip/rockchip_rt5645.c | 8 +-
sound/soc/samsung/idma.c | 5 +-
sound/soc/samsung/littlemill.c | 8 +-
sound/soc/samsung/lowland.c | 12 +-
sound/soc/samsung/speyside.c | 12 +-
sound/soc/samsung/tm2_wm5110.c | 54 +-
sound/soc/samsung/tobermory.c | 6 +-
sound/soc/sh/dma-sh7760.c | 5 +-
sound/soc/sh/fsi.c | 24 +-
sound/soc/sh/rcar/core.c | 22 +-
sound/soc/sh/siu.h | 2 +-
sound/soc/sh/siu_dai.c | 10 +-
sound/soc/sh/siu_pcm.c | 9 +-
sound/soc/soc-ac97.c | 84 ++-
sound/soc/soc-core.c | 5 -
sound/soc/soc-generic-dmaengine-pcm.c | 55 +-
sound/soc/soc-utils.c | 28 +-
sound/soc/stm/stm32_adfsdm.c | 7 +-
sound/soc/sunxi/sun4i-codec.c | 71 +-
sound/soc/sunxi/sun8i-codec.c | 23 +-
sound/soc/tegra/tegra_wm8903.c | 8 +-
sound/soc/txx9/txx9aclc.c | 26 +-
sound/soc/uniphier/evea.c | 67 +-
sound/soc/xtensa/xtfpga-i2s.c | 17 +-
354 files changed, 14618 insertions(+), 15702 deletions(-)
Best regards
---
Kuninori Morimoto
5
420
[alsa-devel] [RfC][PATCH] ALSA: hda/realtek Pin quirk for Fujitsu U7[25]7
by Jan-Marek Glogowski 14 Feb '18
by Jan-Marek Glogowski 14 Feb '18
14 Feb '18
Hi everybody,
I got new HW from our supplier, a Fujitsu U727 and a U757 laptop, which
have a headset jack. Attaching a headset, the microphone doesn't work.
After some reading and trying various tools to understand the problem, I
found hdajacksensetest, which showed a sense change for a seemingly
wrong unconnected pin.
Overriding this pins' config has fixed the headsets microphone, so now I
have the attached kernel patch with a SND_HDA_PIN_QUIRK.
After compiling the patched module (for 4.4), everything works as
expected, but hdajackretask still shows the pin as unconnected, so I'm
wondering, if I need to do something in addition? Is this normal
behaviour? This is just a port to master, as we (Munich) are on Ubuntu
Trusty with Xenial HWE (4.4 kernel).
Thanks for the review.
Jan-Marek Glogowski
P.S. checkpatch.pl warned about too long lines for the
SND_HDA_PIN_QUIRK. Should I fix that?
>From 69f1c296b22ab6dce93ba50de9cf05e279d52088 Mon Sep 17 00:00:00 2001
From: Jan-Marek Glogowski <glogow(a)fbihome.de>
Date: Wed, 24 Jan 2018 18:57:38 +0100
Subject: [PATCH] ALSA: hda/realtek Pin quirk for Fujitsu U7[25]7
These laptops have a combined jack to attach headsets, the U727 on
the left, the U757 on the right, but a headsets microphone doesn't
work. Using hdajacksensetest I found that pin 0x19 changed the
present state when plugging the headset, in addition to 0x21, but
didn't have the correct configuration (shown as "Not connected").
So this sets the configuration to the same values as the headphone
pin 0x21 except for the device type microphone, which makes it
work correctly. With the patch the configured pins for U727 are
Pin 0x12 (Internal Mic, Mobile-In): present = No
Pin 0x14 (Internal Speaker): present = No
Pin 0x19 (Black Mic, Left side): present = No
Pin 0x1d (Internal Aux): present = No
Pin 0x21 (Black Headphone, Left side): present = No
Signed-off-by: Jan-Marek Glogowski <glogow(a)fbihome.de>
---
sound/pci/hda/patch_realtek.c | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 9aafc6c..52c6beb 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -5275,6 +5275,8 @@ enum {
ALC255_FIXUP_ASUS_MIC_NO_PRESENCE,
ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
ALC255_FIXUP_DELL2_MIC_NO_PRESENCE,
+ ALC255_FIXUP_FUJITSU_U727_MIC,
+ ALC255_FIXUP_FUJITSU_U757_MIC,
ALC255_FIXUP_HEADSET_MODE,
ALC255_FIXUP_HEADSET_MODE_NO_HP_MIC,
ALC293_FIXUP_DELL1_MIC_NO_PRESENCE,
@@ -5786,6 +5788,20 @@ static const struct hda_fixup alc269_fixups[] = {
.chained = true,
.chain_id = ALC255_FIXUP_HEADSET_MODE_NO_HP_MIC
},
+ [ALC255_FIXUP_FUJITSU_U727_MIC] = {
+ .type = HDA_FIXUP_PINS,
+ .v.pins = (const struct hda_pintbl[]) {
+ { 0x19, 0x03a11020 }, /* detect headset mic, left */
+ { }
+ },
+ },
+ [ALC255_FIXUP_FUJITSU_U757_MIC] = {
+ .type = HDA_FIXUP_PINS,
+ .v.pins = (const struct hda_pintbl[]) {
+ { 0x19, 0x04a11020 }, /* detect headset mic, right */
+ { }
+ },
+ },
[ALC255_FIXUP_HEADSET_MODE] = {
.type = HDA_FIXUP_FUNC,
.v.func = alc_fixup_headset_mode_alc255,
@@ -6589,6 +6605,18 @@ static const struct snd_hda_pin_quirk
alc269_pin_fixup_tbl[] = {
SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell",
ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
{0x1b, 0x01011020},
{0x21, 0x02211010}),
+ SND_HDA_PIN_QUIRK(0x10ec0255, 0x10cf, "Fujitsu Lifebook U727",
ALC255_FIXUP_FUJITSU_U727_MIC,
+ {0x12, 0xb7a60130},
+ {0x14, 0x90170110},
+ {0x19, 0x411111f0},
+ {0x1d, 0x909701f0},
+ {0x21, 0x03211020}),
+ SND_HDA_PIN_QUIRK(0x10ec0255, 0x10cf, "Fujitsu Livebook U757",
ALC255_FIXUP_FUJITSU_U757_MIC,
+ {0x12, 0xb7a60130},
+ {0x14, 0x90170110},
+ {0x19, 0x411111f0},
+ {0x1d, 0x909701f0},
+ {0x21, 0x04211020}),
SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell",
ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
{0x12, 0x90a60130},
{0x14, 0x90170110},
--
2.1.4
3
13
14 Feb '18
The Audigy 2 CA0102 chip (but most likely others from the emu10k1 family,
too) has a problem that from time to time it likes to do few DMA reads a
bit beyond its normal allocation and gets very confused if these reads get
blocked by a IOMMU.
For the first (reserved) page this happens multiple times at every
playback, for various synth pages it happens randomly, rarely for PCM
playback buffers and the page table memory itself.
All these reads seem to follow a similar pattern, observed read offsets
beyond the allocation end were 0x00, 0x40, 0x80 and 0xc0 (PCI cache line
multiples), so it looks like the device tries to accesses up to 256 extra
bytes.
As a workaround let's widen these DMA allocations by an extra page if we
detect that the device is behind a non-passthrough IOMMU (the DMA memory
should be relatively plenty on IOMMU systems).
Signed-off-by: Maciej S. Szmigiero <mail(a)maciej.szmigiero.name>
---
Changes from v1: Apply this workaround also to PCM playback buffers since
it seems they are affected, too.
include/sound/emu10k1.h | 1 +
sound/pci/emu10k1/emu10k1_main.c | 50 +++++++++++++++++++++++++++++++++++++---
sound/pci/emu10k1/emupcm.c | 9 +++++++-
sound/pci/emu10k1/memory.c | 16 ++++++++++---
4 files changed, 69 insertions(+), 7 deletions(-)
diff --git a/include/sound/emu10k1.h b/include/sound/emu10k1.h
index db32b7de52e0..ba27abf65408 100644
--- a/include/sound/emu10k1.h
+++ b/include/sound/emu10k1.h
@@ -1710,6 +1710,7 @@ struct snd_emu10k1 {
unsigned int ecard_ctrl; /* ecard control bits */
unsigned int address_mode; /* address mode */
unsigned long dma_mask; /* PCI DMA mask */
+ bool iommu_workaround; /* IOMMU workaround needed */
unsigned int delay_pcm_irq; /* in samples */
int max_cache_pages; /* max memory size / PAGE_SIZE */
struct snd_dma_buffer silent_page; /* silent page */
diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c
index 8decd2a7a404..3638bff26d23 100644
--- a/sound/pci/emu10k1/emu10k1_main.c
+++ b/sound/pci/emu10k1/emu10k1_main.c
@@ -36,6 +36,7 @@
#include <linux/init.h>
#include <linux/module.h>
#include <linux/interrupt.h>
+#include <linux/iommu.h>
#include <linux/pci.h>
#include <linux/slab.h>
#include <linux/vmalloc.h>
@@ -1758,6 +1759,38 @@ static struct snd_emu_chip_details emu_chip_details[] = {
{ } /* terminator */
};
+/*
+ * The chip (at least the Audigy 2 CA0102 chip, but most likely others, too)
+ * has a problem that from time to time it likes to do few DMA reads a bit
+ * beyond its normal allocation and gets very confused if these reads get
+ * blocked by a IOMMU.
+ *
+ * This behaviour has been observed for the first (reserved) page
+ * (for which it happens multiple times at every playback), often for various
+ * synth pages and sometimes for PCM playback buffers and the page table
+ * memory itself.
+ *
+ * As a workaround let's widen these DMA allocations by an extra page if we
+ * detect that the device is behind a non-passthrough IOMMU.
+ */
+static void snd_emu10k1_detect_iommu(struct snd_emu10k1 *emu)
+{
+ struct iommu_domain *domain;
+
+ emu->iommu_workaround = false;
+
+ if (!iommu_present(emu->card->dev->bus))
+ return;
+
+ domain = iommu_get_domain_for_dev(emu->card->dev);
+ if (domain && domain->type == IOMMU_DOMAIN_IDENTITY)
+ return;
+
+ dev_notice(emu->card->dev,
+ "non-passthrough IOMMU detected, widening DMA allocations");
+ emu->iommu_workaround = true;
+}
+
int snd_emu10k1_create(struct snd_card *card,
struct pci_dev *pci,
unsigned short extin_mask,
@@ -1770,6 +1803,7 @@ int snd_emu10k1_create(struct snd_card *card,
struct snd_emu10k1 *emu;
int idx, err;
int is_audigy;
+ size_t page_table_size, silent_page_size;
unsigned int silent_page;
const struct snd_emu_chip_details *c;
static struct snd_device_ops ops = {
@@ -1867,6 +1901,8 @@ int snd_emu10k1_create(struct snd_card *card,
is_audigy = emu->audigy = c->emu10k2_chip;
+ snd_emu10k1_detect_iommu(emu);
+
/* set addressing mode */
emu->address_mode = is_audigy ? 0 : 1;
/* set the DMA transfer mask */
@@ -1893,8 +1929,13 @@ int snd_emu10k1_create(struct snd_card *card,
emu->port = pci_resource_start(pci, 0);
emu->max_cache_pages = max_cache_bytes >> PAGE_SHIFT;
+
+ page_table_size = sizeof(u32) * (emu->address_mode ? MAXPAGES1 :
+ MAXPAGES0);
+ if (emu->iommu_workaround)
+ page_table_size += PAGE_SIZE;
if (snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(pci),
- (emu->address_mode ? 32 : 16) * 1024, &emu->ptb_pages) < 0) {
+ page_table_size, &emu->ptb_pages) < 0) {
err = -ENOMEM;
goto error;
}
@@ -1910,8 +1951,11 @@ int snd_emu10k1_create(struct snd_card *card,
goto error;
}
+ silent_page_size = EMUPAGESIZE;
+ if (emu->iommu_workaround)
+ silent_page_size *= 2;
if (snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(pci),
- EMUPAGESIZE, &emu->silent_page) < 0) {
+ silent_page_size, &emu->silent_page) < 0) {
err = -ENOMEM;
goto error;
}
@@ -1995,7 +2039,7 @@ int snd_emu10k1_create(struct snd_card *card,
0x00000000 | SPCS_EMPHASIS_NONE | SPCS_COPYRIGHT;
/* Clear silent pages and set up pointers */
- memset(emu->silent_page.area, 0, PAGE_SIZE);
+ memset(emu->silent_page.area, 0, silent_page_size);
silent_page = emu->silent_page.addr << emu->address_mode;
for (idx = 0; idx < (emu->address_mode ? MAXPAGES1 : MAXPAGES0); idx++)
((u32 *)emu->ptb_pages.area)[idx] = cpu_to_le32(silent_page | idx);
diff --git a/sound/pci/emu10k1/emupcm.c b/sound/pci/emu10k1/emupcm.c
index 2683b9717215..80b3279692b8 100644
--- a/sound/pci/emu10k1/emupcm.c
+++ b/sound/pci/emu10k1/emupcm.c
@@ -411,12 +411,19 @@ static int snd_emu10k1_playback_hw_params(struct snd_pcm_substream *substream,
struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
struct snd_pcm_runtime *runtime = substream->runtime;
struct snd_emu10k1_pcm *epcm = runtime->private_data;
+ size_t alloc_size;
int err;
if ((err = snd_emu10k1_pcm_channel_alloc(epcm, params_channels(hw_params))) < 0)
return err;
- if ((err = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params))) < 0)
+
+ alloc_size = params_buffer_bytes(hw_params);
+ if (emu->iommu_workaround)
+ alloc_size += EMUPAGESIZE;
+ if ((err = snd_pcm_lib_malloc_pages(substream, alloc_size)) < 0)
return err;
+ if (emu->iommu_workaround && runtime->dma_bytes >= EMUPAGESIZE)
+ runtime->dma_bytes -= EMUPAGESIZE;
if (err > 0) { /* change */
int mapped;
if (epcm->memblk != NULL)
diff --git a/sound/pci/emu10k1/memory.c b/sound/pci/emu10k1/memory.c
index 5cdffe2d31e1..6a5371d10dcf 100644
--- a/sound/pci/emu10k1/memory.c
+++ b/sound/pci/emu10k1/memory.c
@@ -457,6 +457,16 @@ static void get_single_page_range(struct snd_util_memhdr *hdr,
*last_page_ret = last_page;
}
+static size_t synth_get_alloc_size(struct snd_emu10k1 *emu)
+{
+ size_t alloc_size = PAGE_SIZE;
+
+ if (emu->iommu_workaround)
+ alloc_size *= 2;
+
+ return alloc_size;
+}
+
/*
* allocate kernel pages
*/
@@ -471,7 +481,7 @@ static int synth_alloc_pages(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk
for (page = first_page; page <= last_page; page++) {
if (snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV,
snd_dma_pci_data(emu->pci),
- PAGE_SIZE, &dmab) < 0)
+ synth_get_alloc_size(emu), &dmab) < 0)
goto __fail;
if (!is_valid_page(emu, dmab.addr)) {
snd_dma_free_pages(&dmab);
@@ -488,7 +498,7 @@ static int synth_alloc_pages(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk
for (page = first_page; page <= last_page; page++) {
dmab.area = emu->page_ptr_table[page];
dmab.addr = emu->page_addr_table[page];
- dmab.bytes = PAGE_SIZE;
+ dmab.bytes = synth_get_alloc_size(emu);
snd_dma_free_pages(&dmab);
emu->page_addr_table[page] = 0;
emu->page_ptr_table[page] = NULL;
@@ -513,7 +523,7 @@ static int synth_free_pages(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk *
continue;
dmab.area = emu->page_ptr_table[page];
dmab.addr = emu->page_addr_table[page];
- dmab.bytes = PAGE_SIZE;
+ dmab.bytes = synth_get_alloc_size(emu);
snd_dma_free_pages(&dmab);
emu->page_addr_table[page] = 0;
emu->page_ptr_table[page] = NULL;
2
4
13 Feb '18
On Wed, Jan 31, 2018 at 03:20:09PM +0200, Cosmin-Gabriel Samoila wrote:
This looks pretty good overall, I've got some issues below but nothing
too major:
> +static int ak4458_i2c_remove(struct i2c_client *i2c)
> +{
> + ak4458_remove(&i2c->dev);
> + pm_runtime_disable(&i2c->dev);
It's weird that the runtime PM handling is here and not in the shared
code, and that it only exists in the I2C version. Why is this?
> +static const struct soc_enum ak4458_dac_enum[] = {
> +/*0*/ SOC_ENUM_SINGLE(AK4458_01_CONTROL2, 1,
> + ARRAY_SIZE(ak4458_dem_select_texts),
> + ak4458_dem_select_texts),
> +/*1*/ SOC_ENUM_SINGLE(AK4458_0A_CONTROL6, 0,
The fact that you need these comments is why these arrays are a bad idea
- just use individually named variables as other drivers do.
> +static const struct snd_kcontrol_new ak4458_snd_controls[] = {
> + SOC_SINGLE_TLV("AK4458 L1ch Digital Volume",
> + AK4458_03_LCHATT, 0/*shift*/, 0xFF/*max value*/,
> + 0/*invert*/, latt_tlv),
> + SOC_SINGLE_TLV("AK4458 R1ch Digital Volume",
> + AK4458_04_RCHATT, 0, 0xFF, 0, ratt_tlv),
It'd be more idiomatic to combine these into stereo pairs than have them
as single channel controls.
> +static const char * const ak4458_dac_select_texts[] = { "OFF", "ON" };
This looks like the users should be switch controls - what's the goal
here?
> + rstn = snd_soc_read(codec, AK4458_00_CONTROL1);
> + rstn &= ~AK4458_RSTN_MASK;
> +
> + if (bit)
> + rstn |= AK4458_RSTN;
> +
> + snd_soc_write(codec, AK4458_00_CONTROL1, rstn);
This looks like an open coded snd_soc_update_bits()?
> +static int ak4458_hw_params(struct snd_pcm_substream *substream,
> + struct snd_pcm_hw_params *params,
> + struct snd_soc_dai *dai)
> +{
> + struct snd_soc_codec *codec = dai->codec;
> + struct ak4458_priv *ak4458 = snd_soc_codec_get_drvdata(codec);
> + u8 format;
> + int pcm_width = max(params_physical_width(params), ak4458->slot_width);
> +
> +#ifdef AK4458_ACKS_USE_MANUAL_MODE
> + u8 dfs1, dfs2;
> +#endif
What's this and why is it a compile time option?
> + case 32:
> + if (ak4458->fmt == SND_SOC_DAIFMT_I2S)
> + format |= AK4458_DIF_32BIT_I2S;
> + else if (ak4458->fmt == SND_SOC_DAIFMT_LEFT_J)
> + format |= AK4458_DIF_32BIT_MSB;
> + else if (ak4458->fmt == SND_SOC_DAIFMT_RIGHT_J)
> + format |= AK4458_DIF_32BIT_LSB;
> + else if (ak4458->fmt == SND_SOC_DAIFMT_DSP_B)
> + format |= AK4458_DIF_32BIT_MSB;
> + else
> + return -EINVAL;
This should be a switch statement.
> + switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
> + case SND_SOC_DAIFMT_I2S:
> + case SND_SOC_DAIFMT_LEFT_J:
> + case SND_SOC_DAIFMT_RIGHT_J:
> + ak4458->fmt = fmt & SND_SOC_DAIFMT_FORMAT_MASK;
> + break;
> + case SND_SOC_DAIFMT_DSP_B:
> + ak4458->fmt = fmt & SND_SOC_DAIFMT_FORMAT_MASK;
> + break;
All these cases seem to be the same?
> +static int ak4458_trigger(struct snd_pcm_substream *substream, int cmd,
> + struct snd_soc_dai *codec_dai)
> +{
> + int ret = 0;
> +
> + dev_dbg(codec_dai->dev, "%s(%d)\n", __func__, __LINE__);
> + return ret;
> +}
Remove empty functions.
> + ak4458->mute_gpio = of_get_named_gpio(np, "ak4458,mute_gpio", 0);
> + if (gpio_is_valid(ak4458->mute_gpio)) {
Given that this is new code it'd be better to use GPIO descriptors, this
will also allow support for non-DT systems - use devm_gpiod_get() and
the matching APIs.
2
4
Hello,
I used pyalsa's alsaseq module for a project of mine which used Python 2.
Now I'm switching to Python 3 and I'd need to use the alsaseq module with
that version. Unfortunally, it seems that Python 3 support has not been
added yet.
I found this message:
http://linux-audio.4202.n7.nabble.com/Python3-PyAlsa-Build-fails-td83590.ht…
It is older than the latest release of pyalsa, but, even after trying to
follow the instructions, I still get errors and cannot build pyalsa for
Python3: while the "pyalsa/alsacontrol.c:184:6: error: ‘struct
pyalsacontrol’ has no member named ‘ob_type’" error is gone, it still
doesn't build.
The latest message reports:
error: command 'i686-pc-linux-gnu-gcc' failed with exit status 1
Is there any chance that pyalsa gets an update for it?
Thank you,
Maurizio
--
È difficile avere una convinzione precisa quando si parla delle ragioni del
cuore. - "Sostiene Pereira", Antonio Tabucchi
http://www.jidesk.net
2
1
13 Feb '18
This series adds support for Socionext audio system for
UniPhier LD11/LD20 SoCs. This driver supports I2S output
for Line-In, Line-Out and S/PDIF output.
UniPhier AIO DAI driver provides sound devices such as I2S, S/PDIF.
Since the AIO has mixed register map for those I/Os, it is hard to
split register areas for each sound devices.
---
Changes in v2:
- Add comments to aiodma_irq()
- Add members to struct uniphier_aio_sub and add methods
for compress audio
- Expose clocking to userspace
- Fix bad name 'srcport' to 'src'
- Split DMA, DAI patches from large one
- Validate parameters in hw_params()
- Add error checks
- Fix typo in error messages
- Change license comment style to C++ from C
Katsuhiro Suzuki (9):
ASoC: uniphier: add DT bindings documentation for UniPhier AIO
ASoC: uniphier: add support for UniPhier AIO common driver
ASoC: uniphier: add support for UniPhier AIO DMA driver
ASoC: uniphier: add support for UniPhier AIO CPU DAI driver
ASoC: uniphier: add support for UniPhier AIO compress audio
ASoC: uniphier: add support for UniPhier LD11/LD20 AIO driver
arm64: dts: uniphier: add sound node for UniPhier
arm64: dts: uniphier: add speaker out for UniPhier LD11/LD20 boards
arm64: dts: uniphier: add compress audio out for UniPhier LD11/LD20
.../devicetree/bindings/sound/uniphier,aio.txt | 36 +
.../boot/dts/socionext/uniphier-ld11-global.dts | 120 +++
arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi | 31 +
.../boot/dts/socionext/uniphier-ld20-global.dts | 120 +++
arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi | 35 +
sound/soc/uniphier/Kconfig | 22 +
sound/soc/uniphier/Makefile | 6 +
sound/soc/uniphier/aio-compress.c | 440 ++++++++
sound/soc/uniphier/aio-core.c | 1104 ++++++++++++++++++++
sound/soc/uniphier/aio-cpu.c | 570 ++++++++++
sound/soc/uniphier/aio-dma.c | 318 ++++++
sound/soc/uniphier/aio-ld11.c | 431 ++++++++
sound/soc/uniphier/aio-reg.h | 462 ++++++++
sound/soc/uniphier/aio.h | 355 +++++++
14 files changed, 4050 insertions(+)
create mode 100644 Documentation/devicetree/bindings/sound/uniphier,aio.txt
create mode 100644 sound/soc/uniphier/aio-compress.c
create mode 100644 sound/soc/uniphier/aio-core.c
create mode 100644 sound/soc/uniphier/aio-cpu.c
create mode 100644 sound/soc/uniphier/aio-dma.c
create mode 100644 sound/soc/uniphier/aio-ld11.c
create mode 100644 sound/soc/uniphier/aio-reg.h
create mode 100644 sound/soc/uniphier/aio.h
--
2.15.0
3
16
[alsa-devel] [PATCH v2 4/5] ALSA: emu10k1: make sure synth DMA pages are allocated with DMA functions
by Maciej S. Szmigiero 12 Feb '18
by Maciej S. Szmigiero 12 Feb '18
12 Feb '18
Commit a5003fc04113 ("[ALSA] emu10k1 - simplify page allocation for synth")
switched from using the DMA allocator for synth DMA pages to manually
calling alloc_page().
However, this usage has an implicit assumption that the DMA address space
for the emu10k1-family chip is the same as the CPU physical address space
which is not true for a system with a IOMMU.
Since this made the synth part of the driver non-functional on such systems
let's effectively revert that commit.
Signed-off-by: Maciej S. Szmigiero <mail(a)maciej.szmigiero.name>
---
Changes from v1: None in this patch.
sound/pci/emu10k1/memory.c | 70 ++++++++++++++++++++++++++--------------------
1 file changed, 39 insertions(+), 31 deletions(-)
diff --git a/sound/pci/emu10k1/memory.c b/sound/pci/emu10k1/memory.c
index fcb04cbbc9ab..5cdffe2d31e1 100644
--- a/sound/pci/emu10k1/memory.c
+++ b/sound/pci/emu10k1/memory.c
@@ -457,49 +457,44 @@ static void get_single_page_range(struct snd_util_memhdr *hdr,
*last_page_ret = last_page;
}
-/* release allocated pages */
-static void __synth_free_pages(struct snd_emu10k1 *emu, int first_page,
- int last_page)
-{
- int page;
-
- for (page = first_page; page <= last_page; page++) {
- free_page((unsigned long)emu->page_ptr_table[page]);
- emu->page_addr_table[page] = 0;
- emu->page_ptr_table[page] = NULL;
- }
-}
-
/*
* allocate kernel pages
*/
static int synth_alloc_pages(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk *blk)
{
int page, first_page, last_page;
+ struct snd_dma_buffer dmab;
emu10k1_memblk_init(blk);
get_single_page_range(emu->memhdr, blk, &first_page, &last_page);
/* allocate kernel pages */
for (page = first_page; page <= last_page; page++) {
- /* first try to allocate from <4GB zone */
- struct page *p = alloc_page(GFP_KERNEL | GFP_DMA32 |
- __GFP_NOWARN);
- if (!p || (page_to_pfn(p) & ~(emu->dma_mask >> PAGE_SHIFT))) {
- if (p)
- __free_page(p);
- /* try to allocate from <16MB zone */
- p = alloc_page(GFP_ATOMIC | GFP_DMA |
- __GFP_NORETRY | /* no OOM-killer */
- __GFP_NOWARN);
- }
- if (!p) {
- __synth_free_pages(emu, first_page, page - 1);
- return -ENOMEM;
+ if (snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV,
+ snd_dma_pci_data(emu->pci),
+ PAGE_SIZE, &dmab) < 0)
+ goto __fail;
+ if (!is_valid_page(emu, dmab.addr)) {
+ snd_dma_free_pages(&dmab);
+ goto __fail;
}
- emu->page_addr_table[page] = page_to_phys(p);
- emu->page_ptr_table[page] = page_address(p);
+ emu->page_addr_table[page] = dmab.addr;
+ emu->page_ptr_table[page] = dmab.area;
}
return 0;
+
+__fail:
+ /* release allocated pages */
+ last_page = page - 1;
+ for (page = first_page; page <= last_page; page++) {
+ dmab.area = emu->page_ptr_table[page];
+ dmab.addr = emu->page_addr_table[page];
+ dmab.bytes = PAGE_SIZE;
+ snd_dma_free_pages(&dmab);
+ emu->page_addr_table[page] = 0;
+ emu->page_ptr_table[page] = NULL;
+ }
+
+ return -ENOMEM;
}
/*
@@ -507,10 +502,23 @@ static int synth_alloc_pages(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk
*/
static int synth_free_pages(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk *blk)
{
- int first_page, last_page;
+ int page, first_page, last_page;
+ struct snd_dma_buffer dmab;
get_single_page_range(emu->memhdr, blk, &first_page, &last_page);
- __synth_free_pages(emu, first_page, last_page);
+ dmab.dev.type = SNDRV_DMA_TYPE_DEV;
+ dmab.dev.dev = snd_dma_pci_data(emu->pci);
+ for (page = first_page; page <= last_page; page++) {
+ if (emu->page_ptr_table[page] == NULL)
+ continue;
+ dmab.area = emu->page_ptr_table[page];
+ dmab.addr = emu->page_addr_table[page];
+ dmab.bytes = PAGE_SIZE;
+ snd_dma_free_pages(&dmab);
+ emu->page_addr_table[page] = 0;
+ emu->page_ptr_table[page] = NULL;
+ }
+
return 0;
}
2
2
12 Feb '18
This series adds support for Socionext audio system for
UniPhier LD11/LD20 SoCs. This driver supports I2S output
for Line-In, Line-Out and S/PDIF output.
UniPhier AIO DAI driver provides sound devices such as I2S, S/PDIF.
Since the AIO has mixed register map for those I/Os, it is hard to
split register areas for each sound devices.
UniPhier EVEA is a codec core for Line-In, Line-Out. Since this core
is only in internal of UniPhier series SoC, this driver works
independently but only UniPhier SoC can use it.
Katsuhiro Suzuki (8):
ASoC: spdif: Add S32_LE support for S/PDIF dummy codec drivers
ASoC: uniphier: add DT bindings documentation for UniPhier EVEA
ASoC: uniphier: add DT bindings documentation for UniPhier AIO
ASoC: uniphier: add support for UniPhier EVEA codec
ASoC: uniphier: add support for UniPhier AIO driver
ASoC: uniphier: add support for UniPhier LD11/LD20 AIO driver
MAINTAINERS: add entries for UniPhier ASoC sound drivers
arm64: dts: uniphier: add sound node for UniPhier
.../devicetree/bindings/sound/uniphier,aio.txt | 36 ++
.../devicetree/bindings/sound/uniphier,evea.txt | 26 +
MAINTAINERS | 6 +
.../boot/dts/socionext/uniphier-ld11-global.dts | 72 +++
arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi | 31 +
.../boot/dts/socionext/uniphier-ld20-global.dts | 72 +++
arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi | 35 ++
sound/soc/Kconfig | 1 +
sound/soc/Makefile | 1 +
sound/soc/codecs/spdif_receiver.c | 5 +-
sound/soc/codecs/spdif_transmitter.c | 5 +-
sound/soc/uniphier/Kconfig | 34 +
sound/soc/uniphier/Makefile | 8 +
sound/soc/uniphier/aio-core.c | 368 +++++++++++
sound/soc/uniphier/aio-dma.c | 266 ++++++++
sound/soc/uniphier/aio-ld11.c | 343 ++++++++++
sound/soc/uniphier/aio-regctrl.c | 699 +++++++++++++++++++++
sound/soc/uniphier/aio-regctrl.h | 495 +++++++++++++++
sound/soc/uniphier/aio.h | 261 ++++++++
sound/soc/uniphier/evea.c | 567 +++++++++++++++++
20 files changed, 3327 insertions(+), 4 deletions(-)
create mode 100644 Documentation/devicetree/bindings/sound/uniphier,aio.txt
create mode 100644 Documentation/devicetree/bindings/sound/uniphier,evea.txt
create mode 100644 sound/soc/uniphier/Kconfig
create mode 100644 sound/soc/uniphier/Makefile
create mode 100644 sound/soc/uniphier/aio-core.c
create mode 100644 sound/soc/uniphier/aio-dma.c
create mode 100644 sound/soc/uniphier/aio-ld11.c
create mode 100644 sound/soc/uniphier/aio-regctrl.c
create mode 100644 sound/soc/uniphier/aio-regctrl.h
create mode 100644 sound/soc/uniphier/aio.h
create mode 100644 sound/soc/uniphier/evea.c
--
2.15.0
4
19
12 Feb '18
Hi Mark
codec/platform can be replaced to component now.
These patches do it for codec.
These are based on "asoc-v4.16" tag
Current existing "codec" related codes will be no longer
needed by these patches.
I can post it, but I don't know when is good timing
Kuninori Morimoto (187):
ASoC: soc-utils: replace codec to component
ASoC: ac97: replace codec to component
ASoC: wm0010: replace codec to component
ASoC: wm2000: replace codec to component
ASoC: wm2200: replace codec to component
ASoC: wm5100: replace codec to component
ASoC: wm8350: replace codec to component
ASoC: wm8400: replace codec to component
ASoC: wm8580: replace codec to component
ASoC: wm8524: replace codec to component
ASoC: wm8510: replace codec to component
ASoC: wm8523: replace codec to component
ASoC: wm8711: replace codec to component
ASoC: wm8750: replace codec to component
ASoC: wm8737: replace codec to component
ASoC: wm8776: replace codec to component
ASoC: wm8770: replace codec to component
ASoC: wm8727: replace codec to component
ASoC: wm8731: replace codec to component
ASoC: wm8782: replace codec to component
ASoC: wm8728: replace codec to component
ASoC: wm8741: replace codec to component
ASoC: wm8753: replace codec to component
ASoC: wm8804: replace codec to component
ASoC: wm8900: replace codec to component
ASoC: wm8903: replace codec to component
ASoC: wm8955: replace codec to component
ASoC: wm8960: replace codec to component
ASoC: wm8985: replace codec to component
ASoC: wm8971: replace codec to component
ASoC: wm8978: replace codec to component
ASoC: wm8974: replace codec to component
ASoC: wm8990: replace codec to component
ASoC: wm8988: replace codec to component
ASoC: wm8983: replace codec to component
ASoC: wm8962: replace codec to component
ASoC: wm8996: replace codec to component
ASoC: wm8991: replace codec to component
ASoC: wm8995: replace codec to component
ASoC: wm8961: replace codec to component
ASoC: wm8940: replace codec to component
ASoC: wm8904: replace codec to component
ASoC: wm9081: replace codec to component
ASoC: wm9090: replace codec to component
ASoC: wm9705: replace codec to component
ASoC: wm9712: replace codec to component
ASoC: wm9713: replace codec to component
ASoC: wm9867: replace codec to component
ASoC: wm1250-ev1: replace codec to component
ASoC: wm8993/wm8994/wm8958: replace codec to component
ASoC: ak4613: replace codec to component
ASoC: ak4642: replace codec to component
ASoC: ak5386: replace codec to component
ASoC: ak4671: replace codec to component
ASoC: ak4104: replace codec to component
ASoC: ak4535: replace codec to component
ASoC: ak4641: replace codec to component
ASoC: ak4554: replace codec to component
ASoC: rt274: replace codec to component
ASoC: rt5616: replace codec to component
ASoC: rt5640: replace codec to component
ASoC: rt5651: replace codec to component
ASoC: rt5514: replace codec to component
ASoC: rt5659: replace codec to component
ASoC: rt5670: replace codec to component
ASoC: rt5660: replace codec to component
ASoC: rt5631: replace codec to component
ASoC: rt5665: replace codec to component
ASoC: rt5645/rt5677: replace codec to component
ASoC: cs4271: replace codec to component
ASoC: cs4270: replace codec to component
ASoC: cs4349: replace codec to component
ASoC: cs4265: replace codec to component
ASoC: cs35l32: replace codec to component
ASoC: cs35l33: replace codec to component
ASoC: cs35l35: replace codec to component
ASoC: cs35l34: replace codec to component
ASoC: cs42xx8: replace codec to component
ASoC: cs42l73: replace codec to component
ASoC: cs42l52: replace codec to component
ASoC: cs42l56: replace codec to component
ASoC: cs42l51: replace codec to component
ASoC: cs42l42: replace codec to component
ASoC: cs43130: replace codec to component
ASoC: cs53l30: replace codec to component
ASoC: da732x: replace codec to component
ASoC: da7210: replace codec to component
ASoC: da7218: replace codec to component
ASoC: da7213: replace codec to component
ASoC: da9055: replace codec to component
ASoC: max9860: replace codec to component
ASoC: max9850: replace codec to component
ASoC: max98371: replace codec to component
ASoC: max98095: replace codec to component
ASoC: max98090: replace codec to component
ASoC: max98926: replace codec to component
ASoC: max98088: replace codec to component
ASoC: max98925: replace codec to component
ASoC: max98927: replace codec to component
ASoC: max98357a: replace codec to component
ASoC: max98373: replace codec to component
ASoC: adav80x: replace codec to component
ASoC: adau1373: replace codec to component
ASoC: adau7002: replace codec to component
ASoC: adau1977: replace codec to component
ASoC: adau1701: replace codec to component
ASoC: adau17x1/adau1761/adau1781: replace codec to component
ASoC: tlv320aic23: replace codec to component
ASoC: tlv320aic26: replace codec to component
ASoC: tlv320aic3x: replace codec to component
ASoC: tlv320dac33: replace codec to component
ASoC: tlv320aic32x4: replace codec to component
ASoC: tlv320aic31xx: replace codec to component
ASoC: tscs42xx: replace codec to component
ASoC: pcm179x: replace codec to component
ASoC: pcm3008: replace codec to component
ASoC: pcm1681: replace codec to component
ASoC: pcm512x: replace codec to component
ASoC: pcm5102a: replace codec to component
ASoC: pcm3168a: replace codec to component
ASoC: twl6040: replace codec to component
ASoC: twl4030: replace codec to component
ASoC: msm8916-wcd-analog: replace codec to component
ASoC: msm8916-wcd-digital: replace codec to component
ASoC: spdif_transmitter: replace codec to component
ASoC: spdif_receiver: replace codec to component
ASoC: tas5720: replace codec to component
ASoC: tas2552: replace codec to component
ASoC: sun4i: replace codec to component
ASoC: sun8i: replace codec to component
ASoC: ads117x: replace codec to component
ASoC: ab8500: replace codec to component
ASoC: ad193x: replace codec to component
ASoC: ad1836: replace codec to component
ASoC: ad1980: replace codec to component
ASoC: ad73311: replace codec to component
ASoC: atmel-pdmic: replace codec to component
ASoC: atmel-classd: replace codec to component
ASoC: ssm4567: replace codec to component
ASoC: ssm2602: replace codec to component
ASoC: ssm2518: replace codec to component
ASoC: sta350: replace codec to component
ASoC: sta32x: replace codec to component
ASoC: sta529: replace codec to component
ASoC: tas5086: replace codec to component
ASoC: tas571x: replace codec to component
ASoC: nau8824: replace codec to component
ASoC: nau8810: replace codec to component
ASoC: nau8540: replace codec to component
ASoC: es8316: replace codec to component
ASoC: es7134: replace codec to component
ASoC: es8328: replace codec to component
ASoC: alc5632: replace codec to component
ASoC: alc5623: replace codec to component
ASoC: hdmi-codec: replace codec to component
ASoC: bt-sco: replace codec to component
ASoC: vc4_hdmi: replace codec to component
ASoC: zx_aud96p22: replace codec to component
ASoC: wl1273: replace codec to component
ASoC: hdac_hdmi/nau8825/rt286/rt298/rt5663/da7219: replace codec to component
ASoC: arizona/cs47l24/wm5102/wm5110/wm8997/wm8998/wm_adsp: replace codec to component
ASoC: mc13783: replace codec to component
ASoC: sgtl5000: replace codec to component
ASoC: stac9766: replace codec to component
ASoC: sn95031: replace codec to component
ASoC: cx20442: replace codec to component
ASoC: sirf-audio: replace codec to component
ASoC: inno_rk3036: replace codec to component
ASoC: isabelle: replace codec to component
ASoC: tfa9879: replace codec to component
ASoC: dmic: replace codec to component
ASoC: sti-sas: replace codec to component
ASoC: gtm601: replace codec to component
ASoC: 88pm860x: replace codec to component
ASoC: pistachio: replace codec to component
ASoC: lm49453: replace codec to component
ASoC: cq93vc: replace codec to component
ASoC: jz4740: replace codec to component
ASoC: uda1380: replace codec to component
ASoC: ml26124: replace codec to component
ASoC: si476x: replace codec to component
ASoC: uda134x: replace codec to component
ASoC: ics43432: replace codec to component
ASoC: pxa/mioa701_wm9713: replace codec to component
ASoC: uniphier: evea: replace codec to component
ASoC: pcm186x: replace codec to component
ASoC: tas6424: replace codec to component
drivers/gpu/drm/vc4/vc4_hdmi.c | 47 +-
include/sound/soc.h | 13 +-
sound/soc/amd/acp-rt5645.c | 4 +-
sound/soc/atmel/atmel-classd.c | 54 +-
sound/soc/atmel/atmel-pdmic.c | 56 +-
sound/soc/codecs/88pm860x-codec.c | 166 ++---
sound/soc/codecs/88pm860x-codec.h | 4 +-
sound/soc/codecs/ab8500-codec.c | 295 ++++----
sound/soc/codecs/ac97.c | 46 +-
sound/soc/codecs/ad1836.c | 68 +-
sound/soc/codecs/ad193x-i2c.c | 7 -
sound/soc/codecs/ad193x-spi.c | 7 -
sound/soc/codecs/ad193x.c | 46 +-
sound/soc/codecs/ad1980.c | 87 +--
sound/soc/codecs/ad73311.c | 27 +-
sound/soc/codecs/adau1373.c | 84 +--
sound/soc/codecs/adau1701.c | 101 ++-
sound/soc/codecs/adau1761.c | 88 +--
sound/soc/codecs/adau1781.c | 51 +-
sound/soc/codecs/adau17x1.c | 67 +-
sound/soc/codecs/adau17x1.h | 8 +-
sound/soc/codecs/adau1977-i2c.c | 7 -
sound/soc/codecs/adau1977-spi.c | 7 -
sound/soc/codecs/adau1977.c | 59 +-
sound/soc/codecs/adau7002.c | 20 +-
sound/soc/codecs/adav801.c | 7 -
sound/soc/codecs/adav803.c | 7 -
sound/soc/codecs/adav80x.c | 130 ++--
sound/soc/codecs/ads117x.c | 27 +-
sound/soc/codecs/ak4104.c | 68 +-
sound/soc/codecs/ak4535.c | 78 +-
sound/soc/codecs/ak4554.c | 27 +-
sound/soc/codecs/ak4613.c | 67 +-
sound/soc/codecs/ak4641.c | 91 +--
sound/soc/codecs/ak4642.c | 105 ++-
sound/soc/codecs/ak4671.c | 67 +-
sound/soc/codecs/ak5386.c | 62 +-
sound/soc/codecs/alc5623.c | 147 ++--
sound/soc/codecs/alc5632.c | 138 ++--
sound/soc/codecs/arizona.c | 208 +++---
sound/soc/codecs/arizona.h | 24 +-
sound/soc/codecs/bt-sco.c | 21 +-
sound/soc/codecs/cq93vc.c | 33 +-
sound/soc/codecs/cs35l32.c | 45 +-
sound/soc/codecs/cs35l33.c | 186 +++--
sound/soc/codecs/cs35l34.c | 127 ++--
sound/soc/codecs/cs35l35.c | 104 ++-
sound/soc/codecs/cs4265.c | 98 ++-
sound/soc/codecs/cs4270.c | 124 ++--
sound/soc/codecs/cs4271-i2c.c | 7 -
sound/soc/codecs/cs4271-spi.c | 7 -
sound/soc/codecs/cs4271.c | 105 ++-
sound/soc/codecs/cs42l42.c | 154 ++--
sound/soc/codecs/cs42l42.h | 2 +-
sound/soc/codecs/cs42l51-i2c.c | 8 -
sound/soc/codecs/cs42l51.c | 81 ++-
sound/soc/codecs/cs42l52.c | 146 ++--
sound/soc/codecs/cs42l56.c | 158 ++--
sound/soc/codecs/cs42l73.c | 122 ++--
sound/soc/codecs/cs42xx8-i2c.c | 1 -
sound/soc/codecs/cs42xx8.c | 57 +-
sound/soc/codecs/cs43130.c | 243 ++++---
sound/soc/codecs/cs43130.h | 2 +-
sound/soc/codecs/cs4349.c | 39 +-
sound/soc/codecs/cs47l24.c | 86 +--
sound/soc/codecs/cs53l30.c | 57 +-
sound/soc/codecs/cx20442.c | 85 +--
sound/soc/codecs/da7210.c | 181 +++--
sound/soc/codecs/da7213.c | 328 ++++-----
sound/soc/codecs/da7218.c | 498 +++++++------
sound/soc/codecs/da7218.h | 2 +-
sound/soc/codecs/da7219-aad.c | 236 +++---
sound/soc/codecs/da7219-aad.h | 12 +-
sound/soc/codecs/da7219.c | 307 ++++----
sound/soc/codecs/da7219.h | 2 +-
sound/soc/codecs/da732x.c | 241 +++---
sound/soc/codecs/da9055.c | 186 +++--
sound/soc/codecs/dmic.c | 33 +-
sound/soc/codecs/es7134.c | 27 +-
sound/soc/codecs/es8316.c | 80 +-
sound/soc/codecs/es8328-i2c.c | 7 -
sound/soc/codecs/es8328-spi.c | 7 -
sound/soc/codecs/es8328.c | 147 ++--
sound/soc/codecs/gtm601.c | 28 +-
sound/soc/codecs/hdac_hdmi.c | 47 +-
sound/soc/codecs/hdac_hdmi.h | 2 +-
sound/soc/codecs/hdmi-codec.c | 23 +-
sound/soc/codecs/ics43432.c | 16 +-
sound/soc/codecs/inno_rk3036.c | 70 +-
sound/soc/codecs/isabelle.c | 57 +-
sound/soc/codecs/jz4740.c | 50 +-
sound/soc/codecs/lm49453.c | 65 +-
sound/soc/codecs/max98088.c | 314 ++++----
sound/soc/codecs/max98090.c | 319 ++++----
sound/soc/codecs/max98090.h | 4 +-
sound/soc/codecs/max98095.c | 448 ++++++------
sound/soc/codecs/max98095.h | 2 +-
sound/soc/codecs/max98357a.c | 29 +-
sound/soc/codecs/max98371.c | 43 +-
sound/soc/codecs/max98371.h | 1 -
sound/soc/codecs/max98373.c | 75 +-
sound/soc/codecs/max9850.c | 80 +-
sound/soc/codecs/max9860.c | 70 +-
sound/soc/codecs/max9867.c | 65 +-
sound/soc/codecs/max9867.h | 2 +-
sound/soc/codecs/max98925.c | 72 +-
sound/soc/codecs/max98925.h | 2 +-
sound/soc/codecs/max98926.c | 56 +-
sound/soc/codecs/max98926.h | 2 +-
sound/soc/codecs/max98927.c | 82 +--
sound/soc/codecs/max98927.h | 2 +-
sound/soc/codecs/mc13783.c | 68 +-
sound/soc/codecs/ml26124.c | 103 ++-
sound/soc/codecs/msm8916-wcd-analog.c | 207 +++---
sound/soc/codecs/msm8916-wcd-digital.c | 115 +--
sound/soc/codecs/nau8540.c | 79 +-
sound/soc/codecs/nau8810.c | 73 +-
sound/soc/codecs/nau8824.c | 113 ++-
sound/soc/codecs/nau8824.h | 2 +-
sound/soc/codecs/nau8825.c | 107 ++-
sound/soc/codecs/nau8825.h | 2 +-
sound/soc/codecs/pcm1681.c | 62 +-
sound/soc/codecs/pcm179x-i2c.c | 6 -
sound/soc/codecs/pcm179x-spi.c | 6 -
sound/soc/codecs/pcm179x.c | 45 +-
sound/soc/codecs/pcm179x.h | 1 -
sound/soc/codecs/pcm186x-i2c.c | 8 -
sound/soc/codecs/pcm186x-spi.c | 8 -
sound/soc/codecs/pcm186x.c | 143 ++--
sound/soc/codecs/pcm186x.h | 1 -
sound/soc/codecs/pcm3008.c | 36 +-
sound/soc/codecs/pcm3168a.c | 51 +-
sound/soc/codecs/pcm5102a.c | 16 +-
sound/soc/codecs/pcm512x.c | 162 ++---
sound/soc/codecs/rt274.c | 206 +++---
sound/soc/codecs/rt286.c | 198 +++--
sound/soc/codecs/rt286.h | 2 +-
sound/soc/codecs/rt298.c | 210 +++---
sound/soc/codecs/rt298.h | 2 +-
sound/soc/codecs/rt5514-spi.c | 4 +-
sound/soc/codecs/rt5514.c | 124 ++--
sound/soc/codecs/rt5514.h | 2 +-
sound/soc/codecs/rt5616.c | 219 +++---
sound/soc/codecs/rt5631.c | 324 +++++----
sound/soc/codecs/rt5640.c | 260 ++++---
sound/soc/codecs/rt5640.h | 6 +-
sound/soc/codecs/rt5645.c | 370 +++++-----
sound/soc/codecs/rt5645.h | 4 +-
sound/soc/codecs/rt5651.c | 220 +++---
sound/soc/codecs/rt5651.h | 4 +-
sound/soc/codecs/rt5659.c | 307 ++++----
sound/soc/codecs/rt5659.h | 4 +-
sound/soc/codecs/rt5660.c | 145 ++--
sound/soc/codecs/rt5660.h | 2 +-
sound/soc/codecs/rt5663.c | 600 ++++++++-------
sound/soc/codecs/rt5663.h | 4 +-
sound/soc/codecs/rt5665.c | 345 +++++----
sound/soc/codecs/rt5665.h | 2 +-
sound/soc/codecs/rt5670.c | 295 ++++----
sound/soc/codecs/rt5670.h | 10 +-
sound/soc/codecs/rt5677.c | 205 +++---
sound/soc/codecs/rt5677.h | 4 +-
sound/soc/codecs/sgtl5000.c | 173 +++--
sound/soc/codecs/si476x.c | 42 +-
sound/soc/codecs/sirf-audio-codec.c | 58 +-
sound/soc/codecs/sn95031.c | 219 +++---
sound/soc/codecs/sn95031.h | 2 +-
sound/soc/codecs/spdif_receiver.c | 26 +-
sound/soc/codecs/spdif_transmitter.c | 26 +-
sound/soc/codecs/ssm2518.c | 57 +-
sound/soc/codecs/ssm2602-i2c.c | 7 -
sound/soc/codecs/ssm2602-spi.c | 7 -
sound/soc/codecs/ssm2602.c | 77 +-
sound/soc/codecs/ssm4567.c | 44 +-
sound/soc/codecs/sta32x.c | 134 ++--
sound/soc/codecs/sta350.c | 117 ++-
sound/soc/codecs/sta529.c | 69 +-
sound/soc/codecs/stac9766.c | 77 +-
sound/soc/codecs/sti-sas.c | 84 +--
sound/soc/codecs/tas2552.c | 178 +++--
sound/soc/codecs/tas5086.c | 94 +--
sound/soc/codecs/tas571x.c | 55 +-
sound/soc/codecs/tas5720.c | 151 ++--
sound/soc/codecs/tas6424.c | 99 ++-
sound/soc/codecs/tfa9879.c | 50 +-
sound/soc/codecs/tlv320aic23-i2c.c | 7 -
sound/soc/codecs/tlv320aic23-spi.c | 7 -
sound/soc/codecs/tlv320aic23.c | 120 +--
sound/soc/codecs/tlv320aic26.c | 83 +--
sound/soc/codecs/tlv320aic31xx.c | 240 +++---
sound/soc/codecs/tlv320aic32x4.c | 207 +++---
sound/soc/codecs/tlv320aic3x.c | 293 ++++----
sound/soc/codecs/tlv320dac33.c | 392 +++++-----
sound/soc/codecs/tscs42xx.c | 222 +++---
sound/soc/codecs/twl4030.c | 379 +++++-----
sound/soc/codecs/twl6040.c | 265 ++++---
sound/soc/codecs/twl6040.h | 10 +-
sound/soc/codecs/uda134x.c | 78 +-
sound/soc/codecs/uda1380.c | 156 ++--
sound/soc/codecs/wl1273.c | 93 ++-
sound/soc/codecs/wl1273.h | 2 +-
sound/soc/codecs/wm0010.c | 181 +++--
sound/soc/codecs/wm1250-ev1.c | 27 +-
sound/soc/codecs/wm2000.c | 78 +-
sound/soc/codecs/wm2200.c | 157 ++--
sound/soc/codecs/wm5100.c | 260 ++++---
sound/soc/codecs/wm5100.h | 2 +-
sound/soc/codecs/wm5102.c | 106 ++-
sound/soc/codecs/wm5110.c | 140 ++--
sound/soc/codecs/wm8350.c | 183 +++--
sound/soc/codecs/wm8350.h | 4 +-
sound/soc/codecs/wm8400.c | 211 +++---
sound/soc/codecs/wm8510.c | 149 ++--
sound/soc/codecs/wm8523.c | 98 ++-
sound/soc/codecs/wm8524.c | 56 +-
sound/soc/codecs/wm8580.c | 150 ++--
sound/soc/codecs/wm8711.c | 116 ++-
sound/soc/codecs/wm8727.c | 29 +-
sound/soc/codecs/wm8728.c | 82 +--
sound/soc/codecs/wm8731.c | 101 ++-
sound/soc/codecs/wm8737.c | 109 ++-
sound/soc/codecs/wm8741.c | 133 ++--
sound/soc/codecs/wm8750.c | 115 ++-
sound/soc/codecs/wm8753.c | 289 ++++----
sound/soc/codecs/wm8770.c | 131 ++--
sound/soc/codecs/wm8776.c | 105 ++-
sound/soc/codecs/wm8782.c | 27 +-
sound/soc/codecs/wm8804.c | 100 ++-
sound/soc/codecs/wm8900.c | 251 ++++---
sound/soc/codecs/wm8903.c | 211 +++---
sound/soc/codecs/wm8903.h | 2 +-
sound/soc/codecs/wm8904.c | 355 +++++----
sound/soc/codecs/wm8940.c | 159 ++--
sound/soc/codecs/wm8955.c | 189 +++--
sound/soc/codecs/wm8958-dsp2.c | 278 +++----
sound/soc/codecs/wm8960.c | 249 +++----
sound/soc/codecs/wm8961.c | 241 +++---
sound/soc/codecs/wm8962.c | 397 +++++-----
sound/soc/codecs/wm8962.h | 2 +-
sound/soc/codecs/wm8971.c | 108 ++-
sound/soc/codecs/wm8974.c | 143 ++--
sound/soc/codecs/wm8978.c | 185 +++--
sound/soc/codecs/wm8983.c | 170 ++---
sound/soc/codecs/wm8985.c | 201 +++--
sound/soc/codecs/wm8988.c | 127 ++--
sound/soc/codecs/wm8990.c | 179 +++--
sound/soc/codecs/wm8991.c | 167 ++---
sound/soc/codecs/wm8993.c | 237 +++---
sound/soc/codecs/wm8994.c | 810 +++++++++++----------
sound/soc/codecs/wm8994.h | 8 +-
sound/soc/codecs/wm8995.c | 286 ++++----
sound/soc/codecs/wm8996.c | 401 +++++-----
sound/soc/codecs/wm8996.h | 4 +-
sound/soc/codecs/wm8997.c | 62 +-
sound/soc/codecs/wm8998.c | 88 ++-
sound/soc/codecs/wm9081.c | 228 +++---
sound/soc/codecs/wm9090.c | 109 ++-
sound/soc/codecs/wm9705.c | 83 +--
sound/soc/codecs/wm9712.c | 109 ++-
sound/soc/codecs/wm9713.c | 201 +++--
sound/soc/codecs/wm_adsp.c | 58 +-
sound/soc/codecs/wm_adsp.h | 6 +-
sound/soc/codecs/wm_hubs.c | 254 +++----
sound/soc/codecs/wm_hubs.h | 18 +-
sound/soc/codecs/zx_aud96p22.c | 35 +-
sound/soc/fsl/wm1133-ev1.c | 6 +-
sound/soc/img/pistachio-internal-dac.c | 34 +-
sound/soc/intel/boards/bdw-rt5677.c | 38 +-
sound/soc/intel/boards/broadwell.c | 14 +-
sound/soc/intel/boards/bxt_da7219_max98357a.c | 12 +-
sound/soc/intel/boards/bxt_rt298.c | 12 +-
sound/soc/intel/boards/byt-rt5640.c | 4 +-
sound/soc/intel/boards/bytcr_rt5640.c | 8 +-
sound/soc/intel/boards/bytcr_rt5651.c | 2 +-
sound/soc/intel/boards/cht_bsw_rt5645.c | 8 +-
sound/soc/intel/boards/cht_bsw_rt5672.c | 18 +-
sound/soc/intel/boards/kbl_rt5663_max98927.c | 14 +-
.../soc/intel/boards/kbl_rt5663_rt5514_max98927.c | 14 +-
sound/soc/intel/boards/mfld_machine.c | 12 +-
sound/soc/intel/boards/skl_nau88l25_max98357a.c | 12 +-
sound/soc/intel/boards/skl_nau88l25_ssm4567.c | 12 +-
sound/soc/intel/boards/skl_rt286.c | 12 +-
sound/soc/mediatek/mt8173/mt8173-max98090.c | 4 +-
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c | 6 +-
sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c | 12 +-
sound/soc/mediatek/mt8173/mt8173-rt5650.c | 12 +-
sound/soc/omap/ams-delta.c | 20 +-
sound/soc/omap/omap-abe-twl6040.c | 8 +-
sound/soc/pxa/mioa701_wm9713.c | 30 +-
sound/soc/pxa/ttc-dkb.c | 6 +-
sound/soc/rockchip/rk3399_gru_sound.c | 4 +-
sound/soc/rockchip/rockchip_rt5645.c | 8 +-
sound/soc/samsung/littlemill.c | 8 +-
sound/soc/samsung/lowland.c | 12 +-
sound/soc/samsung/speyside.c | 12 +-
sound/soc/samsung/tm2_wm5110.c | 54 +-
sound/soc/samsung/tobermory.c | 6 +-
sound/soc/soc-ac97.c | 84 ++-
sound/soc/soc-utils.c | 22 +-
sound/soc/sunxi/sun4i-codec.c | 71 +-
sound/soc/sunxi/sun8i-codec.c | 23 +-
sound/soc/tegra/tegra_wm8903.c | 8 +-
sound/soc/uniphier/evea.c | 67 +-
303 files changed, 14204 insertions(+), 15237 deletions(-)
--
1.9.1
4
201
12 Feb '18
Hi Mark
These are for replace "platform" to "component".
It needs 3 steps I think.
step1. "component" needs _add_ function, like "platform"
step2. "component" level pcm_new/free support
step3. replace platform to component
We can get platform pointer from rtd->platform on current style.
But these are very categorized pointer, in other words, non generic pointer.
This cleanup is 1st step of merging all feature into component.
I think new style wil be
CPU + Codec + Platform = Component
I think merging CPU into Component is already done.
This patch set merges Platform feature into Component, and remove Platform.
Merging Codec into Component is next step.
This patch set will add new rtd connected component list.
All CPU/Codec/Platform are connected to this list.
And we can get each component pointer by using rtd and its driver name.
Here, We can replace rtd->platform like below
- struct device *dev = rtd->platform->dev;
+ struct snd_soc_component *component = snd_soc_rtdcom_lookup(rtd, DRIVER_NAME);
+ struct device *dev = component->dev;
- if(rtd->platform->pcm_new)
- rtd->platform->pcm_new(yyy);
+ for_each_rtdcom(rtd, rtdcom) {
+ component = rtdcom->component; /* rtd connected CPU/Codec/Platform */
+ if (component->pcm_new)
+ component->pcm_new(yyy);
+ }
Now, only platform has pcm_new/free, but in new style,
all component can have it.
I will post step1/2/3 patch-set.
step1 is normal patches.
step2/3 are now still [RFC].
Best regards
---
Kuninori Morimoto
2
23