summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* ASoC: fold pxa2xx-pcm into its only user, pxa2xx-ac97Daniel Mack2018-06-298-207/+76
| | | | | | | | | | | | Now that the PXA SSP bits are ported over to generic DMA, the pxa2xx-pcm code only has a single user left. This patch folds the remaining bits into its only user and removes the unnecessary glue layer along with its header file. The include dependency to linux/dma/pxa-dma.h is also gone now. Signed-off-by: Daniel Mack <daniel@zonque.org> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: pxa: remove the dmaengine compat needRobert Jarzmik2018-06-294-46/+12
| | | | | | | | | | | | | As the pxa architecture switched towards the dmaengine slave map, the old compatibility mechanism to acquire the dma requestor line number and priority are not needed anymore. This patch simplifies the dma resource acquisition, using the more generic function dma_request_slave_channel(). Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr> Signed-off-by: Daniel Mack <daniel@zonque.org> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: dpcm: extend channel merging to the backend cpu daiJerome Brunet2018-06-281-3/+17
| | | | | | | | | | Extend dpcm_merge_chan to also check backend cpu dai channels capabilities. Apply the same policy as soc_pcm_init_runtime_hw() for multicodec links and only check cpu dai in this case. Cc: Jiada Wang <jiada_wang@mentor.com> Signed-off-by: Jerome Brunet <jbrunet@baylibre.com> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: qdsp6: qdafe: fix some off by one bugsDan Carpenter2018-06-281-3/+3
| | | | | | | | | | The > should be >= or we could read one element beyond the end of the port_maps[] array. Fixes: 7fa2d70f9766 ("ASoC: qdsp6: q6afe: Add q6afe driver") Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Acked-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: dpcm: improve runtime update predictabilityJerome Brunet2018-06-281-79/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As it is, dpcm_runtime_update() performs the old path and new path update of a frontend before going on to the next frontend DAI. Depending the order of the FEs within the rtd list, the result of the update might be different. For example: * Frontend A connected to backend C, with a 48kHz playback * Frontend B connected to backend D, with a 44.1kHz playback * FE A appears before FE B in the rtd list of the card. If we reparent BE C to FE B (disconnecting BE D): * old path update of FE A will run first, and BE C will get hw_free() and shutdown() * new path update of FE B will run after and BE C, which is stopped, so it will be configured at 44.1kHz, as expected If we reparent BE D to FE A (disconnecting BE C): * new path update of FE A will run first but since BE D is still running at 44.1kHz, it won't be reconfigured (no call to startup() or hw_params()) * old path update of FE B runs after, nothing happens * In this case, we end up with a BE playing at 44.1kHz a stream which is supposed to be played at 48Khz (too slow) To improve this situation, this patch performs all the FE old paths update before going on to update the new paths. With this, the result should no longer depend on the order of the FE within the card rtd list. Please note that there might be a small performance penalty since dpcm_process_paths() is called twice per stream direction. Signed-off-by: Jerome Brunet <jbrunet@baylibre.com> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: tas517x: add tas5707 supportJerome Brunet2018-06-273-1/+130
| | | | | | | Add support for the tas5707 audio power amplifier. Signed-off-by: Jerome Brunet <jbrunet@baylibre.com> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: tas571x: add tas5707 compatibleJerome Brunet2018-06-271-0/+1
| | | | | | | Add the tas5707 to the available compatibles of the tas571x driver Signed-off-by: Jerome Brunet <jbrunet@baylibre.com> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: simple-amplifer: add simple-amplifier compatibleJerome Brunet2018-06-271-0/+1
| | | | | | | | Add simple-audio-amplifier to the list of available compatible Suggested-by: Nicolò Veronese <nicveronese@gmail.com> Signed-off-by: Jerome Brunet <jbrunet@baylibre.com> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: simple-amplifier: rename dio2125 to simple-ampliferJerome Brunet2018-06-273-27/+28
| | | | | | | | | The dio2125 is simple enough that we can make it a generic component. Just rename and sed the dio2125 amplifier driver to simple_amplifier. Suggested-by: Nicolò Veronese <nicveronese@gmail.com> Signed-off-by: Jerome Brunet <jbrunet@baylibre.com> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: simple-amplifier: remame dio2125 documentationJerome Brunet2018-06-272-12/+12
| | | | | | | | | | The dio2125 is simple enough that we can make it a generic component. Rename the the dio2125 documentation to simple-amplifier to prepare this change. Suggested-by: Nicolò Veronese <nicveronese@gmail.com> Signed-off-by: Jerome Brunet <jbrunet@baylibre.com> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: Intel: bytcr_rt5651: Sort DMI table entries alphabeticallyHans de Goede2018-06-271-19/+22
| | | | | | | | | As we get more entries in the DMI quirk table it is nice to have some sort of ordering in the table, sort it alphabetically. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: Intel: bytcr_rt5651: Add BYT_RT5651_HP_LR_SWAPPED quirkHans de Goede2018-06-271-4/+23
| | | | | | | | | | | | | | | | | | | One some models (Chuwi Vi8 Plus, Chuwi Hi8 Pro) the headphone output has left and right swapped. This can be fixed in with special mixer settings in the UCM profile, bit this requires these devices loading a different UCM profile. This commit adds a BYT_RT5651_HP_LR_SWAPPED quirk for this and postfixes the longname with "-hp-swapped" if set, so that a different UCM profile will be loaded. We can safely do this without causing regressions (UCM profile not found due to the longname change) as the UCM profiles are not in upstream alsa-lib yet. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: Intel: bytcr_rt5651: Simplify card long-nameHans de Goede2018-06-271-6/+4
| | | | | | | | | | | | | | | Now that the headset-mic is always IN3 there is no reason to have the headset-mic mapping in the long-name. This commit simplifies the long name to "bytcr-rt5651-<intmic-map>-mic". We can safely do this without causing regressions (UCM profile not found due to the longname change) as the UCM profiles are not in upstream alsa-lib yet. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: Intel: bytcr_rt5651: Fix DMIC map headsetmic mappingHans de Goede2018-06-271-2/+2
| | | | | | | | | | | | | The initial bytcr_rt5651 machine driver commit mapped IN2 as the headset mic. In retrospect this is not correct as all known boards have the headset mic on IN3. This commit fixes the original DMIC mapping to correctly have the headset mic on IN3. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: Intel: bytcr_rt5651: Fix IN1 map headsetmic mappingHans de Goede2018-06-271-22/+7
| | | | | | | | | | | | | | The initial bytcr_rt5651 machine driver commit mapped IN2 as the headset mic. In retrospect this is not correct as all known boards have the headset mic on IN3. To workaround this special IN?_HS_IN3 mappings were added. This commit fixes the original IN1 mapping to correctly have the headset mic on IN3, moves all users of the IN1_HS_IN3 mapping over to the fixed IN1_MAP and drops the now no longer needed IN1_HS_IN3 mapping. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: Intel: bytcr_rt5651: Remove IN2 input mappingsHans de Goede2018-06-271-28/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | BYT_RT5651_IN2_MAP was introduced in commit 39712db878a4 ("SoC: intel: byt: Introduce new custom IN2 map"), uses in commit 2fe30129b0a6 ("ASoC: intel: byt: Enable IN2 map quirk for a KIANO laptop"), only to be replaced by a new BYT_RT5651_IN1_IN2_MAP quirk in commit ea261bd02a67 ("ASoC: intel: byt: Introduce new map for dual mics") quickly afterwards, because the KIANO laptop has 2 internal mics on IN1 and IN2 and the headset mic is not in IN1 where the BYT_RT5651_IN2_MAP maps it, but on IN3. Now that the KIANO quirk entry uses BYT_RT5651_IN1_IN2_MAP, there are no users of BYT_RT5651_IN2_MAP left. This makes sense since the headset mic seems to always be connected to IN3, so BYT_RT5651_IN2_MAP is not useful. To deal with BYT_RT5651_IN2_MAP wrongly mapping the headset mic to IN1, BYT_RT5651_IN2_HS_IN3_MAP was added in commit f026e0631780 ("ASoC: Intel: bytcr_rt5651: Add new IN2_HS_IN3 input map and a quirk using it"). This was based on the assumption then some devices have the internal mic connected to IN2 only. Further testing has shown that this is wrong and the internal mic is always connected to IN1 and sometimes to both IN1 and IN2. TL;DR: Both BYT_RT5651_IN2_MAP and BYT_RT5651_IN2_HS_IN3_MAP are based on on wrong assumptions from the past and are no longer useful now, so they can both be removed. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: Intel: bytcr_rt5651: Fix IN1_IN2_MAP quirk not being loggedHans de Goede2018-06-271-0/+2
| | | | | | | | Fix the quirk logging code not logging the IN1_IN2_MAP quirk. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: Intel: bytcr_rt5651: Change default input map from in2 to in1Hans de Goede2018-06-271-3/+3
| | | | | | | | | | | | | | | | | | | | | | | Further testing on all 6 model x86 tablets with a rt5651 which I have access to for testing has shown that their single (mono) microphone is connected to both IN1 *and* IN2. The previous default mapping of IN2 was based on testing on the same 6 tablets, where the internal mic works fine with a mapping of IN2. But it works fine too with a mapping of IN1. This commit changes the default input mapping to to use IN1 instead of IN2, to match the mapping used for the other mono devices in the DMI quirk table. So that we need less different mappings. The same change is made to the Chuwi Vi8 Plus quirks, which is one of the 6 models tested. This is a preparation patch for simplifying the maps in a follow-up commit. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: Intel: bytcr_rt5651: Add BYT_RT5651_DEFAULT_QUIRKS defineHans de Goede2018-06-271-16/+9
| | | | | | | | | | | | Almost all boards use the mclk and use the same jack-detect settings, add a BYT_RT5651_DEFAULT_QUIRKS define for this. This shaves of some lines and makes it easier to see which settings are unique to a certain model. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: qdsp6: q6asm: remove unused struct q6asm memberSrinivas Kandagatla2018-06-261-1/+0
| | | | | | | | pcmdev in struct q6asm seems be left over and unused, so just remove it. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Acked-by: Niklas Cassel <niklas.cassel@linaro.org> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: qdsp6: q6routing: add proper error checkSrinivas Kandagatla2018-06-261-1/+1
| | | | | | | | | q6adm_open can return error pointer or a null in error cases. Fix the return handling. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Acked-by: Niklas Cassel <niklas.cassel@linaro.org> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: qcom: apq8096: remove redundant owner assignmentSrinivas Kandagatla2018-06-261-1/+0
| | | | | | | | | module owner is already set in platform_driver_register(), so remove this redundant assignment. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Acked-by: Niklas Cassel <niklas.cassel@linaro.org> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: qdsp6: q6routing: support dt based module loadingSrinivas Kandagatla2018-06-261-0/+7
| | | | | | | | This patch uses new compatible string to make DT based module loading work. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Acked-by: Niklas Cassel <niklas.cassel@linaro.org> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: qdsp6: q6asm-dai: support dt based module loadingSrinivas Kandagatla2018-06-261-0/+7
| | | | | | | | This patch uses new compatible string to make DT based module loading work. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Acked-by: Niklas Cassel <niklas.cassel@linaro.org> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: qdsp6: q6afe-dai: support dt based module loadingSrinivas Kandagatla2018-06-261-0/+7
| | | | | | | | This patch uses new compatible string to make DT based module loading work. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Acked-by: Niklas Cassel <niklas.cassel@linaro.org> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: qdsp6: q6afe: use of_platform_populate/depopulate()Srinivas Kandagatla2018-06-261-14/+2
| | | | | | | | | | Now that the child nodes have there own compatible strings, Use of_platform_populate/depopulate() instead of less common of_platform_device_create()/destroy(). Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Acked-by: Niklas Cassel <niklas.cassel@linaro.org> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: qdsp6: q6asm: use of_platform_populate/depopulate()Srinivas Kandagatla2018-06-261-14/+2
| | | | | | | | | | Now that the child nodes have there own compatible strings, Use of_platform_populate/depopulate() instead of less common of_platform_device_create()/destroy(). Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Acked-by: Niklas Cassel <niklas.cassel@linaro.org> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: qdsp6: q6adm: use of_platform_populate/depopulate()Srinivas Kandagatla2018-06-261-14/+2
| | | | | | | | | | Now that the child nodes have there own compatible strings, Use of_platform_populate/depopulate() instead of less common of_platform_device_create()/destroy(). Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Acked-by: Niklas Cassel <niklas.cassel@linaro.org> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: q6afe: dt-bindings: add compatible string to daisSrinivas Kandagatla2018-06-261-0/+6
| | | | | | | | | Add compatible string to dais so that it can support DT based module autoloading. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Acked-by: Niklas Cassel <niklas.cassel@linaro.org> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: q6asm: dt-bindings: add compatible string to daisSrinivas Kandagatla2018-06-261-0/+6
| | | | | | | | | Add compatible string to dais so that it can support DT based module autoloading. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Acked-by: Niklas Cassel <niklas.cassel@linaro.org> Signed-off-by: Mark Brown <broonie@kernel.org>
* ASoC: q6adm: dt-bindings: add compatible string to routingSrinivas Kandagatla2018-06-261-0/+6
| | | | | | | | | Add compatible string to routing so that it can support DT based module autoloading. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Acked-by: Niklas Cassel <niklas.cassel@linaro.org> Signed-off-by: Mark Brown <broonie@kernel.org>
* Merge tag 'pxa-for-4.19-dma_slave_map' ofMark Brown2018-06-2515-272/+160
|\ | | | | | | https://github.com/rjarzmik/linux into asoc-4.19 for ac'97 deps
| * ARM: pxa: change SSP DMA channels allocationRobert Jarzmik2018-06-183-52/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now the dma_slave_map is available for PXA architecture, switch the SSP device to it. This specifically means that : - for platform data based machines, the DMA requestor channels are extracted from the slave map, where pxa-ssp-dai.<N> is a 1-1 match to ssp.<N>, and the channels are either "rx" or "tx". - for device tree platforms, the dma node should be hooked into the pxa2xx-ac97 or pxa-ssp-dai node. Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr> Acked-by: Daniel Mack <daniel@zonque.org>
| * ARM: pxa: remove the DMA IO resourcesRobert Jarzmik2018-06-181-136/+0
| | | | | | | | | | | | | | | | As the last driver using the former mechanism to acquire the DMA requestor line has be converted to the dma_slave_map, remove all these resources from the PXA devices. Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
| * dmaengine: pxa: document pxad_paramRobert Jarzmik2018-06-181-0/+9
| | | | | | | | | | | | | | | | Add some documentation for the pxad_param structure, and describe the contract behind the minimal required priority of a DMA channel. Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr> Acked-by: Vinod Koul <vkoul@kernel.org>
| * ata: pata_pxa: remove the dmaengine compat needRobert Jarzmik2018-06-181-9/+1
| | | | | | | | | | | | | | | | | | | | | | | | As the pxa architecture switched towards the dmaengine slave map, the old compatibility mechanism to acquire the dma requestor line number and priority are not needed anymore. This patch simplifies the dma resource acquisition, using the more generic function dma_request_slave_channel(). Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr> Acked-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
| * mtd: rawnand: marvell: remove the dmaengine compat needRobert Jarzmik2018-06-181-16/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | As the pxa architecture switched towards the dmaengine slave map, the old compatibility mechanism to acquire the dma requestor line number and priority are not needed anymore. This patch simplifies the dma resource acquisition, using the more generic function dma_request_slave_channel(). Signed-off-by: Daniel Mack <daniel@zonque.org> Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr> Acked-by: Miquel Raynal <miquel.raynal@bootlin.com>
| * media: pxa_camera: remove the dmaengine compat needRobert Jarzmik2018-06-181-19/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | As the pxa architecture switched towards the dmaengine slave map, the old compatibility mechanism to acquire the dma requestor line number and priority are not needed anymore. This patch simplifies the dma resource acquisition, using the more generic function dma_request_slave_channel(). Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr> Acked-by: Hans Verkuil <hans.verkuil@cisco.com> Acked-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
| * mmc: pxamci: remove the dmaengine compat needRobert Jarzmik2018-06-181-26/+3
| | | | | | | | | | | | | | | | | | | | | | | | As the pxa architecture switched towards the dmaengine slave map, the old compatibility mechanism to acquire the dma requestor line number and priority are not needed anymore. This patch simplifies the dma resource acquisition, using the more generic function dma_request_slave_channel(). Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr> Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
| * dmaengine: pxa: add a default requestor policyRobert Jarzmik2018-06-181-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | As what former drcmr -1 value meant, add a this as a default to each channel, ie. that by default no requestor line is used. This is specifically used for network drivers smc91x and smc911x, and needed for their port to slave maps. Cc: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr> Acked-by: Vinod Koul <vkoul@kernel.org>
| * ARM: pxa: add dma slave mapRobert Jarzmik2018-06-185-13/+123
| | | | | | | | | | | | | | | | | | | | | | | | In order to remove the specific knowledge of the dma mapping from PXA drivers, add a default slave map for pxa architectures. This is the first step, and once all drivers are converted, pxad_filter_fn() will be made static, and the DMA resources removed from device.c. Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr> Reported-by: Arnd Bergmann <arnd@arndb.de>
| * dmaengine: pxa: use a dma slave mapRobert Jarzmik2018-06-182-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to remove the specific knowledge of the dma mapping from PXA drivers, add a default slave map for pxa architectures. This won't impact MMP architecture, but is aimed only at all PXA boards. This is the first step, and once all drivers are converted, pxad_filter_fn() will be made static, and the DMA resources removed from device.c. Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr> Reported-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Vinod Koul <vkoul@kernel.org>
* | ASoC: cx20442: Don't ignore regulator_get() errors.Janusz Krzysztofik2018-06-251-2/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In its current shape, the driver just ignores errors returned by regulator_get() at component_probe(). This doesn't hurt on Amstrad Delta board as long as it registers the codec device at late_initcall, when the regulator which depends on basic-mmio-gpio device (probed as late as at dev_initcall) is already available. Otherwise the driver may end up trying to control a codec which is not powered up. Remove that dependency on initialization order by handling the error. If the regulator is not yet available and -ENODEV is returned, convert it to -EPROBE_DEFER to get another chance. Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com> Signed-off-by: Mark Brown <broonie@kernel.org>
* | ASoC: soc-pcm: DPCM cares BE channel constraintJiada Wang2018-06-222-0/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | Current DPCM is caring only FE channel configuration. Sometimes it will be trouble if user selects channel which isn't supported by BE. This patch adds new .dpcm_merged_chan on struct snd_soc_dai_link. DPCM will use FE / BE merged channel if struct snd_soc_dai_link has it. Signed-off-by: Jiada Wang <jiada_wang@mentor.com> Signed-off-by: Mark Brown <broonie@kernel.org>
* | ASoC: add hp-det-gpio and mic-det-gpio to audio graph card bindingKatsuhiro Suzuki2018-06-221-0/+2
| | | | | | | | | | | | | | | | Add headphone and microphone detection GPIO support to audio graph card same as supported in simple card. Signed-off-by: Katsuhiro Suzuki <suzuki.katsuhiro@socionext.com> Signed-off-by: Mark Brown <broonie@kernel.org>
* | ASoC: AMD: Configure channel 1 or channel 0 for captureAkshu Agrawal2018-06-223-7/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | ST/CZ SoC have 2 channels for capture in the I2SSP path. The DMA though these channels is done using the same dma descriptors. We configure the channel and enable it on the basis of channel selected by machine driver. Machine driver knows which codec sits on which channel and thus sends the information to dma driver. Signed-off-by: Akshu Agrawal <akshu.agrawal@amd.com> Signed-off-by: Mark Brown <broonie@kernel.org>
* | Merge branch 'asoc-4.18' into asoc-4.19 for amd depMark Brown2018-06-227-14/+63
|\ \
| * | ASoC: arizona: Set compressed IRQ to a wake sourceCharles Keepax2018-06-203-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current code is not setting the compressed IRQ as a wake source. Normally this doesn't cause any issues as the CODEC IRQ is set as a wake source by the jack detection code and the CODEC only produces a single IRQ line. However if the system is not using jack detection the compressed audio IRQ should still function as a wake source, as such directly set the compressed audio IRQ as a wake source. Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | ASoC: AMD: Add NULL pointer checkAgrawal, Akshu2018-06-181-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Fix crash in those platforms whose machine driver does not expose platform_info. For those platforms we rely on default value and select I2SSP channel. Signed-off-by: Akshu Agrawal <akshu.agrawal@amd.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | ASoC: rsnd: SSI parent cares SWSP bitKuninori Morimoto2018-06-181-11/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SSICR has SWSP bit (= Serial WS Polarity) which decides WS pin 1st channel polarity (low or hi). This bit shouldn't exchange after running. Current SSI "parent" doesn't care SSICR, just controls clock only. Because of this behavior, if platform uses SSI0 as playback, SSI1 as capture, and if user starts capture -> playback order, SSI0 SSICR::SWSP bit exchanged 0 -> 1 during captureing, and it makes capture noise. This patch cares SSICR on SSI parent, too. Special thanks to Yokoyama-san Reported-by: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Tested-by: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com> Signed-off-by: Mark Brown <broonie@kernel.org>