summaryrefslogtreecommitdiffstats
path: root/sound/soc/intel
AgeCommit message (Collapse)AuthorFilesLines
2014-08-15Merge remote-tracking branches 'asoc/fix/arizona', 'asoc/fix/fsl', ↵Mark Brown4-40/+18
'asoc/fix/fsl-esai', 'asoc/fix/intel', 'asoc/fix/mcasp' and 'asoc/fix/pxa' into asoc-linus
2014-08-11ASoC: Intel: Restore Baytrail ADSP streams only when ADSP was in resetJarkko Nikula1-1/+11
There is no need to restore and restart PCM streams in case ADSP didn't reach reset and power off state during system suspend/resume cycle. In that case stream is still active but paused and firmware doesn't allow allocating a new stream before paused stream is freed. ADSP remains active in case suspend sequence didn't go to suspend_late stage. This can happen when either suspend sequence is aborted by a wakeup or by letting only devices suspend by "echo devices >/sys/power/pm_test". Currently stream restoring fails in these suspend cases. Fix this by adding a flag that indicates is complete stream reinitialization needed or is it enough to resume paused stream. Flag is set when we know that ADSP reached suspend_late. Initial fix to this issue came from Fang Yang. I modified it a little and forward ported it to top of two other suspend/resume patches from me. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Tested-by: Borun Fu <borun.fu@intel.com> Cc: yang fang <yang.a.fang@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-08-11ASoC: Intel: Wait Baytrail ADSP boot at resume_early stageJarkko Nikula1-9/+4
Remove sst_byt_pcm_dev_resume() and move waiting of firmware boot into sst_byt_pcm_dev_resume_early(). Now suspend_late and resume_early phases are in sync with each other so that we know that ADSP was put into reset and was unpowered after suspend_late and is ready to resume IO after resume_early during resume stage in sst_byt_pcm_trigger(). Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Tested-by: Borun Fu <borun.fu@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-08-11ASoC: Intel: Merge Baytrail ADSP suspend_noirq into suspend_lateJarkko Nikula3-28/+1
Merge DSP reset and cleanup sequence in sst_byt_pcm_dev_suspend_noirq() into sst_byt_pcm_dev_suspend_late(). First their order was wrong by first unloading firmware modules in suspend_late and then taking DSP into reset in suspend_noirq. Second ACPI has put device into OFF state already during suspend_late so trying to reset the DSP is a no-op at suspend_noirq stage. Fix these by moving DSP reset and cleanup into sst_byt_pcm_dev_suspend_late() before firmware unloading. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Tested-by: Borun Fu <borun.fu@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-08-06ASoC: Intel: Update Baytrail ADSP firmware nameJarkko Nikula1-2/+2
Update the initial Baytrail ADSP firmware file name with the one that is now in linux-firmware.git. Please see linux-firmware.git commit 7551a3a78453 ("fw_sst_0f28: Add firmware for Intel Baytrail SST DSP"). Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-08-04Merge remote-tracking branches 'asoc/topic/intel', 'asoc/topic/kirkwood', ↵Mark Brown15-150/+1118
'asoc/topic/max98090' and 'asoc/topic/mc13783' into asoc-next
2014-08-01ASoC: Intel: update stream only on stream IPC msgsPaweł Piskorski1-1/+2
Only update the stream when the IPC message type matches stream type. Signed-off-by: Paweł Piskorski <pawel.piskorski@intel.com> Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> Signed-off-by: Jie Yang <yang.jie@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-08-01ASoC: Intel: Don't issue ipc when processing responsePaweł Piskorski1-2/+3
Make sure we dont issue IPC when we are processing a response. Signed-off-by: Paweł Piskorski <pawel.piskorski@intel.com> Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> Signed-off-by: Jie Yang <yang.jie@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-08-01ASoC: Intel: Delete message when IPC timeout occursLiam Girdwood1-0/+1
This fixes a bug where we dont delete the current message when an IPC message timeout occurs. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> Signed-off-by: Jie Yang <yang.jie@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-08-01ASoC: Intel: Add dependency to DW_DMAC for BDW platformJie Yang1-1/+1
Add dependency to DW_DMAC for broadwell machine, which have built in DW dma engines. Signed-off-by: Jie Yang <yang.jie@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-07-31ASoC: Intel: mfld-pcm: Allocate platform dataSubhransu S. Prusty1-1/+7
Platform data may be null during platform_device_add. Allocate platform data before using. 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>
2014-07-31ASoC: Intel: mfld-pcm: Fix to use correct sst_data pointerSubhransu S. Prusty1-1/+1
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>
2014-07-30ASoC: Intel: Check ops before we derefference pointers.Liam Girdwood1-3/+7
Check ops pointer members before we can derefference them. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> Signed-off-by: Jie Yang <yang.jie@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-07-30ASoC: Intel: Add debug to set DX stateLiam Girdwood1-1/+8
Add some debugging info to help with Dx state debug. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> Signed-off-by: Jie Yang <yang.jie@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-07-30ASoC: Intel: Add notification trace for reset.Liam Girdwood1-0/+2
Add trace notification of IPC stream reset. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> Signed-off-by: Jie Yang <yang.jie@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-07-30ASoC: Intel: Add macros for SST shim register bits.Liam Girdwood1-0/+27
Add some register definitions for other shim register bits. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> Signed-off-by: Jie Yang <yang.jie@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-07-30ASoC: Intel: Fix naming of HMDC register macros.Liam Girdwood2-7/+7
HMDC is the correct naming for this register. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> Signed-off-by: Jie Yang <yang.jie@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-07-16ASoC: Intel: Add Broadwell Machine supportLiam Girdwood3-0/+265
Add support for Broadwell based machines with SST DSP audio. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> Signed-off-by: Jie Yang <yang.jie@linux.intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-07-16ASoC: Intel: Update FW version readbackJie Yang1-3/+17
Update FW version readback. IPC_GLB_GET_FW_VERSION reads back the ABI version whilst the release version is in the mailbox. Update to use mailbox version for info logging. Signed-off-by: Jie Yang <yang.jie@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-07-16ASoC: intel: Cleanup useless ACPI inclusion.Lv Zheng1-3/+0
The sst-haswell-dsp.c is an ACPI independent file, this patch removes ACPI header files for it. Signed-off-by: Lv Zheng <lv.zheng@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-07-14ASoC: Intel: mfld: add generic parameter interfaceVinod Koul1-1/+4
This interface will be used by subsequent patches to set/get parameters from DSP Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-07-14ASoC: Intel: mfld: add dsp error codesVinod Koul1-0/+15
DSP returns error codes for IPC return so add them in driver Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-07-14ASoC: Intel: add sst shim register start-end variablesVinod Koul1-0/+4
the shim registers start and end can be useful while parsing the shim addresses, so add these Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-07-14ASoC: Intel: Start with all memory banks disabledJie Yang1-2/+3
All required banks are enabled during boot procedure. Signed-off-by: Jie Yang <yang.jie@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-07-14ASoC: Intel: Use a table for ADSP SRAM shiftJie Yang1-10/+29
Use a table for ADSP IRAM/DRAM bit shift. Signed-off-by: Jie Yang <yang.jie@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-07-14ASoC: Intel: Merge wild cat point ADSP DRAM regionsJie Yang1-3/+1
Merge D-SRAM0 D-SRAM1 D-SRAM2 to D-SRAM, for wild cat point ADSP mem regions. Signed-off-by: Jie Yang <yang.jie@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-07-14ASoC: Intel: Add dummy read for SRAM block enableJie Yang1-0/+13
Add dummy read after each block enable, to workaround SRAM write missing bytes issue. Signed-off-by: Jie Yang <yang.jie@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-07-14ASoC: Intel: Cleanup HSW pcm format supportJie Yang2-10/+19
This change removes unsupported formats from System, Capture and Loopback FE DAIs. Also it fixes S24_LE support on all DAIs. While at this fix 24 bit flag for BYT as well. Signed-off-by: Jie Yang <yang.jie@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org> Cc: stable@vger.kernel.org
2014-06-24ASoC: Intel: byt-max98090: Do not change speaker and DMIC with jack stateJarkko Nikula1-8/+0
Kernel should not enable/disable speakers and digital microphone whenever jack is inserted/removed. This is more use-case than kernel specific decision. For instance one may want to play VoIP ring tones using both speakers and headphone but play music only from one of them. Because of above reason remove "Ext Spk" and "Int Mic" update when jack state is changed. Also this update was illogical anyway: "Ext Spk" was enabled when jack was inserted and disabled when jack was removed. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-06-24ASoC: Intel: byt-max98090: Do not enable MAX98090 microphone detectionJarkko Nikula1-7/+3
It turned out there is no need to enable microphone detection in MAX98090 codec. Headset microphone is anyway detected by a GPIO signal from another chip and headset button presses cannot be detected either because a signal needed for it is not connected. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-06-24ASoC: Intel: byt-max98090: Fix jack type in order to report correctlyJarkko Nikula1-1/+2
Pass actual jack type bitmask to snd_soc_jack_new() in order to report also microphone detections and not only headphone. While at it change also jack name and pass also SND_JACK_LINEOUT type. Reported-by: Jin Yao <yao.jin@intel.com> Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-06-24ASoC: Intel: byt-max98090: Do not report SND_JACK_LINEINJarkko Nikula1-1/+1
Headset jack has only mono microphone input. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-06-24ASoC: Intel: byt-max98090: Fix mic detect GPIO polarityJarkko Nikula1-0/+1
Mic detect GPIO is active low when headset microphone is detected. Found both by debugging and checking the schematics. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-06-24ASoC: Intel: byt-max98090: Move MICBIAS widget to supply of Headset MicJarkko Nikula1-2/+1
Move "MICBIAS" as a supply widget to "Headset Mic" instead of keeping it between input pin "IN34" and "Headset Mic". Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-06-23ASoC: Intel: use common stream allocation method for compressed streamVinod Koul2-7/+11
As added in previosu patch along with stream to piep conversion si required for compressed audio too Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-06-23ASoC: Intel: add mrfld pipelinesVinod Koul3-9/+139
Merrifield DSP used various pipelines to identify the streams and processing modules. Add these defination in the pcm driver and also add a table for device entries to firmware pipeline id conversion Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-06-22ASoC: Intel: mfld-pcm: modularize stream allocation codeVinod Koul2-33/+71
Tis will be used to add table based support for pcm front ends in subsequent patches Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-06-22ASoC: Intel: add the mrfld fw IPC definationsVinod Koul1-11/+403
This will be used to update current driver as well as in support for the mrfld patches Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-06-21ASoc: Intel: mfld-pcm: report pcm delayVinod Koul2-0/+2
Now the DSP is capable of reporting the delay, report it to upper layers Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-06-21ASoC: Intel: mfld-pcm rename period callback argVinod Koul2-7/+7
The argument was called mad_substream which is no longer apt as older driver is not used anymore so rename as arg Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-06-21ASoC: Intel: mfld_pcm: move stream handling to dai_opsVinod Koul1-49/+63
This helps us to handle pcm and compress ops seperately and per dai Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-06-21ASoC: Intel: byt-rt5640: Enable headset mic bias voltageJarkko Nikula1-0/+1
Connect "Headset Mic" to "MICBIAS1" supply widget of RT5640 in order to enable bias voltage for headset microphones. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-06-21ASoC: Intel: Show Baytrail SST DSP firmware details during initJarkko Nikula1-0/+30
DSP initialization complete message IPC_IA_FW_INIT_CMPLT is a large message carrying firmware details in mailbox. Read and show those details during init in order to be able to get that information to QA reports. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-06-03Merge remote-tracking branches 'asoc/topic/gpio' and 'asoc/topic/intel' into ↵Mark Brown10-43/+233
asoc-next
2014-06-01ASoC: intel: The Baytrail/MAX98090 driver depends on I2CMark Brown1-1/+1
Signed-off-by: Mark Brown <broonie@linaro.org>
2014-06-01ASoC: Intel: byt-rt5640: Use card PM ops from coreJarkko Nikula1-12/+1
Use card PM ops from ASoC core instead of defining custom PM ops here since we are calling anyway common suspend/resume callbacks. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-06-01ASoC: Intel: Use devm_snd_soc_register_cardJarkko Nikula2-21/+2
Simplify byt-rt5640.c and haswell.c machine drivers by using devm_snd_soc_register_card(). Remove also needless dev_set_drvdata() from byt_rt5640_probe() since snd_soc_register_card() does it too. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Cc: Liam Girdwood <liam.r.girdwood@linux.intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-06-01ASoC: Intel: remove duplicate headersAndy Shevchenko3-3/+0
A few files contain duplicate headers. This patch removes the second entry of duplicate in each file under question. There is no functional changes. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Cc: Liam Girdwood <liam.r.girdwood@linux.intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-06-01ASoC: Intel: Clear stored Baytrail DSP DMA pointer before stream startJarkko Nikula1-0/+1
Stored DSP DMA pointer must be cleared before starting the stream since PCM pointer callback sst_byt_pcm_pointer() can be called before pointer is updated. In that case last position of previous stream was wronly returned. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
2014-06-01ASoC: Intel: byt/hsw: Add missing kthread_stop to error/cleanup pathImre Deak2-5/+12
Baytrail and Haswell SST IPC don't stop the kernel thread in error and cleanup path thus leaving orphan kernel thread behind in such a case. Also while at it, fix one error path in sst-haswell-ipc.c that doesn't free hsw->msg. [Jarkko: I edited the commit log a little] Signed-off-by: Imre Deak <imre.deak@intel.com> Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>