There is maximum number of COPPs ASM session can be routed
to even though there are far more number of AFE ports.
Add the check to make sure caller is not routing to more
than ADM can actually support.
Change-Id: Iee97dd7e5d21820c87244a422fa252c2228185f9
Signed-off-by: Patrick Lai <plai@codeaurora.org>
Remove unnecessary check as it should be reasonable
to assume valid parameter would be issued through
debugfs interface
Change-Id: I1a23d8c5324b813bf9501c5462684234926b5dcc
Signed-off-by: Patrick Lai <plai@codeaurora.org>
When playing a full scale tone with highest gain in the codec, OCP
(Over Current Protection) event is generated. This is caused due to
lower switching frequency for the class G amplifier on headphone
path. Fix the false OCP event trigger by appropriately setting the
class G switching frequency
CRs-fixed: 415990
Change-Id: I9563ab2d06c970b47693293175fe7ae4a711348c
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
For compressed and LPA drivers, set pending_buffers flag to 1 only if the client
issues a trigger_start command, not a pause_release command. This flag
is used to initiate writes to the dsp.
Change-Id: I503156863646210b460613a0b9a26a6bfb8854ed
CRs-Fixed: 442269, 449126
Signed-off-by: Haynes Mathew George <hgeorge@codeaurora.org>
Function which converts port ID to port index can return
error value if port ID is invalid. Caller should not
blindly use return value without checking
Change-Id: I02b8112b6714e3364758907e7078bcbb88d45b6b
Signed-off-by: Patrick Lai <plai@codeaurora.org>
For compressed drivers, allow the drain ioctl only if
there are pending writes. Return a proper error (-EWOULDBLOCK) otherwise.
Change-Id: I4799351a8930c44d88d6968802df98896fc1531a
Signed-off-by: Haynes Mathew George <hgeorge@codeaurora.org>
CRs-Fixed: 445370
If a drain ioctl on a compressed driver has been interrupted
by a reset ioctl, we need to return a proper error code for the
drain ioctl
Change-Id: I15f42a22b1cc13b3a0e2ae873adfcd1db2ac1e53
Signed-off-by: Haynes Mathew George <hgeorge@codeaurora.org>
CRs-Fixed: 445370
When playback is paused and proxy device disabled, afe is
not closed. This results in failure of proxy port open in the second
iteration. Fix the same by closing and opening the proxy.
Change-Id: Idfa94e5756d87e59dc0101fd688d6accfe6287e7
CRs-Fixed: 447001
CRs-Fixed: 446504
Signed-off-by: Satya Krishna Pindiproli <satyak@codeaurora.org>
Update the Compander register settings to remain the default
settings after the system bootup and optimize compander
configuration sequence.
Change-Id: Ib475f3bb84414546b4ead1d3f013dc173317e1b3
Signed-off-by: Kuirong Wang <kuirongw@codeaurora.org>
- When a running WFD session is paused/disconnected, there is
a delay of about 10-15 seconds in switching audio from WFD
sink to target.
- pcm_write is blocked because pausing/disconnecting the WFD
session closes the backend DAI before a new link is established.
- Avoid closing afe if front end PCM session is still active.
CRs-Fixed: 444163
CRs-Fixed: 425512
Change-Id: I1ad6de1e201aa6130c397007219c0d370c7be2a1
Signed-off-by: Satya Krishna Pindiproli <satyak@codeaurora.org>
- Compander1 never gets enabled though the user space sets the
corresponding mixer control.
- Compander switch kcontrols are configured wrongly as integer
type with max value as 0.
- Correct kcontrol creation to fix the issue.
CRs-Fixed: 441091
Change-Id: Iad99b44c9226da3bcc1132e61ea989a0543ae56e
Signed-off-by: Ravi Kumar Alamanda <ralama@codeaurora.org>
-Non tunnel playback is use case where compressed
data is sent to driver(for decoding) and
caller expects PCM data back from the driver.
-Add non-tunnel driver for amr-wb+.
-Add support for amr-wb+ in asm driver
Change-Id: I266e70dff0466a20b0435da840a31a8a1774cf35
Signed-off-by: Ajit Khare <ajitk@codeaurora.org>
Add virtual ANC widgets which are used to enable ANC
before PA is turned on, and to disable ANC before TX is
turned off.
CRs-fixed: 387904
Change-Id: I8c2fa670062f1486499c79653a2c223f7daba84f
Signed-off-by: Damir Didjusto <damird@codeaurora.org>
During error cases, there might be situation, when slimbus channels
are being closed even when the number of active channels for
that DAI is 0. Avoid decrementing ch_act field if it is already 0.
Change-Id: Ie988eb049a20fc7cf5725ddc183ee1ae5fcb758d
Signed-off-by: Banajit Goswami <bgoswa@codeaurora.org>
-While music playback is done and PCM close sequence
is in progress, if headset is inserted this will report
headset insert to snd_soc_jack_report. But it will get
stuck here waiting for lock that is already acquired by
DAPM at PCM stream close snd_soc_dapm_stream_event.
-Change the function call used to report insert/removal
from snd_soc_jack_report to snd_soc_jack_report_no_dapm
that fixes this deadlock.
CRs-Fixed: 429766
Change-Id: I167e45bdce9790ff7e878528629c4d652029bf26
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
As the ASM session is opened in hw_param the soft volume does
not take effect. Hence move it to hw_param so its applied after
asm open.
CRs-Fixed: 434323
Change-Id: I1ce24d74382bd2c1926df2d63ff2eb40b0652f95
Signed-off-by: Asish Bhattacharya <asishb@codeaurora.org>
To support the deep buffer output, the playback buffer size is
increased to 4k from 2k. Reverting the change as the support for
deep buffer output is no longer valid.
Change-Id: I5034245bde4b55a5816506fbdfeac970a8e7804b
CRs-Fixed: 438177
Signed-off-by: Subhash Chandra Bose Naripeddy <snariped@codeaurora.org>
Modify min and max period bytes and number of periods in
compressed driver so as to be consistent with lpa and to
meet ION memory requirements. This avoids using huge
buffer sizes for tunnel decode.
Change-Id: Ib71da4cebfc097e7aeaf0ca0e65ee847ba7cceb7
Signed-off-by: Phani Kumar Uppalapati <phanik@codeaurora.org>
Buffer flags are going to be specified at allocation time rather than
map time. This removes the flags argument from the ion kernel map
function.
Change-Id: Ib983ecd0dcd7befb36287ae7037c71d4ca475f90
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
Refactor common combinations of cpu_is macros into logical
SoC class macros to reduce the maintenance burden of
implementing support for additional product variants.
Conflicts:
arch/arm/mach-msm/include/mach/socinfo.h
Change-Id: I6916dcb30378cd3ba33ea8d863403f93f62a13f2
Signed-off-by: Stepan Moskovchenko <stepanm@codeaurora.org>
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
Heap mask field passes as argument at allocation time to specify ion
heap.
Change-Id: I6951da81b11bfcb0e006d2539c1707aabbb12db6
Signed-off-by: Hanumant Singh <hanumant@codeaurora.org>
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
Update LPA platform driver to register restart callback.
The implementation of the callback is to issue a pending buffer
written by the application to restart the session when the dequeue
process is stopped due to underrun issue.
The callback is triggered from ALSA core when the framework
detects that the renderer stopped pulling data but the application
is still writing data. It runs in atomic context.
Fixes:
-A disturbance was heard when switching from one song
to the other, or when the song is paused for greater
than 3 seconds and then resumed
-This was due to the previous value of the track
volume being used in the lpa driver
-This was fixed by setting 0 as the initial volume
Change-Id: I035760937d032038fb3f3383dc87ecbdc5f4700d
Signed-off-by: Subhash Chandra Bose Naripeddy <snariped@codeaurora.org>
Populate bus vectors for the audio ocmem driver with use of new
bus device tree APIs.
Change-Id: If965c269706763a3a67b22243f265429f23427d6
Signed-off-by: Phani Kumar Uppalapati <phanik@codeaurora.org>
Signed-off-by: Rajeev Kulkarni <krajeev@codeaurora.org>
Fix issues when alloc grow, shrink requests received while display
off/on. Add return statement to the audio/voice workqueue for the safe
exit.
Change-Id: Ifda7823f68ef0f26b9fe781c4c509c7633291169
CRs-fixed: 404445
Signed-off-by: Phani Kumar Uppalapati <phanik@codeaurora.org>
Signed-off-by: Rajeev Kulkarni <krajeev@codeaurora.org>
Updating the sample rate for the compressed stream playback of the HDMI
interface through the mixer control. For APQ8064, MSM8930 and MSM8960
Change-Id: I61d598e2eff546bfc053c5301f992fb7d9ba3268
CRs-fixed: 405772
Signed-off-by: Vicky Sehrawat <vickys@codeaurora.org>
Update compressed platform driver to register an restart callback.
Implementation of the restart callback is to issue an pending buffer
Written by application to restart the session when the de queue
Process is stopped due to underrun issue.
Restart callback is triggered from the ALSA core framework when
Framework detects that the render stopped pulling the data
And application is writtig the data.
This callback will be running in atomic context.
Change-Id: Iada382f39bd052beeb0b1d165959d510fa51ff7c
Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
Update SoC framework to update the restart callback registerd
By platform driver, which inturn be used by ALSA core framework
To trigger the restart callback during the under run issue to
To recover from hang state.
Change-Id: I70f47c0d295526e7f35d4a4f9024e0e87dbc2455
Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
Enhance the multi channel pcm platform driver to support SYNC and
ASYNC mode
Change-Id: Ieca18864ce68055f7806be487b487d305bee2af8
Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
After upgrading to kernel 3.4, there is 5 second delay
at the closing of PCM playback. The delay is due to missing
EOS from QDSP6 audio session manager causing pcm close function
of PCM platform driver to wait for 5 seconds. The root cause
for missing EOS is that ALSA dynmic PCM shutdown sequence has
changed. Now, trigger stop is called on the back-end DAI-LINK.
Furthermore, back-end trigger stop is called before front-end
trigger stop. Since sink stops rendering data, data at source
will never get consumed. EOS event will not arrive. As trigger
operation has to be atomic, it is very difficult to guarantee
sequence on shutting down various modules in QDSP6. The decision
is to abandon starting and stopping QDSP6 AFE port in trigger
function. This decision is considered acceptable as playback
and capture over SLIMBUS is no longer subject to strict sequence
which Q6 AFE port must be started after CODEC configuration.
Change-Id: Ief351168b08d5cca0a76405834cf3d6aa14a3941
Signed-off-by: Phani Kumar Uppalapati <phanik@codeaurora.org>
Currently, at the end of compress audio playback, session is
terminated without ensuring compressed audio stream is completely
rendered. Use ioctl drain to drain out all the data before EOS is
signalled and session is closed. This is to make sure all the
data is played out by DSP.
CRs-Fixed: 390897
Change-Id: I3e39b210a8924180de9eb4453c6f6f6435ded0ee
Signed-off-by: Krishnankutty Kolathappilly <kkolat@codeaurora.org>
There is use case that the HDMI input goes through MI2S TX
interface to ADSP. Add 8-channel L-PCM TX support for this
use case.
Change-Id: Iaf10ec357a25fe4cf80e36a2ceba3d113e9b0416
Signed-off-by: Subhash Chandra Bose Naripeddy <snariped@codeaurora.org>
If MBHC GPIO IRQ for mechanical headset detection asserted while power
management's suspend call chain is being called, wcd9xxx_lock_sleep will
fail to wait for system's resume since power management interface has
to finish suspend in order to resume system.
In this case, interrupt cannot be handled as codec driver cannot
guarantee if underlying bus is awake.
Wake up system and resend the IRQ for this situation.
(cherry picked from commit ecf379cd17b7fe94e6f0df0598a472b6f1828ad5)
(cherry picked from commit bdda99b93915d217150f5484f9c718c905703f1e)
CRs-fixed: 404167
Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
Change-Id: Id5970b359b80e0cd1f701b30c61ade23e0f67b9e
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
When recording is started, it is observed that the pop level is
much higher than expected. Fix this issue by enabling the High
Pass Filter on microphone path with a cut off frequency of 150Hz
when recording starts and reprogram the cut off frequency back
after a timeout of 300 millisecond.
CRs-fixed: 380966
(cherry picked from commit f9ed163835d1634a86cabc233d85bfe857f0eacf)
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
Change-Id: If98dfaf0f9b8f14c306f2d6a59154a615752823b
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
When front-end PCM session is in paused state, back-end PCM
session will be put in paused state as well if given front-end
PCM session is the only client of the given back-end. Then,
even though the application closes front-end PCM session, DPCM
framework will not allow back-end to enter into HW_FREE state,
and hence back-end will never get shutdown completely.
(cherry picked from commit 6479fa2d82c5fa8b756a4755bc84e2ce48dad850)
CRs-fixed: 411089
CRs-fixed: 409894
Signed-off-by: Banajit Goswami <bgoswa@codeaurora.org>
Change-Id: I4d4f856a0401ff96cef98d374c1d12b10e124528
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
- AFE does not support sampling rate 44.1k
- This fix addresses the issue by setting backend proxy device
sampling rate to 48k
(cherry picked from commit 69ab7356a72981032d5d403ec1508dcfaeb7075f)
CRs-fixed: 413871
Signed-off-by: Jayasena Sangaraboina <jsanga@codeaurora.org>
Change-Id: Ic067178f9d4cdb51b8fee5292b960922088c8539
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
During playback of audio on earpiece path, the PA on the path
is the last component to be turned on. The turn on of PA can
cause a glitch in the output signal because the level of the PA
is not yet settled. Waiting for 20 msec after turning on the PA
avoids this glitch.
CRs-fixed: 417031
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
(cherry picked from commit 1fa994d4aa256a536523f116232c4822b3495400)
Change-Id: Iaa7a47526c71d8b037df3d09cf30ede296c21356
Signed-off-by: Neha Pandey <nehap@codeaurora.org>
PM8917 does not have speaker amplifier, hence the codec lineout
is directed to the speaker through a onboard amplifier. The
amplifier needs to be enabled in order for speaker playback
to work on a target with PM8917
Change-Id: Ic9f16d335bc1a0cef6fb1eb93c1617fd086cc5b7
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
(cherry picked from commit f6d1f7261de810bb07429c25b99187328359b8c4)
- Allow smaller buffer size for voice call to
comply with MR1 audio HAL
Change-Id: Iaffca753ad07889b08ae4b6154e8d596950a979e
Signed-off-by: Mingming Yin <mingming@codeaurora.org>
Update the call sites of cpu_is_apq8064() to include an
additional check for the APQ8064AB target where
appropriate.
Signed-off-by: Jay Chokshi <jchokshi@codeaurora.org>
(cherry picked from commit 11abd8bdf369e6ddaf5569e780f2c62180095653)
Change-Id: I3cc0ba7279ce6e111d1b87933a8f8251ca306830
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
The class H controller is embedded in the digital hardware.
Its purpose is to analyze the signal which will be sent to
the PAs (EAR or HPHL/HPHR) to adjust the supply voltage of
the PA to make the system as efficient as possible.
Signed-off-by: Kiran Kandi <kkandi@codeaurora.org>
(cherry picked from commit 4c56c594c16b5f730af3538829cae4e102ac17f5)
Change-Id: I5c269a917427cef918e06eb4599383fd725c3a92
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
The LDO_H_MODE_1 is reset bandgap off mode. This needs to be reconfigured
for audio mode.
CRs-Fixed: 378182
Signed-off-by: Asish Bhattacharya <asishb@codeaurora.org>
(cherry picked from commit 63032b49f45f61660a46acd61bbf529d62ea4d36)
Change-Id: I9fd94624619efc615141f720d8de93e21eafe97a
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
Add routes to transfer voice packets to/from the
external modem to USB in APQ, and route the mixed
audio and voice streams to the extertal modem for
echo cancellation.
Signed-off-by: Helen Zeng <xiaoyunz@codeaurora.org>
(cherry picked from commit 5cf6970f74261aecca981c1ee14e5a62e4466bbd)
Conflicts:
sound/soc/msm/msm-pcm-routing.c
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
(cherry picked from commit 0f6ff949a8dac48f7d5771fafbe366e4f4bcc28e)
Change-Id: I6be578ebeadb7ebe0ad6fb7a344eb7cb3a411eee
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
If sound card is not yet initialized the platform device's private data
is not set either. Check if private data is NULL before use it.
CRs-fixed: 400055
Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
(cherry picked from commit d6e48bd07516ecc683a995ebf8eedf080f14016d)
(cherry picked from commit 87ba6ce49d4f50ad089702135e84ecad5446bfad)
Change-Id: I94e45366d8f316ea8e69def48cc926cdd971f5a6
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
There are cases that some of apq8064 devices has soc minor version as
1 but not apq8064 i2s device. Add the machine type check to enforce
only mpq8064 and apq8064 I2S devices won't use apq8064 machine driver
and rest of apq8064 devices will keep using apq8064 machine driver.
Signed-off-by: Kuirong Wang <kuirongw@codeaurora.org>
(cherry picked from commit f993eac79891cf519f7a6ab8df274467aa9b273e)
(cherry picked from commit 3c14d0817579453170d49e3fd2d70b108e135dcc)
Change-Id: I5f21a4a3755a9f43c8d2d90f106dc24710671798
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
AUX PCM interface is a bi-direction interface which RX and TX paths
share the clock and sync word. In current design, it is assumed
when TX path is activated, RX path was enabled beforehand. So the
AUX PCM clock and GPIO pin configuration is only tied to AUX PCM RX
path. There is use case that only AUX PCM TX path is activated by
application so the AUX PCM clock and GPIOs are never configured
in this case which causes recording from AUX PCM TX failed to
capture any audio sample.
The solution is to update the clock and GPIO pin configuration to
both RX and TX path and then use an atomic reference counter to
prevent them configured twice.
CRs-Fixed: 397095
Signed-off-by: Kuirong Wang <kuirongw@codeaurora.org>
(cherry picked from commit ae395b024194bf6ae633a67dd1c2a5b3c7f1e019)
Conflicts:
sound/soc/msm/msm8974.c
Change-Id: If7f044de3cc4819e61fe66cd865755dceb5c45eb
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
(cherry picked from commit eba5065dc6a84da68e5d9bcf6cb1934324698fec)
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
The minimum channel number supported by HDMI is 2.
Set the channel to STEREO if the channel is MONO in
fixup function.
CRs-fixed: 384324
Signed-off-by: Helen Zeng <xiaoyunz@codeaurora.org>
(cherry picked from commit 12123a1c21b2e9beb469e66cc66d7b5cdd13eb2a)
(cherry picked from commit cc72e236484f1fee01ecd9a6bdf06d7bc690dc9b)
Change-Id: I153e1e0fc73523b3a1e229bd6c8eff2b8ac6e8c1
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
QDSP6 can send out of sequence response and this breaks
the no wait command tracking logic. It results the wait
command response gets ignored and causes the wait time out.
To resolve the issue, each response needs to be checked
to determine if the response is for no wait or wait command.
CRs-Fixed: 402768
Signed-off-by: Jay Wang <jaywang@codeaurora.org>
(cherry picked from commit 186115970e3a1eb38a183fccce4668500f0a7edf)
(cherry picked from commit 605a4c7f220a135709dbb933a760c356cf082bc8)
Change-Id: Ia364fcbb4f093ba683a29f8f209e9318519c4f6c
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
CODEC has over current protection(OCP) finite state
machine for both left and right headphone while CODEC
driver tries to delay reporting of OCP event after
CODEC reporting OCP two times. Current CODEC driver
implementation results in unlocking one of headphone
power amplifier when OCP reported on both headphone.
Change the behavior to report OCP event for a give
headphone immediately if OCP already occurs on opposite
headphone.
CRs-fixed: 339620
Signed-off-by: Patrick Lai <plai@codeaurora.org>
(cherry picked from commit c2d833d524c1230c72f2d078b543baba7a8db26f)
(cherry picked from commit 6b8cacf2d5ed669048c3813b56851c10fe5c5af1)
Change-Id: Iea28c8baa1a6372dcb4c0214ec0e74bfc483f563
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
Fix memory leak by releasing the dynamically allocated memory for
DAPM widget list in case of playback.
CRs-fixed: 386917
Signed-off-by: Banajit Goswami <bgoswa@codeaurora.org>
(cherry picked from commit c2b059968770de6e0fd0e37bc7877b05e7e23368)
(cherry picked from commit af7a0215387c8a92dd51ebbd824f7e2444a84c77)
Change-Id: I57e9b5a4ffe0a2ba82280ab00d03b514fa8617be
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
- GPIOs 23, 35 are used for headset mic on msm8960
- Do not configure GPIOs 23, 35 on msm8960AB target
for headset mic, as these GIPOs are used for FAN
external VDD_CX regulator control
Signed-off-by: Jayasena Sangaraboina <jsanga@codeaurora.org>
(cherry picked from commit 21c9f483e14dbb5b54ac5bf63f7d8711a157ebcb)
(cherry picked from commit 404e6428e061d11581eb949ae13e53646e925294)
Change-Id: I652f0ee07365fddd31e157b68893bcb749dbc1d7
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
While playback and capture is done concurrently the dapm widget
data is accessed parallelly which results in data corruption and
kernel panic. Fix this problem by serializing the stream event
operation by adding lock
dapm_seq_run will invoke dapm power sequence for pre-sorted list
of widgets to be powered up. Kernel panic issue is observed
during stability runs with the above sequence caused by null
pointer dereference in dapm_seq_run_coalesced. Fix kernel panic
issue by checking for valid snd_soc_dapm_context pointer in
dapm_seq_run before invoking dapm_seq_run_coalesced
Widget list in dapm is getting corrupted during concurrent
use cases where dapm_power_widget is accessed. This corruption
is resulting in kernel crash in dapm. Fix the issue by adding
protection in dapm_power_widgets API.
CRs-Fixed: 388785
Signed-off-by: Sriranjan Srikantam <cssrika@codeaurora.org>
(cherry picked from commit fd7f1ad52d7f848073c90c6a79c1d9fce1ff4ee5)
(cherry picked from commit 343e95447979b2b5592b9523c4abc8422f149487)
Change-Id: I1c91d4a55d0918e36315b9afce367e2f453ea9a7
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
- After sub system restart ACDB cannot push data to Q6
- Memory map is not happening after sub system restart, because
the calibration block address is same as the cached address.
Without memory map calibration block is sent to DSP, where it is
failing with memory map error.
- Reset the calibration block after sub system restart, so that
memory map happens after sub system restart.
CRs-Fixed: 389214
Signed-off-by: Deepa Madiregama <dmadireg@codeaurora.org>
(cherry picked from commit b71818e0ee674b2357d419c6559b5aa009d96a14)
(cherry picked from commit 9bf11c66fb6ec7c39b7cef010b7db99a79ebb6a4)
Change-Id: I9ac78f92afae6711b6eb9604c54db6303199a910
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
This machine driver implements the topology which voice
downlink/uplink streams from/to MDM are received via primary
spkr/mic I2S interfaces and internally loop back within LPASS
to MI2S interface with the other end connected to wcd9310
CODEC.
Signed-off-by: Kuirong Wang <kuirongw@codeaurora.org>
(cherry picked from commit 80f8ec49294e9698751a5afd8c33fb327f8f5b6a)
(cherry picked from commit bf8f93bc69fb3e6a7333525249984212271ca3ad)
Change-Id: I2d9140c49d14f172ae402d738ab3b6b523250486
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
Turn on EAR DAC and EAR PA at the same time to avoid pop
at start of playback.
CRs-Fixed: 386288
Signed-off-by: Damir Didjusto <damird@codeaurora.org>
(cherry picked from commit 7c85d71830e1781c113cf1d69234169e8feb31c9)
(cherry picked from commit deb584f6a8788dcda97a9d83038103ebd2576771)
Change-Id: Ib50f6a488fe93595423bae30164073cc25b90076
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
Change the reset timeout form 100 jiffies to 1 jiffy which
is used for the PLL lock timeout for cs8427 chip
CRs-Fixed: 361937
Signed-off-by: Sharad Sangle <assangle@codeaurora.org>
(cherry picked from commit 1cbe87dd6ef07013dff2e58d6d75adc1d440fe24)
(cherry picked from commit fa5ec08bb0b19b3065b6b5c2db7bc8a13b7e01a2)
Change-Id: I95049ddae148ba951b06ae4fd96f4875d929ced1
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
Support 6 channels configuration in HDMI driver
and the ALSA framework to play 5.1 LPCM format
CRs-Fixed: 370096
Signed-off-by: Aviral Gupta <aviralg@codeaurora.org>
(cherry picked from commit fc3b780b571b62f302fe38c9faaa58508ad5464f)
(cherry picked from commit 7fd4b7af623ac3dfef0b23d4e68758b1a65941d6)
Change-Id: I091cd3187e9c68eb2589c9b3412b1d8a7bb59164
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
There can be a use case where HAL may request for
Smaller period size and corresponding buffer size for
A session, update compressed driver default period size
And buffer size based on the userspace configuration
Signed-off-by: Aviral Gupta <aviralg@codeaurora.org>
(cherry picked from commit d4e62aeb8839cf9accf2356568a14adb8d24152f)
(cherry picked from commit 462a09e10e32afb49ca50bdbfb8c4a4e13cc068a)
Change-Id: Id1aef6c71c5c71b269b6607816f7c3e5c4fd4314
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
When the Application pointer is same as hardware pointer, the dequeing
from DSP chain will be broken to start the session again there should
be trigger called explicitly from the user space, to avoid resending
the trigger command from the user space.
Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
(cherry picked from commit 5bb19ee2b22ca42e708da052517853496fc5b98d)
(cherry picked from commit d5d591f945b25b82a7177a6b466387fbc9b1bf93)
Change-Id: I42bb47de76e3f9368188161b5a1a71734fec3b6e
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
Add Async write mechanism for multichannel PCM platform driver.
This will facilitate to have meta data information flow from apps
To DSP and vice versa.
Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
(cherry picked from commit 69f2b8ac7106fe5d5fa19ee12131c27efc8e5ec1)
(cherry picked from commit 45e605da5fd57e07609657c0fac43853d3d0658e)
Change-Id: I6a931b4458f14b64040eb7502aee26250938ba9d
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
When 100KHz level shifter is enabled this is causing an i2c
Failures for the tuner chips sitting on the same bus, to avoid this
Errors the spdif 100KHz level shifter should be disabled when
The i2c read / write of cs8427 chip is not in use.
How 100KHz disabled is, as and when the driver tries to do I2C
Write / Read Level shifter is enabled and disabled after i2c
Read / Write is done, This is done for every read / write i2c
Transfers on cs8427 chip, though it adds and over head of enabling
And disabling level shifter every time, this is the only better way
To address this.
CRs-Fixed: 390239
Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
(cherry picked from commit 3896ed363d0958bde89de2f31709616eb96cb489)
(cherry picked from commit a6fa21f13dac271fc6b9ba971f9746b5fe0d7093)
Change-Id: If0c953771295aac9ddfc2b72389ed30e94fedb9b
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
Setting the LPCM as default format for the compressed driver.
It is needed for the HDMI IN compressed use case, where we are
not aware of the format beforehand
Signed-off-by: Aviral Gupta <aviralg@codeaurora.org>
(Cherry picked from commit 7e259d841857f06951c41c1159e95bb4b343602f)
Conflicts:
sound/soc/msm/msm-compr-q6.c
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
(cherry picked from commit 390ef43a8103c52273614e09ed1e5e8ceab97f04)
Change-Id: I2d380e97e3225e1b6cb3250d10ca016f8fcc4b1e
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
Current GPIO debounce time is too long so it delays next button
press detection. Reduce this debounce time so driver can detect
next button press and release quickly.
Typically mic voltage ramps up within few milliseconds after button
release so 50ms is long enough.
Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
(cherry picked from commit db606b0a39452c90e26692c22300c390f5822f29)
(cherry picked from commit 96e92e0a22a0c54f9cfda447d346c1a2dd9f4639)
Change-Id: Ibf0aa4d4c07fab9cd50021cb0e256ee23b320059
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
After the inserted accessory is detected as a valid headphone,
polling is performed on the microphone to correct the accessory
detection in case it was wrongly identified as a headphone.
It was observed that at the end of polling, headphone removal
interrupt was fired, causing headphone playback to stop. Fixed
by deferring the headphone removal setup until either polling is
complete or polling detects a removal
CRs-fixed: 384967
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
(cherry picked from commit afc86431f330ee51f7980b620bef75935422c764)
(cherry picked from commit f87a8b2658964249917c815719d15abedd03771e)
Change-Id: Ic2c04aa300fc029957c71294e153aef479967b84
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
Upadate the multichannel driver period size to accomodate the
8 channels with 1536 bytes for each channel in HDMI IN use case.
Update the channels of wma according to the structure populated
by the HAL
Signed-off-by: Aviral Gupta <aviralg@codeaurora.org>
(cherry picked from commit 572d504a7a57d521bd5a823a3bb8a443ac34842a)
(cherry picked from commit a955dd94918bc4241d28053d8f6587b1c055238a)
Change-Id: Id043cbf07ff1b8a80ac0961ddeff0c1d3ff1283b
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
While playing a file via tunnel mode, the timestamp was not getting
updated in the seekbar.
Provide a fix for this by parsing the lsw and msw timestamp
correctly before being sent to userspace.
Signed-off-by: Harmandeep Singh <hsingh@codeaurora.org>
(cherry picked from commit 3377a88c4b4e7b71abd09e2bf66c1844743c329f)
(cherry picked from commit 0c5d9b68488f318538caa7ada53ed6fbb1a2309f)
Change-Id: I0f94e07e43f922ceeb59a83c9628fa47cd17ef4e
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
Add the fixup function for the SEC I2S backend to
configure the number of channels to 2 and
sample rate to 48000Khz.
CRs-Fixed: 395160
Signed-off-by: Aviral Gupta <aviralg@codeaurora.org>
(cherry picked from commit 695c30beb5b12f7f4b1169e6c65a1c67bef03c19)
(cherry picked from commit cb3b26e043e1e32a543d799e1ba37a0e882f1aa6)
Change-Id: I670881282655e20059ed7fa039f575b6411366bc
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
All msm_ion clients need to use <linux/msm_ion.h> instead of
<linux/ion.h>
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
(cherry picked from commit 71a6ac9d4fc5e88efd57c2077caaff34afa36603)
(cherry picked from commit 353fac8a22a0253e990c745232d45586adb0defb)
Change-Id: I26165047d3361802ff3957b54a645544a8e9c3b5
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
- Add the support to report lineout device when inserted plug
has high impedance on microphone line.
- This feature is enabled only with gpio headset detection.
Signed-off-by: Ravi Kumar Alamanda <ralama@codeaurora.org>
(cherry picked from commit 07b6bd6a9a1e431a86efa76b14030d882ee7771b)
(cherry picked from commit 39c0e134f67fcab824f1457a256c4fbf2525c347)
Change-Id: I6d4e3f147433ee9c0cc313118b540fee0b90f45f
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
Compressed data in HDMI IN or VCAP usecase is propagated with
timestamp from DSP with each buffer. For playback, the same or
interpolated timestamp is updated with the corresponding buffer.
DSP will render the buffer a) without any delay if timestamp mode is
synchronous to absolute timestamp b) with a delay if timestamp is more
than the absolute timestamp c) drop the buffer if the timestamp is
less than the absolute timestamp. Add support for the same.
Signed-off-by: Subhash Chandra Bose Naripeddy <snariped@codeaurora.org>
(cherry picked from commit aa1f5e51dbc251dc758a1f762802d87d4f2128b7)
(cherry picked from commit cb209b8f0bddcedaf26a181f20de696e4ad729bc)
Change-Id: I5b7b2cb405f72ea9afa4751c6a92cde09f40d69c
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
With shared data channel architecture, SLIMBUS driver
only removes slimbus channel when all clients vote to
have channel removed. In case of subsystem restart,
client such as MDM can go down without withdrawing
vote. During CODEC path shutdown, CODEC driver will
receive slimbus slave interrupt in time indicating
port disconnection because slimbus channel has not
be been voted off. Then, CODEC driver blindly
shutdown rest of CODEC path. This results in
overflow error on Rx path and underflow error on
Tx path. In case of time out waiting for port disconnect
interrupts to arrive, force ports to disconnect
Signed-off-by: SathishKumar Mani <smani@codeaurora.org>
BUG-ID: 7313016
The shared channel number can be overwritten by front-end
DAI's channel setting. Add fixup function to set the correct
channel number based on recording mode in the machine driver.
Signed-off-by: SathishKumar Mani <smani@codeaurora.org>
BUG-ID: 7313016
- Kernel messages are getting flooded with warning
messages when no valid routing found from source
to sink
- Ratelimit the warning messages
Signed-off-by: SathishKumar Mani <smani@codeaurora.org>
- Current implementation supports only fixed buffer size
of 320 bytes only for audio recording. This results in
performance overhead for recording at higher sample rate.
- Added support for flexible period size so that user can
use larger buffers for recording at higher sample rates.
Signed-off-by: SathishKumar Mani<smani@codeaurora.org>
Signed-off-by: Iliyan Malchev <malchev@google.com>
With the recent change in tabla shutdown, turning off the clocks
were being taken care after all the slimbus ports are closed.
But, there are instants where tabla startup is being called
during bootup, which keeps the runtime PM votes running,
and as there are no ports open, clocks are on all the time,
due to one of the votes. Bringing back tabla shutdown, but
turn off the clocks only if there are no slimbus ports
open at the time of shutdown, else it will taken care when
the slimbus ports are getting closed
Change-Id: Iaa9378b171d7c169a0f3306d55698e18d28dd111
CRs-fixed: 390003
Signed-off-by: Swaminathan Sathappan <Swami@codeaurora.org>
Signed-off-by: Ajay Dudani <adudani@codeaurora.org>
- Increase default buffersize to 4k from 2k for audio playback
when HAL is configured with deep buffer output.
bug-id: 7129131
Signed-off-by: SathishKumar Mani <smani@codeaurora.org>
- Small buffersize is resulting in scheduling issues.
- Increase max buffer size so that user space can
configure large buffer size to avoid scheduling
issues.
bug-id: 6865729
Signed-off-by: SathishKumar Mani <smani@codeaurora.org>
- Speaker warm-up time is too long(over 100 ms) due to big delay
(16*2ms for mono and 16*4ms for stereo)after lineout PA enabled.
- Measured by "adb shell dumpsys media.audio_flinger |grep measuredWarmup",
speaker warm-up time is reduced to ~70-80ms
Signed-off-by: SathishKumar Mani <smani@codeaurora.org>
bug-id: 7022794
Update platform driver open function call to access
audio_client pointer only after allocation to avoid crash.
Signed-off-by: SathishKumar Mani <smani@codeaurora.org>
ALSA framework in kernel 3.4 requires all CPU DAIs to be routed to
the repective back-end input or output. Add the routing for STUB_1,
SLIMBUS_1, SLIMBUS_3, and SLIMBUS_4 CPU DAIs.
It is from QCT
Change-Id: Ia7b76ce04b4e19f2f0e9acf9886361e3d113cef6