summaryrefslogtreecommitdiffstats
path: root/sound/soc/sh
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'asoc/topic/rcar' into asoc-nextMark Brown2014-03-241-7/+11
|\
| * ASoC: rcar: bugfix: it cares about the non-src caseKuninori Morimoto2014-03-241-7/+11
| | | | | | | | | | | | | | | | src might not exist. kernel will be hung-up without this patch in such case. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
* | Merge remote-tracking branch 'asoc/topic/rcar' into asoc-nextMark Brown2014-03-236-3/+238
|\ \ | |/
| * ASoC: rsnd: add DeviceTree supportKuninori Morimoto2014-03-216-3/+238
| | | | | | | | | | | | | | Support for loading the Renesas R-Car sound driver via DeviceTree. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
* | Merge tag 'asoc-v3.15' into asoc-nextMark Brown2014-03-239-881/+1370
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ASoC: Updates for v3.15 Quite a busy release for ASoC this time, more on janitorial work than exciting new features but welcome nontheless: - Lots of cleanups from Takashi for enumerations; the original API for these was error prone so he's refactored lots of code to use more modern APIs which avoid issues. - Elimination of the ASoC level wrappers for I2C and SPI moving us closer to converting to regmap completely and avoiding some randconfig hassle. - Provide both manually and transparently locked DAPM APIs rather than a mix of the two fixing some concurrency issues. - Start converting CODEC drivers to use separate bus interface drivers rather than having them all in one file helping avoid dependency issues. - DPCM support for Intel Haswell and Bay Trail platforms. - Lots of work on improvements for simple-card, DaVinci and the Renesas rcar drivers. - New drivers for Analog Devices ADAU1977, TI PCM512x and parts of the CSR SiRF SoC. # gpg: Signature made Wed 12 Mar 2014 23:05:45 GMT using RSA key ID 7EA229BD # gpg: Good signature from "Mark Brown <broonie@sirena.org.uk>" # gpg: aka "Mark Brown <broonie@debian.org>" # gpg: aka "Mark Brown <broonie@kernel.org>" # gpg: aka "Mark Brown <broonie@tardis.ed.ac.uk>" # gpg: aka "Mark Brown <broonie@linaro.org>" # gpg: aka "Mark Brown <Mark.Brown@linaro.org>"
| | \
| | \
| *-. \ Merge remote-tracking branches 'asoc/topic/samsung', 'asoc/topic/sgtl5000', ↵Mark Brown2014-03-121-14/+5
| |\ \ \ | | |_|/ | |/| | | | | | 'asoc/topic/sh', 'asoc/topic/simple', 'asoc/topic/sirf', 'asoc/topic/sn95031', 'asoc/topic/ssm2602' and 'asoc/topic/stac9766' into asoc-next
| | | * ASoC: migor: Convert to table based DAPM setupLars-Peter Clausen2014-03-101-14/+5
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | Use table based setup to register the DAPM widgets and routes. This on one hand makes the code a bit shorter and cleaner and on the other hand the board level DAPM elements get registered in the card's DAPM context rather than in the CODEC's DAPM context. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: rename scu to srcKuninori Morimoto2014-03-055-159/+164
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | R-Car sound has SCU unit which has SRC/CTU/MIX/DVC, and current rsnd driver has scu.c and scu module. Current scu.c has SRC support only. My first concept was control these feature on scu.c but, it become difficult and un-understandable now. This patch rename scu to src Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: remove all rsnd_xxx_remove()Kuninori Morimoto2014-03-056-42/+0
| | | | | | | | | | | | | | | | | | | | | | | | Now, rsnd_xxx_remove() do nothing. remove these Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: nothing to do on rsnd_dai_remove()Kuninori Morimoto2014-03-051-36/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rsnd_dai_remove() called rsnd_path_exit(), but these memory will be cleaned automatically. Because it is created by devm_kzalloc(). nothing to do on rsnd_dai_remove() Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: use mod probe method on SSIKuninori Morimoto2014-03-051-51/+65
| | | | | | | | | | | | | | | | | | | | | Now, it can use .probe Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: use mod probe method on SCUKuninori Morimoto2014-03-051-25/+39
| | | | | | | | | | | | | | | | | | | | | Now, it can use .probe Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: add probe/remove callback on rsnd_mod_opsKuninori Morimoto2014-03-052-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Each rsnd mod needs specific probe method, and its best timing is DAI probe timing. But current code runs it mod probe timing. This patch adds new probe/remove callback to solve it. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: call rsnd_scu_ssi_mode_init() from SSIKuninori Morimoto2014-03-053-37/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current R-Car sound driver is assuming that SCU mod is used even though it is not needed. Because scu.c is controlling SSIU too. (it is Gen1 compatibility) But, SCU mod will be really not used if new platform dai feature was added. Thus, rsnd_scu_ssi_mode_init() is called from SSI directory by this patch. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: add rsnd_scu_enable_ssi_irq()Kuninori Morimoto2014-03-053-13/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current R-Car sound driver is assuming that SCU mod is used even though it is not needed. Because scu.c is controlling SSIU too. (it is Gen1 compatibility) But, SCU mod will be really not used if new platform dai feature was used. Thus, SSIU irq setting is called from SSI directory by this patch. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: Get correct SCU IDKuninori Morimoto2014-03-054-20/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current rsnd driver is assuming that SCU/SRU ID is same as SSIU/SSI ID, because Gen1 can't select it. But, Gen2 can select it. The SCU/SRU/SSIU/SSI pair depends on the platform. This patch get correct SCU ID from platform info. To keep compatible, it still assuming SCU ID = SSI ID if platform doesn't have info Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: add struct rsnd_dai_platform_infoKuninori Morimoto2014-03-052-7/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | R-Car sound DAI consists from SSI/SCU/SSIU/SRU... Current R-Car sound DAI is decided from these settings, but it is intuitively unclear, and is not good design for DT support. This patch adds new rsnd_dai_platform_info to solve this issue. But now, many platform is using this driver without rsnd_dai_platform_info. So, this patch still supports DAI settings via SSI to keep compatible. It will be removed in next Linux version. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: share reg_field and reduce memoryKuninori Morimoto2014-03-041-28/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | Gen1/Gen2 code never be used in same time. Thus, driver can share Gen1 only register and Gen2 only register. It can reduce memory too. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: modify rsnd_adg_ssi_ws_timing_gen2() parameterKuninori Morimoto2014-03-041-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rsnd_adg_ssi_ws_timing_gen2() returns SSI WS timing, and it used "mod" as parameter. but, this "mod" is sometimes not ssi mod. Get SSI mod from rsnd_dai_stream Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: remove unused SSI_CONTROLKuninori Morimoto2014-03-042-2/+0
| | | | | | | | | | | | | | | Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: use function pointer for each probeKuninori Morimoto2014-03-041-20/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | R-Car sound consists of many devices. It will have more device support in the future. Thus, for each probe become now function pointer array. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: use devm_clk_get() instead of clk_get()Kuninori Morimoto2014-03-041-15/+9
| | | | | | | | | | | | | | | Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: get ssi/scu from rsnd_dai_streamKuninori Morimoto2014-03-043-11/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | Current driver is assuming that SSI id = SCU id. But, now, it can get correct SSI/SCU from rsnd_dai_stream. use it. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: use mod array instead of list on rdaiKuninori Morimoto2014-03-044-25/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | struct rsnd_dai_stream used list for mod list. It added only odd flexibility to current driver, and it is a factor which makes extendibility difficult. rsnd use mod array instead of list from now. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: run rsnd_path_init() when probe() timingKuninori Morimoto2014-03-043-81/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current rsnd SSIU/SSI/SCU/SRU path is set when playback/capture starts up. But it is meaningless method, since the path is based on platform and can be set in probe() timing. This patch sets the path on probe() timing. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: unify rdai namingKuninori Morimoto2014-03-032-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | struct rsnd_dai is called as "rdai", but its size has been called as "dai_nr". Unify these as "rdai" Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: remove verbose debug message from scu/ssiKuninori Morimoto2014-03-032-3/+0
| | | | | | | | | | | | | | | | | | | | | scu/ssi probe() already have more detail debug message. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: remove verbose function parameterKuninori Morimoto2014-03-036-18/+10
| | | | | | | | | | | | | | | | | | | | | | | | priv has rcar_snd_info pointer. having priv and info in same time is verbose. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: move rsnd_mod_call() macroKuninori Morimoto2014-03-032-23/+24
| | | | | | | | | | | | | | | | | | | | | | | | core.c is the only user of rsnd_mod_call() macro. Move it to core.c from rsnd.h Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: move priv member settings to upper sideKuninori Morimoto2014-03-031-4/+4
| | | | | | | | | | | | | | | | | | | | | There is no big meaning, but preparation for platform dai support Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: print error if there is SRC settings mismatchKuninori Morimoto2014-02-121-0/+8
| | | | | | | | | | | | | | | | | | | | | rsnd request clock master if SRC is used Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: set DIV_EN register on rsnd_adg_set_convert_clk_gen2()Kuninori Morimoto2014-02-123-3/+15
| | | | | | | | | | | | | | | | | | | | | DIV_EN register enable bit is required when you use Gen2 SRC Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: tidyup original for_each_rsnd_xxx macroKuninori Morimoto2014-02-122-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current for_each_rsnd_xxx macro will read out-of-array's memory after last loop operation. It was not good C language operation, and the binary which was compiled by (at least) gcc 4.8.1 is broken This patch tidyup these issues Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: use device dependency clockKuninori Morimoto2014-02-071-5/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current R-Car sound driver is using device independent audio clock, but it is not good design for DT support. This patch adds device dependent clock support. But, there are some platform which is using independent audio clock. It is still supported at this point, but it will be removed soon. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: add Gen2 SRC and DMAEngine supportKuninori Morimoto2014-02-034-0/+306
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Renesas sound Gen2 has SRC (= Sampling Rate Converter) which needs 2 DMAC. The data path image when you use SRC on Gen2 is [mem] -> Audio-DMAC -> SRC -> Audio-DMAC-peri-peri -> SSIU -> SSI This patch support SRC and DMAEnine. It is tested on R-Car H2 Lager board Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: rsnd_ssi_probe() goes forwarder than rsnd_scu_probe()Kuninori Morimoto2014-02-031-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | rsnd_ssi_probe() goes forwarder than rsnd_scu_probe(), since scu will need ssi information on Gen2 Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: remove SSI dependent DMAEngine callbackKuninori Morimoto2014-02-033-55/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Renesas Gen2 sound will use 2 DMAC which are Audio-DMAC, and Audio-DMAC-peri-peri. Current driver has callback function for each DMAC, because it assumed each DMAC needs special settings. But it became clear that these can share settings. This patch removes unnecessary callback Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: extracts Gen1/Gen2 common partsKuninori Morimoto2014-02-033-138/+205
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Renesas sound IP Gen1/Gen2 are similar, but different. This patch extracts Gen1/Gen2 common and dependency parts, and create Gen1/Gen2 ops to control it. According to this structure, SSIU setup which has been implemented on ssi.c can be moved to scu.c (SRU/SSIU/SCU should be implemented on scu.c) Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: add rsnd_ssi_is_play()Kuninori Morimoto2014-02-032-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | SCU needs SSI direction if Gen2. Add rsnd_ssi_is_play() function for it. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: merge SRC clock timing/settingKuninori Morimoto2014-02-033-33/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SRC clock and timing setting register exist in SRU and ADG on Gen1. But, these are merged into ADG on Gen2. Current driver is supporting Gen1 SRC only at this point, but, above settings are set as different function. This patch merges these as preparation of Gen2 support. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: rsnd_scu_hpbif_is_enable() become macroKuninori Morimoto2014-02-032-11/+5
| | | | | | | | | | | | | | | | | | | | | | | | rsnd_scu_hpbif_is_enable() is used only scu.c now. It can be local macro Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: Merge macros in scu.cKuninori Morimoto2014-02-031-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | Merge #define lines, since these are defined in the scattering place Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: clarify scu.c areaKuninori Morimoto2014-02-031-0/+14
| | | | | | | | | | | | | | | | | | | | | scu.c cares SRU(Gen1) / SCU(Gen2) / SSIU(Gen2) Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: SCU should be called before SSIKuninori Morimoto2014-02-031-4/+4
| | | | | | | | | | | | | | | Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: don't use schedule_work() when rsnd_dma_start()Kuninori Morimoto2014-02-031-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rsnd_dma_start() is the function to start DMAEngine. Current code is using schedule_work() for it, but it breaks DMAC/SSI register setting timing. Don't use schedule_work() on it. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: fixup Gen2 module namingKuninori Morimoto2014-02-031-1/+1
| | | | | | | | | | | | | | | | | | | | | Gen2 has SCU, not SRU Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: non 0 is error on probeKuninori Morimoto2014-02-031-5/+5
| | | | | | | | | | | | | | | | | | | | | Some xxx_probe() returns not only -Exx, but also PTR_ERR(). Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: remove duplicate *priv from rsnd_dmaKuninori Morimoto2014-02-032-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | *priv pointer exists under rsnd_mod, and, it can get rsnd_mod pointer from rsnd_dma. remove duplicate rsnd_dma :: priv Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: explain SRC bypass mode settings in commentKuninori Morimoto2014-02-031-0/+45
| | | | | | | | | | | | | | | | | | | | | | | | SRC bypass mode is useful for debugging. This patch explains SRC bypass mode settings in comment Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: rsnd: rename rsnd_scu_convert_rate_ctrl()Kuninori Morimoto2014-02-031-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rsnd_scu_convert_rate_ctrl() is unclear naming, and there is "rsnd_scu_convert_rate" variable. These are confusable. it renamed to rsnd_scu_set_convert_rate() Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org>
OpenPOWER on IntegriCloud