summaryrefslogtreecommitdiffstats
path: root/audio/audio_hw.c
Commit message (Collapse)AuthorAgeFilesLines
* audio: acquire lock in adev_set_voice_volume()Eric Laurent2012-06-191-1/+3
| | | | | | | | | | Acquire the audio device mutex before calling into ril library in adev_set_voice_volume() to avoid concurrency with other calls to ril from select_mode() or set_incall_device(). Bug 6626532. Change-Id: I2347477b39ce46137a654047266b70dd691c021c
* audio: fix in call audio path switch issueEric Laurent2012-06-181-1/+4
| | | | | | | | | | | | Switching from BT SCO to earpiece does not seem to work when in call and an output stream is active. This change modifies out_set_parameters() to force the output stream into standby when a new audio path is selected while in call. Bug 6676684. Change-Id: I2817f80ea3fa3a0e00e9705fdb6d9a7e3183549b
* audio: workaround for hdmi multi channel swapEric Laurent2012-06-111-0/+11
| | | | | | | | | | Workaround for HDMI multi channel channel swap on first playback after opening the output stream: force re-opening the HDMI pcm driver after writing a few periods. Bug 4282214. Change-Id: Ibe1452a8905a27bc3f95564a45cfb9bb490b65ae
* audio: add support for multichannel HDMIEric Laurent2012-06-011-13/+241
| | | | | | | | | Added a dedicated audio output stream for multichannel HDMI. This output stream is used when an HDMI sink supporting 6 or 8 PCM channels is connected and 5.1 or 7.1 multichannel content it played. Change-Id: I7ad1cd6be4c2b3a9e24a4811aa87e7223badedc4
* audio: variable deep buffer sizeEric Laurent2012-05-141-20/+92
| | | | | | | | | | | Add back the capability to change the deep buffer size according to screen state. This solves various issues related to audio focus, volume and pause control that arise with large audio buffers. Those issues should be ultimately addressed by changes in the audio framework. Change-Id: I6889ecf0e5d8740745152261f27343e1ff533e7b
* audio: fix media volume issues.Eric Laurent2012-05-101-24/+88
| | | | | | | | | | | | | | | Fixed 2 issues with media volume: 1 - since we use mm port for music and tones port for other use cases the digital volume should be applied to both "DL2 Tones Playback Volume" and "DL2 Media Playback Volume". 2 - the total gain applied to audio originating from the AP is the combination of digital gain in ABE and analog gain in codec. Some use cases like telephony have a higher priority than media and apply a different (higher) analog gain. As this analog gain is common to all sources, digital media gain should be adjusted accordingly to avoid volume bursts while in call and playing music. This is particularly important in speaker phone mode. Change-Id: I90200282edca7098603edca2d56821290988cb20
* audio: fix memory leak.Eric Laurent2012-05-021-4/+8
| | | | | | | Fixed memory leak introduced by commit 4e7a573f in case of error in adev_open_output_stream(). Change-Id: I4acc070d748cea228da846f95c7826160e0196a5
* audio: add support for deep PCM bufferingEric Laurent2012-04-301-121/+230
| | | | | | | | | | | | | | | Implement one output stream with short buffers and one output stream with deep buffers. The stream with short buffers is selected for most use cases and provides short latency. It uses TONES_DL port and IOCTL write mode. The stream with deep buffers is used for music playback. It uses MM_DL port and MMAP NOIRQ write mode. The deep buffer stream is not used when the device selection is BT SCO, HDMI or SPDIF. The echo reference is only taken from the short buffer stream. Change-Id: I60ef720e52e96970b8b6618f9f43f24baadce60b
* Adjust output buffer size and sample rateGlenn Kasten2012-04-271-10/+78
| | | | | | | | | | | | Use 4 buffers of 96 frames each = 4 ms at 48 kHz. Keep the 44.1 kHz -> 48 kHz up-sampler in HAL. Disable mmap mode and non-IRQ mode; this gives better variance for cycle times. Reduce number of buffers from 4 to 2, works OK in non-mmap mode but not mmap mode. Update comments based on code review. Tested with audio input. Not yet tested with echo cancellation. Change-Id: I69db00ab408cd2aad5788d602eb01fc0c7e4e78b
* new audio device API version.Eric Laurent2012-04-161-23/+26
| | | | Change-Id: I1169d279b4a59355cf4362a7128b053bf940c158
* audio: add dual mic support for pre processingEric Laurent2012-04-101-101/+584
| | | | | | | | | | | | | | | | Added support for audio pre processing libraries implementing dual mic solutions. When a pre processor is enabled, its multi channel capabilities are queried and compared to capture channel combinations supported by the device and other enabled pre processings. The most favorable configuration is chosen and pcm capture driver is restarted with the appropriate channel config. Also made various capture and process buffers naming and allocation more consistent. Change-Id: I90be4798951d0a34dc77d6bdc93ef15cad3ff5af
* audio: fix audio drop when speaker is selected 2.Eric Laurent2012-04-021-1/+2
| | | | | | | | | | | Commit 78a7609d fixed audio drop at the start of ringtone. This commit fixes another similar issue with camera shutter sound being dropped while in call over headset. There was a workaround for this second issue in audio policy manager but this was not satisfactory as it was impacting all devices for a problem that is Prime specific. Change-Id: I42b37c7da4a232323b520a8a55ac5b3086b5a230
* audio: fix error in capture path delay calculationEric Laurent2012-04-021-2/+5
| | | | | | | | Fix error in get_capture_delay() that was not taking into account the fact that frames in in->buffer are at driver sampling rate while frames in in->proc_buf are at requested sampling rate. Change-Id: I09e627bd316daedab5ffea3dd638254eaa270a5b
* am d28a1a80: am 467c02b6: am 78a7609d: audio: fix audio drop when speaker is ↵Eric Laurent2012-03-201-0/+12
|\ | | | | | | | | | | | | selected * commit 'd28a1a802b1965ab4b9014c658240faafe219994': audio: fix audio drop when speaker is selected
| * audio: fix audio drop when speaker is selectedEric Laurent2012-03-161-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | When changing audio path to speaker while playback is active, several hundred ms of audio are dropped. This is mostly noticeable when a ringtone starts playing. This change is a workaround forcing the output in standby when speaker is selected. The root cause must still be indentified and fixed. Change-Id: Idef8dc1cdbf2da499a414d0b60244f91ef66e73b
* | audio_channel_in_mask_from_countGlenn Kasten2012-03-151-5/+1
| | | | | | | | Change-Id: Ib1d5af6687479c8d189a3407c229a6ac0ed5c03b
* | Fix memory leaksGlenn Kasten2012-02-141-1/+2
| | | | | | | | Change-Id: If9c95a4808785e58ee4595e5c762d01d87f1936d
* | resolved conflicts for merge of 8c61349a to masterSimon Wilson2012-01-261-48/+117
|\ \ | |/ | | | | Change-Id: Id432e901f8107a00a7f371e5882b1290a1154961
| * audio: support multiple output PCMsSimon Wilson2012-01-251-48/+117
| | | | | | | | Change-Id: I5179699b22224473bd158e90f864e4e73895b5dc
* | Use audio_format_t consistentlyGlenn Kasten2012-01-201-9/+9
| | | | | | | | Change-Id: I2e2a5f625956dc5d09dbdc3f6f2d9a010ecc7bad
* | Turn off execute bitGlenn Kasten2012-01-181-0/+0
| | | | | | | | Change-Id: I711920dde1560ca202ef878ee93a2af61545524b
* | Use audio_mode_t consistentlyGlenn Kasten2012-01-121-2/+2
| | | | | | | | Change-Id: I7a30fe3f66933aed8b5a6185553112575b4de1a7
* | Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGESteve Block2012-01-081-11/+11
| | | | | | | | | | | | | | See https://android-git.corp.google.com/g/#/c/157220 Bug: 5449033 Change-Id: I2e1c43800c19b718cc7ee94ec299c62bc14873b4
* | Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGESteve Block2012-01-061-2/+2
| | | | | | | | | | | | | | See https://android-git.corp.google.com/g/157065 Bug: 5449033 Change-Id: I02cfaca251935e4a50ad4302a72c4273be41db22
* | am 31688e73: am 7a170e19: audio HAL: release audio pre processing buffers.Eric Laurent2011-12-131-0/+4
|\ \ | |/ | | | | | | * commit '31688e73c947845cea86079aefa2dfab68b56c93': audio HAL: release audio pre processing buffers.
| * audio HAL: release audio pre processing buffers.Eric Laurent2011-12-131-0/+4
| | | | | | | | | | | | | | | | | | Buffers allocated for audio pre processing are not released when an input stream is closed. Issue 5753047. Change-Id: Ie8fd5f49d97e9bebc70fc38de0844a79074ac526
* | audio: delete unused ril-client API.UK KIM2011-11-101-1/+0
| | | | | | | | | | | | The clock sync func is unused for both HSPA and LTE device. Change-Id: Ia9f369a0151cb3bb15242544e5f5442b893253bc
* | am ec429c13: Merge "audio: force speaker route for call when docked" into ↵Simon Wilson2011-11-021-3/+6
|\ \ | |/ | | | | | | | | | | ics-mr1 * commit 'ec429c1320e97145b42a8f334ed5506d316bb412': audio: force speaker route for call when docked
| * audio: force speaker route for call when dockedSimon Wilson2011-10-311-3/+6
| | | | | | | | | | | | | | | | | | | | | | As we did for the HDMI audio case, force the speaker route for calls when in a digital dock because we cannot directly route the modem audio output through the S/PDIF output because it is a McASP device. Fixes bug 5434090 Change-Id: I52ff7877a8be778b9e74eebb3ad2c9f13b634bca
* | am 56e8b292: am e6f399a5: audio: decrease headset gain by 14dB for ringtone modeUK KIM2011-10-261-0/+3
|\ \ | |/ | | | | | | * commit '56e8b292cb2aa15804eb436d48c71e1a98b36550': audio: decrease headset gain by 14dB for ringtone mode
| * audio: decrease headset gain by 14dB for ringtone modeUK KIM2011-10-261-0/+3
| | | | | | | | | | | | This is to prevent audio shock in AUDIO_MODE_RINGTONE. Change-Id: Ic21c347a64ee0e2668dbff49dc6addcb93e4d82f
* | Rename LOGV(_IF) to ALOGV(_IF) DO NOT MERGESteve Block2011-10-261-5/+5
|/ | | | | | | See https://android-git.corp.google.com/g/#/c/143865 Bug: 5449033 Change-Id: Iab0aa050fba57491f5cb7ed928f44a0fda7d1ea4
* audio: Fix pop noises during call switch to the modemvenkappa mala2011-10-201-2/+22
| | | | | | | | | Mute and unmute VX_UL gain to avoid pop noises in the tx path during call switch to the modem during the switch it means when audio path changes(Example: Analog path switches from EAR<->HS<->HF). Change-Id: I567d4156a5b9aa7b51d068fe279f942376a5a40c Signed-off-by: venkappa mala <venkappa.m@samsung.com>
* audio: final audio gains following tuningSimon Wilson2011-10-201-45/+87
| | | | | | | | - new gains for toro and maguro devices for various use cases. - use of DL2 digital gains to compensate for lack of range in codec speaker volume. Change-Id: I4ff1ebe79aa53934720389fbef5f60b9c0cc2138
* audio: enable DL2 mono mixer only for speaker/mediaSimon Wilson2011-10-201-12/+11
| | | | | | | | | | Mono mixer is only strictly required for downmixing stereo media content to the mono speaker, so only enable it then. This works around an issue with modem rx mute when using handsfree. Fixes bug 5481245 Change-Id: I8e4c5400241a0d8bb8d74966b6f612b7bab56301
* audio: increased low power playback buffer size.Eric Laurent2011-10-201-10/+12
| | | | | | | | | Defined new audio buffer sizes to help increase periods of idle CPU with new scaling governor settings. Related to issue 5486806: mp3 playback power re-regressed... Change-Id: I5f0f54d0ef8e189c2e3ac84bf8eed4bafece9111
* audio: use 4Khz LPF in DL1 while in voicecallChangoh.Heo2011-10-191-7/+30
| | | | | | | | | Some metalic noise is happened on headset, earpiece voicecall. Especially, The noise can be felt easily in woman voice. If we use 4Khz LPF, the noise is gone. Change-Id: I106efd89af2b84fad40314c8c07b5f0aa7901c8b Signed-off-by: Changoh.Heo <changoh.heo@samsung.com>
* audio HAL: low power playback off when capturingEric Laurent2011-10-181-1/+1
| | | | | | | Disable low power audio playback when audio capture is active even if screen is off to avoid high latency during SIP calls. Change-Id: Ib559bf2877b0cf89731e039b1bfab2bc3806f56a
* audio: enable DL2 mono mixer for speakerSimon Wilson2011-10-171-0/+7
| | | | | | | | Since the speaker is only connected to the DL2 left channel, downmix all DL2 audio from stereo to mono to avoid losing information. Change-Id: I8f536d3373b5517682722422df648d9d8050b840
* audio HAL: support for low power audioEric Laurent2011-10-141-42/+96
| | | | | | | | | | | | | Implement a mechanism to dynamically switch between short and long buffers in kernel pcm driver. Using long buffer significantly decreases power consumption at the expense of latency. Therefore a hint is given to audio HAL by AudioService indicating when the screen is off and low latency is not required any more because neither video playback, VoIP/video chat or any user interaction is expected. This mechanism relies on the support for MMAP and NO IRQ write modes in tinyalsa. Change-Id: Ida9216a141750137a0592187e24a68f263ef3fbe
* audio HAL: change ALSA period sizeEric Laurent2011-10-131-2/+2
| | | | | | | ALSA period sizes must be a multiple of 24 frames to match ABE requirement. Change-Id: I52ac1d5d4a2588a1b66100bfecab6d35339fc718
* audio: bypass resampler for HDMI audioSimon Wilson2011-10-061-22/+32
| | | | | | | Native 44.1kHz will be used for HDMI audio since the output device supports it. Change-Id: I60eebf2556c0384e2a4c21150bee2fbbbd5ca6fd
* audio: add locks, only tear down PCMs when needed for WB AMRSimon Wilson2011-10-061-5/+10
| | | | Change-Id: I03ba325b613aef21dba8d16187aaccca08d2a328
* am fcb204e9: Merge "Fix issue 5415809: increase HP volume for TTY." into ↵Simon Wilson2011-10-061-9/+18
|\ | | | | | | | | | | | | ics-factoryrom * commit 'fcb204e9329241047ed7564c4808440f62a5c580': Fix issue 5415809: increase HP volume for TTY.
| * Fix issue 5415809: increase HP volume for TTY.Eric Laurent2011-10-061-9/+18
| | | | | | | | | | | | | | Increase headphones volume to -2dB when TTY mode is full or VCO as per Samsung's request. Change-Id: I92da179b487c87d07bc363f7344c20cc8779abd6
* | audio: route to S/PDIF when digital dock detectedSimon Wilson2011-10-051-6/+16
| | | | | | | | Change-Id: Ia571fca8e0ce384283a15024b6b271231bf86479
* | audio HAL: fix echo reference.Eric Laurent2011-10-051-1/+1
| | | | | | | | | | | | | | | | The number of frames written to the echo reference buffer in out_write() was wrong. As we write frames at the audioflinger sampling rate we should write the number of frames passed to out_write(), not the number of frames passed to tynialsa after resamopling. Change-Id: Ia6a1c7e090c73e1566634a17b720e1e6049b22fe
* | audio HAL: fix start_call() error handling.Eric Laurent2011-10-051-3/+3
|/ | | | | | | | In case of an error when opening the modem pcm driver in start_call(), the order in which the tinyalsa pcm streams were relased was wrong and could cause calling pcm_close() on a null pcm stream. Change-Id: Iad7149997d3993561f4a3ed4b2005f5867b51c56
* audio: support wideband call audioSimon Wilson2011-09-301-0/+20
| | | | | | | | Some networks support wideband AMR for voice calls. To support this, implement a callback that the RIL uses to set the wideband config. Change-Id: Ifa75ff189cc300728f560b77fd4fb3f1798e776d
* audio: adjust gains based on level tuningSimon Wilson2011-09-301-11/+20
| | | | Change-Id: I1e7e7738dad3643bd006d19708895f9f5815f429