aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/intel
Commit message (Collapse)AuthorAge
...
| | * ASoC: Intel: Add PM support to HSW/BDW IPC driverLiam Girdwood2014-10-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add PM and RTD3 support to the HSW/BDW IPC driver. This patch saves and restores the DSP context, loads and unloads FW and drops any pending IPC messages after suspend. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: Add PM support to the HSW/BDW DSP core.Liam Girdwood2014-10-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for PM wake, sleep and stall calls to the core HSW/BDW driver. This includes reworking the reset and boot code and adding new calls for setting D3/D0 state. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: Add generic support for DSP wake, sleep and stallLiam Girdwood2014-10-29
| | | | | | | | | | | | | | | | | | | | | Add generic functions to support DSP sleep, wake and stall. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: dw_pdata can be statickbuild test robot2014-10-29
| | | | | | | | | | | | | | | | | | | | | sound/soc/intel/sst-firmware.c:172:29: sparse: symbol 'dw_pdata' was not declared. Should it be static? Signed-off-by: Fengguang Wu <fengguang.wu@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: Add dependency on DesignWare DMA controllerMark Brown2014-10-29
| | | | | | | | | | | | | | | | | | | | | We have calls into the controller so we need to ensure it is being built. Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: Make ADSP memory block allocation more genericLiam Girdwood2014-10-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current block allocation is tied to block type and requestor type. Make the allocation more generic by removing the struct module parameter and adding a generic block allocator structure. Also pass in the list that the blocks have to be added too in order to remove dependence on block requestor type. ASoC: Intel: update scratch allocator to use generic block allocator Update the scratch allocator to use the generic block allocator and calculate total scratch buffer size. ASoC: Intel: Add call to calculate offsets internally within the DSP. A call to calculate internal DSP memory addresses used to allocate persistent and scartch buffers. ASoC: Intel: Add runtime module support. Add support for runtime module objects that can be created for every FW module that is parsed from the FW file. This gives a 1:N mapping between the FW module from file and the runtime instantiations of that module. We also need to make sure we remove every module and runtime module when we unload the FW. ASoC: Intel: Add DMA firmware loading support Add support for DMA to load firmware modules to the DSP memory blocks. Two DMA engines are supported, DesignWare and Intel MID. ASoC: Intel: Add runtime module lookup API call Add an API to allow quick lookup of runtime modules based on ID. ASoC: Intel: Provide streams with dynamic module information Remove the hard coded module paramaters and provide each module with dynamically generated buffer information for scratch and persistent buffers. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: mrfld: Replace pci_id with unique device idSubhransu S. Prusty2014-10-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | In order to support both ACPI and PCI devices we need to use a genric device id in driver, so change all pci_id instances to device_id Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: intel: use __iowrite32_copy for 32 bit copyVinod Koul2014-10-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The sst-firmware was also using own method to do 32bit copy, turns out we have a kernel API so use that instead [For BYT] Tested-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: intel: explain why block not found isn't error alwaysVinod Koul2014-10-21
| | | | | | | | | | | | | | | | | | | | | | | | The IPC blocking can be error when we don't find block or a short message, explain that by adding a comment about this scenario Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: intel: fix the kernldoc commentVinod Koul2014-10-21
| | | | | | | | | | | | | | | | | | | | | | | | copypaste error on function sst_get_num_channel caused the comment to be wrong, so fix it here Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: intel: log an error on double freeVinod Koul2014-10-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the stream context should be freed only once on stream cleanup. If we ever hit a chance that stream context is getting double freed, though not an cause of panic as memory allocator can deal with this, we should still log this to help in finding issues and debugging Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: intel: use __iowrite32_copy for 32 bit copyVinod Koul2014-10-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | The driver was using own method to do 32bit copy, turns out we have a kernel API so use that instead Tested-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: Add new dependency for Haswell machineRicardo Neri2014-10-20
| | | | | | | | | | | | | | | | | | | | | | | | I2C support for the RT5640 codec is provided through the Designware I2C platform adapter in this machine. Thus, the driver must be present. Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: Add new dependency for Broadwell machineRicardo Neri2014-10-20
| | | | | | | | | | | | | | | | | | | | | | | | I2C support for the RT286 codec is provided through the Designware I2C platform adapter in this machine. Thus, the adapter driver must be present. Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: sst: Add makefile and kconfig changesVinod Koul2014-10-20
| | | | | | | | | | | | | | | | | | Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: sst: Add some helper functionsVinod Koul2014-10-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds helper functions like wait, creating ipc headers, shim wrappers. Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: sst: add stream operationsVinod Koul2014-10-20
| | | | | | | | | | | | | | | | | | | | | | | | This patch adds pcm and compressed stream control operations. Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: sst: Add IPC handlingVinod Koul2014-10-20
| | | | | | | | | | | | | | | | | | | | | | | | This patch adds APIs to post IPCs and process reply messages. Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: sst - add pcm ops handlingVinod Koul2014-10-20
| | | | | | | | | | | | | | | | | | | | | | | | This patch adds low level IPC handling for pcm stream operations Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: mrfld - Add DSP load and managementVinod Koul2014-10-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch contains all dsp controlling functions like firmware download, setting/resetting dsp cores, etc. Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: mrfld - add the dsp sst driverVinod Koul2014-10-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The SST driver is the missing piece in our driver stack not upstreamed, so push it now :) This driver currently supports PCI device on Merrifield. Future updates will bring support for ACPI device as well as future update to PCI devices as well In subsequent patches support is added for DSP loading using memcpy, pcm operations and compressed ops. Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: mrfld: fix semicolon.cocci warningsFengguang Wu2014-10-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sound/soc/intel/sst-atom-controls.c:249:2-3: Unneeded semicolon sound/soc/intel/sst-atom-controls.c:289:2-3: Unneeded semicolon Removes unneeded semicolon. Generated by: scripts/coccinelle/misc/semicolon.cocci Signed-off-by: Fengguang Wu <fengguang.wu@intel.com> Acked-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: Make HSW/BDW pointer debug verboseLiam Girdwood2014-10-20
| | | | | | | | | | | | | | | | | | | | | Improve the debug SNR by making the positional pointer debug more verbose. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: Add 4 channel support to DSP.Liam Girdwood2014-10-20
| | | | | | | | | | | | | | | | | | | | | DSP can now support 4 channels in certain use cases. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: Add TDM support to HSW/BDW SSP portLiam Girdwood2014-10-20
| | | | | | | | | | | | | | | | | | | | | Add TDM support to SSP port via DSP IPC SetDeviceFormat message. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: intel: turn off COMPILE_TEST for medfieldVinod Koul2014-10-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | Since medfield machine uses SCU_IPC which is not availble for all archs, so compile test fails on these Reported-by: kbuild test robot <fengguang.wu@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: mrfld: add the DSP mixersVinod Koul2014-10-20
| | | | | | | | | | | | | | | | | | Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: mfld-pcm: add FE and BE opsVinod Koul2014-10-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | Now that we have added code for managing DSP pipelines we need to add the code for DSPs FrontEnd and Backend dai. Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: mrfld: add the DSP DAPM widgetsVinod Koul2014-10-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds all DAPM widgets and the event handlers for DSP except the mixers. Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: mrfld: add DSP core controlsVinod Koul2014-10-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds core controls like interleavers, SSP BEs, and also logic of sending pipeline and module commands to the DSP. Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: mrfld: add the gain controlsVinod Koul2014-10-20
| |/ | | | | | | | | | | | | | | | | The DSP has various gain modules in the path, add these as ALSA gain controls Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
* / ASoC: Intel: HSW/BDW only support S16 and S24 formats.Liam Girdwood2014-10-16
|/ | | | | | | | Fix driver with correct formats. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org> Cc: stable@vger.kernel.org
*-. Merge remote-tracking branches 'asoc/topic/fsl-easi', 'asoc/topic/fsl-sai', ↵Mark Brown2014-10-06
|\ \ | | | | | | | | | 'asoc/topic/fsl-ssi' and 'asoc/topic/intel' into asoc-next
| | * ASoC: Intel: byt-rt5640: fix coccinelle warningsFengguang Wu2014-10-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sound/soc/intel/byt-rt5640.c:140:2-3: Unneeded semicolon Removes unneeded semicolon. Generated by: scripts/coccinelle/misc/semicolon.cocci Signed-off-by: Fengguang Wu <fengguang.wu@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: byt-rt5640: Set card as fully routedJarkko Nikula2014-10-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Although it's not known does current version of byt-rt5640 cover all possible variants it is better to set the fully_routed flag on in order to disable unused codecs pins in known machines and get regression from machines that use different routing than the default one. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: byt-rt5640: Add quirk for Dell Venue 8 Pro tabletJarkko Nikula2014-10-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It was found with help of Jan-Michael Brummer <jan.brummer@tabos.org> that Dell Venue 8 Pro tablet has a digital microphone connected to DMIC2 interface of the RT564x. This patch adds a DAPM route to DMIC2 and a quirk using it for that tablet. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Reported-by: Jan-Michael Brummer <jan.brummer@tabos.org> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: byt-rt5640: Enable DMIC interface for default DAPM routeJarkko Nikula2014-10-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It turned out DMIC interface wasn't enabled/disabled runtime for active DMIC route in the rt5640 codec driver anymore after commit 71d97a794301 ("ASoC: rt5640: Use the platform data for DMIC settings"). Since DMIC interface must be enabled explicitly either by passing platform data to rt5640 codec driver or by calling new rt5640_dmic_enable() this patch adds a DMI quirk flag that is used to conditionally enable DMIC interface during sound card init time. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: byt-rt5640: Add quirk for Asus T100Jarkko Nikula2014-09-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Asus T100 internal microphone is not digital but analogue connected to IN1P pin of the RT564x codec with shared bias between internal and headset microphones. Because of this there is need to have machine specific DAPM routes in byt-rt5640. Add handling for them with the help of DMI quirk that is used to add custom routes in addition to common. Because "Internal Mic" connected to DMIC1 is not common to all move it as a default custom route when there is no match in quirk table. Custom "Internal Mic" -> "IN1P" with MICBIAS1 route is added for Asus T100. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: byt-rt5640: Remove IN2N pin from DAPM route tableJarkko Nikula2014-09-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I tested couple byt-rt5640 based platforms and they have single-ended headset microphone connection to IN2P only. I guess IN2N was either defined by accident or some early platform had floating ground for headset. It's better to remove IN2N and add a custom route for such a platform if needed. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: byt-max98090: Set card as fully routedJarkko Nikula2014-09-28
| | | | | | | | | | | | | | | | | | | | | | | | All byt-max98090 audio connections are known and described in DAPM routing table. Set the fully_routed flag in order to disable unused codec pins. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: mfld-pcm: add control for powering up/down dspVinod Koul2014-09-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we have PCM (FE/BE) opened or DAPM widgets triggered we need power up/down DSP accordingly. The DSP will do ref count of these requests i.e. link these runtime_get/put calls of DSP Also fix some preexisting spacing error. Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: mrfld: Use snd_soc_dai_get_drvdata to derive drv dataSubhransu S. Prusty2014-09-16
| | | | | | | | | | | | | | | | | | Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: mrfld: add bytes control for modulesVinod Koul2014-09-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch add support for various modules like eq etc for mrfld DSP. All these modules will be exposed to usermode as bytes controls. Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: Intel: mfld-pcm: don't call trigger ops to DSP for internal streamsVinod Koul2014-09-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | For internal stream i.e. BE we have don't need trigger ops as that would be handled by DAPM for us in subsequent patches Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * ASoC: mfld: pcm: Replace pr_ with dev_Subhransu S. Prusty2014-09-06
| | | | | | | | | | | | | | | | | | Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
* | | Merge remote-tracking branch 'asoc/topic/component' into asoc-nextMark Brown2014-10-06
|\ \ \ | | |/ | |/|
| * | ASoC: sst-haswell-pcm: Move controls and DAPM elements to componentLars-Peter Clausen2014-09-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The sst-haswell-pcm driver registers both a snd_soc_component and a snd_soc_platform and expects that the DAPM widgets for the DAIs registered by component are added to the DAPM context of the platform. This requires us to have a hack in the ASoC core which does so. Moving the DAPM elements over to the component allows us to remove this hack. While we are at it also move the controls over to the component. The controls don't need the platform for anything other than snd_soc_platform_get_drvdata(), this can easily be replaced by snd_soc_component_get_drvdata(). As the long term goal is to register only a single component this is a step in the right direction. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: sst-haswell-pcm: Alloc state struct in driver probe()Lars-Peter Clausen2014-09-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Resource allocations should happen in driver probe callback rather than in snd_soc_platform probe functions. Especially if the resource is device managed. The snd_soc_* probe/remove functions are mainly intended to be used for things that require the component to be already bound to a card. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: mfld-compress: Use dedicated function instead of ioctlSubhransu S. Prusty2014-08-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | Also pass sst device as an argument to function pointer prototypes of compr_ops. This will be used to derive sst driver context. Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
| * | ASoC: Intel: add mrfld DSP definesVinod Koul2014-08-16
| | | | | | | | | | | | | | | | | | | | | | | | We define the DSP commands,structures here which will be used to send the IPCs Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>