- Tinyalsa doesn't expose an api to call
ioctls exposed by the audio drivers.
- Add pcm_ioctl() api to support pcm ioctl.
Change-Id: I448252e8d3347257a73c56bc8ed341abc2dd2dab
- Remove AUDIO_DEVICE_OUT_ANC_HEADPHONE and
AUDIO_DEVICE_OUT_ANC_HEADSET in hal.
- These devices are not used
Change-Id: Ib8692906edb3460a6325adcf3c3cce9ef4641120
Add support for concurrency handling between number of
listen capture session and playback activity.
Change-Id: I4a0656f240c62f2cc6266a714a96fdcdc13ae9d8
Fix the minor issue in function of query_platform. The 'else' is
missing, which causes that the mixer_paths file name of all the
8916 boards will be overwritten by the default one.
Change-Id: If105e38537f5d4d5d3f52dfc64ac62f11e829bbf
CRs-Fixed: 668629
- 8-10sec delay observed when FM is turned off/on from UI post SSR with
touch tones enabled. If any new input request comes before FM is closed
post SSR, pcm driver assumes AFE is still active and starts pumping data
to AFE which is already closed due to SSR causing the delay
- Fix is to close FM session during SSR
CRs-Fixed: 673031
Change-Id: I4a55c6ca66d94e633e768b1d40584d5a5782e13e
- Single mic device would be seleted in camcorder, even if
the dual mic enabled.
- In camcorder, the input device was force to select
SND_DEVICE_IN_CAMCORDER_MIC, which is a singal mic.
- Fix by selecting dmic device as input devices in camcorder,
Only when the fluence type is dual mic and the channel
count is 2.
Change-Id: I4f6b7d54a3e7e6ddb98355d20c4bc28466905550
CRs-Fixed: 669982
- update audio feature flags to use
AUDIO_FEATURE_ENABLED_XXX instead of
AUDIO_FEATURE_DISABLED_XXX.
- These feature flags are defined
by target board config file
Change-Id: Iba482d8b72bfa2675877d833d7abcb93d4cf4907
To comply with multi-arch build system changes for 64-bit support,
LOCAL_MODULE_RELATIVE_PATH needs to be used.
Drop explicit use of LOCAL_MODULE_PATH, and use relative path to
avoid build system to overwrite one of multi-arch library variants
with the other arch variant.
Change-Id: I21f9b952a79c3930b15ff5549ac3c21ca827cc3a
- All VoIP, compress, deep buffer, record usecases need to close
before voice call setup and don't allow these usecases during
voice call on 8916.
- setMode(IN_CALL) itself is not sufficient to know if we are
in actual voice call.
- Add keyvalue parameters support to know if we are in voice call
and policy hal can query the same and make decissions based on it.
CRs-Fixed: 662804
Change-Id: I20d660fadd07c4d227a7e3dfe356fc39806ca167
pcm driver supports pcm_close during SSR, so reverted
HAL code to block pcm session close during SSR.
CRs-Fixed: 663477
Change-Id: I752e3f4f55288f91294e090b974ba1367c27122d
The stream's output rendering policy requires calibration to be
sent when stream routing configuration is set instead of the
device enable as each stream can have it's own routing with
different calibration needs.
Change-Id: If8bd365c4a6c616ed86b9383ba540ee8e28c4079
-Issue: Voice call audio is not routing to BT headset
though connected, till the waiting call is ended.
-Rootcause: During voice call, if another call is received, the
audio mode is changed to MODE_RINGTONE. Due to this, the primary
output on which the voice call is setup, is not able to find
new device as BT in getNewdevice().
-Fix: Avoid mode change to MODE_RINGTONE when voice call is already
active.
Change-Id: I38582e2500ff4c44eb5ac45dab3aab35606d1c7d
CRs-Fixed: 662883
- When an incoming MT HFP call is accepted during an ongoing
MO HFP call, the MO call goes to held state. Later, if this held
call is rejected, Tx is not heard at the far end of the incoming
call from the moment the MO call is rejected.
- When the held call is rejected, the input device gets disabled due
to which Tx samples are not captured.
- Fix the issue by ensuring that the input device is not set to none when
HFP is active.
CRs-Fixed: 656928
Change-Id: I657b7e2ffbc571dfbc0b10ffced07fdb3f008532
- When an incoming MT HFP call is accepted during an ongoing
MO HFP call, the MO call goes to held state. Later, if this held
call is rejected, Tx is not heard at the far end of the incoming
call from that moment.
- When the held call is rejected, the input device gets disabled due
to which Tx samples are not captured.
- Fix the issue by ensuring that the input device is not set to none when
HFP is active.
CRs-Fixed: 656928
Change-Id: Ie3f0886c0412bfdb3e450c54e9f4b651e992f84e
New machine driver has been added for msm8994. Update PCM device IDs
for voice use cases accordingly. This change is needed to support
voice use cases on msm8994.
Change-Id: Iba5f9423fe99668ccfe3a692c2a3148977d4dfc2
For the usecases where individual streams have to be rendered
through different post processing chain on DSP an output policy
is defined. The output configuration is read from the
output policy file based on the stream atrributes to render the
playback appropriately.
Change-Id: I095592013ffa5b04bea69254026ebb78e2934822
- Added SSR event handling support in HAL
- Added support to drop incoming pcm data for pcm playback
usecase during SSR
- Added support to send dummy input(mute/zero buffer) for
record usecase during SSR
Change-Id: I158b62fa443bb523091128fe1308c9a9b1415502
Add dolby audio_extn API's to set dolby license.
License needs to be set with dsp everytime it is loaded.
Change-Id: I21d58a21d65c823469d066f4ba5edc5b2660ea1e
-When voice call interrups ongoing voip call, voip call goes
to hold state and voice call becomes active. During voice call end
stop_call is not being called because mode is not set to MODE_NORMAL.
Voip call becomes active and mode is set to MODE_IN_COMMUNICATION
after voice call end.
-Fix this issue by removing the dependency on MODE_NORMAL to end
voice call.
Change-Id: I0103f5c6833fb929cb7975f838bc2c5ec4d94313
CRs-Fixed: 633437
- Unable to apply the mute in MT SIP call during Voice call
in CALL_HOLD.
- Mute is only applied if the voice call state is INACTIVE.
Thus when SIP call is made during Voice call in CALL_HOLD,
the mute is not being reflected.
- Fix this issue by checking voice stream type to allow
the mute to be applied.
Change-Id: I3af5225edd8e9a4123867b647de9405d5c4b9efc
CRs-Fixed: 642893
- configure output HDMI channel count based on sink
capability when audio.use.hdmi.sink.cap is set to true
CRs-Fixed: 656308
Change-Id: I3dd3226054c68a69a2c29f8bb2f9c27e429ad2dc
Remove update_mixer (as its unused) and change function signatures
wherever used.
Remove code chunk to set BT sample rate before enabling device as
thats part of the mixer path file now.
Change-Id: I5eb3bce5183acf505596be2b0ec93cdbd728bdaa
CRs-Fixed: 581453
1) Update enable/disable device and route to use the new APIs.
With this change, mixer controls will be updated in the order
listed in mixer paths XML file.
2) update_mixer is now an unused var.
Change-Id: Ic0a8874e4a2080347cfa0c2e66af606a08a207a7
CRs-Fixed: 581453
- ACDB loader is maintaining the same calibration buffers
for both listen and audio. So there is a possibility that
the audio calibration buffers may be overwritten with listen
calibration soon after notifying the device busy state to
listen hal
- Avoid this issue by notifying listen hal before sending the
audio calibration so that listen hal can complete pushing its
calibration
Change-Id: I4d954b1287b59ee4e1510707db25f466d14dca97
- Ensure all the mutex locks are initialized before using them,
to avoid native crashes.
Change-Id: I7b6253f1d08a36a24d366d69004ce969d73c13e1
CRs-Fixed: 654375
- FM audio is enabled or disabled through set_parameters() API
on primary output stream. The audio is routed to device of
primary output stream.
- If the routing is not updated before the enable command, the
audio is routed to previous device of primary output.
- Fix the issue by updating the primary output device with device
from enable command.
Change-Id: I67764b8b5d2cfaddef94ccfe555702289bf36f95
CRs-Fixed: 651821
- When VoIP call is active on non-BT device and if the music playback
tries to switch to BT device, it will continue to route to non-BT
device on which the VoIP call is active already.
- Fix the issue by not selecting VoIP devices for audio playback when
they are on different back ends.
Change-Id: Iff9251fcf02f897d9b1cdc17fcf27c262518ada8
CRs-fixed: 652129
APQ8084 uses an external chip for FM. Add support for
mixer control for external FM volume control.
Change-Id: I296d0b32fce632a296057e6d7b48698d9b0648fe
- snd device reference count is not decremented when usb headset is
unplugged, because touch tone is still active on usb headset.
So when usb is plugged again device routing is not triggered as
present and prev devices are same
- Fix is to route audio to speaker as soon as usb headset is
disconnected
CRs-Fixed: 630425
Change-Id: Idfa37478fa19cd5a1c75c7e1d2f77b4dc02b311a
- adev_open_output_stream() fails if the use case is already enabled.
Because of this, in case of VoIP, when the input stream is created
and started before creating Audio Track, then the output stream
creation fails.
- Fix this issue by giving exception for VoIP use case.
Change-Id: I5e7329d64075a09b99e5760a9050ace8c62a4e87
CRs-fixed: 651761
Echo cancellation is not working in VoIP calls.
Echo reference port is set as I2S_RX which inturn sets
PRIMARY_I2S_RX as echo reference port while configuring
ADM is causing the issue.
8x10 is using SECONDARY_I2S_RX port in Rx path. Update
the EC reference port accordingly.
CRs-Fixed: 646310
Change-Id: If949c6c7487c36a02e5bcedb3c779f502592ce64
In Skype call, observed no rx data when headset is inserted
during call.
During device switch from handset to headset, audio HAL is
enabling the headset mixer controls first then disabling
handset mixer controls leading to no audio during downlink
as codec clock in 8916 is disabled due to the followed
sequence.
The current device switch logic doesn't make sure that all
previous devices are disabled before enabling the selected
devices. Fix this by changing the logic to disable all the
previous devices first and enable the selected devices.
CRs-Fixed: 648710
Change-Id: I0adfb62ea0ad8e2a2fe1a5473732e8bef61c492a
-BT sample rate should be set before opening BT SCO output
or input device. Currently it is set only for output device.
-Set sample rate for BT SCO input device also
Change-Id: I356557a727f5946ff3b4eb89ea16e4c16d84d21c
- Correct the fragment size to use bytes instead of bits
per sample
- Use 80ms as pcm offload buffer duration for video streaming
usecases and 1 sec for video + audio usecases
Change-Id: Iec8e24c2b158368742a55710a46da94ce5d3c170
Ensure reference device is set if audio is routed
to speaker/headset during HFP usecase.
Change-Id: Ia17371727b7c8f158bc2951d0d433416b7867458
CRs-Fixed: 641513
For APQ8084 voice call use-case, Adaptive ANC (AANC) is used
by sending an appropriate flag to CSD for enabled AANC.
Change-Id: Ifc4609c16ef3c5d905628ff22853fc44fd81a73a
- Ensure reference device is set if audio is routed
to speaker/headset during HFP usecase.
Change-Id: Ia404aaa8ec8b80e9f4be14840dfef3bf9afef435
CRs-Fixed: 641513