summaryrefslogtreecommitdiff
path: root/include/sound (follow)
Commit message (Collapse)AuthorAge
* ASoC: msm: Add Audio drivers for MSM targetsSudheer Papothi2016-03-23
| | | | | | | | | | | Add snapshot for audio drivers for MSM targets. The code is migrated from msm-3.18 kernel at the below commit/AU level - AU_LINUX_ANDROID_LA.HB.1.3.1.06.00.00.187.056 (e70ad0cd5efdd9dc91a77dcdac31d6132e1315c1) (Promotion of kernel.lnx.3.18-151201.) Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
* ASoC: soc-core: export function to find componentsBanajit Goswami2016-03-23
| | | | | | | | | | Drivers might need to use the ASoC core function to find out whether a particular component is already registered with ALSA core or not. Export the function so that drivers can use it outside of the file. Change-Id: I13e4a053de085974b0b53c392a9453e46f1aa66d Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
* ASoC: Cold start latency reductionWalter Yang2016-03-23
| | | | | | | | | | | | | | | | | | | This patch parallelizes FE (front end) and BE (back end) when playback/capture path is set up. FE's and BE's which can be parallelized should be indicated in corresponding machine file. All the operations can be started asynchronously provided the usecase supports asynchronous operation. Parallelizing reduces the startup latency as both FE and BE operations run in parallel. Change-Id: I17e7e1c3d406713cc728ec262cfe388f7251f7de Signed-off-by: Walter Yang <yandongy@codeaurora.org> Signed-off-by: Fred Oh <fred@codeaurora.org> Conflicts: include/sound/soc.h sound/soc/soc-compress.c sound/soc/soc-pcm.c
* ALSA: compress: Add support to send codec specific dataAlexy Joseph2016-03-23
| | | | | | | | | | | | | | | Codec specific metadata is sent only for first stream in gapless playback. This causes incorrect configuration to be set for second stream and distortions are observed due to framedrops in adsp. Add support to send codec specific format during start of next stream in gapless using set_next_track_param. Change-Id: Ieec6b2afedec156e47873efcad9b3571160b0a29 Signed-off-by: Chaithanya Krishna Bacharaju <chaithan@codeaurora.org> Signed-off-by: Alexy Joseph <alexyj@codeaurora.org> Conflicts: include/sound/compress_driver.h
* ASoC: pcm: Add delay_blk featureKenneth Westfield2016-03-23
| | | | | | | | | | Add delay_blk() to pcm, platform and DAI ops. The pcm delay_blk() op collects the audio DSP path delays from the low-level drivers and sets the runtime->delay field to their aggregate. Change-Id: Ib7e10f44ab8ccb46dc2f5825081d0afef662d827 Signed-off-by: Kenneth Westfield <kwestfie@codeaurora.org>
* ALSA: core: Add an API to create and register modulePhani Kumar Uppalapati2016-03-23
| | | | | | | | | | Add an API to create a module under the given parent directory and then register the info entry. This API can be used to expose ID and version related information. Change-Id: I06f8bc1d8f649e6db37eb65303e948bc58eab7da Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
* ALSA: pcm: add support for 384KHz sample rateVidyakumar Athota2016-03-23
| | | | | | | | | Currenlty HW params fails to set 384KHz sample rate due to unsupported sample rate. Change to add 384KHz sample rate support to ALSA. Change-Id: I381f7cdcc69e6cf9339cec53aab3fa295760c17c Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
* ASoC: dapm: mark dapm_kcontrol_get_wlist as global functionSudheer Papothi2016-03-23
| | | | | | | | | | dapm_kcontrol_get_wlist() function needs to be called from driver other than the soc-dapm.c file itself. Mark this function as global function, so it can be accessed from other drivers. Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org> Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
* ALSA: compress: Add snd_compress_free()Liam Girdwood2016-03-23
| | | | | | | | | | | | | | We are not currently freeing the compressed devices at module unload time. This could be used to help, but more investigation needs to be done to resolve this issue. This patch is WIP Change-Id: I6cf8bcc56e4d446d83e9a0e63b79db3da378a901 Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> Git-commit: b2ebfd20ecb255b8e575ea8b6fad8d1affc2ea77 Git-repo: https://android.googlesource.com/kernel/msm Signed-off-by: Dhananjay Kumar <dhakumar@codeaurora.org>
* ASoC: core: Add support for no host modeBanajit Goswami2016-03-23
| | | | | | | | Add support for hostless PCM mode to support usecases where PCM is not consumed by host. Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org> Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
* ASoC: dapm: add macro for MICBIASBanajit Goswami2016-03-23
| | | | | | | Add a new DAPM Macro for MICBIAS widget for use in codec drivers. Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
* ALSA: PCM: User contol API implementationSudheer Papothi2016-03-23
| | | | | | | | | | Introduced a new helper function snd_pcm_add_usr_ctls() to create control elements representing the user control for each PCM (sub)stream Signed-off-by: Jayasena Sangaraboina <jsanga@codeaurora.org> Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org> Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
* ALSA: PCM: volume API implementationSudheer Papothi2016-03-23
| | | | | | | | | | Introduced a new helper function snd_pcm_add_volume_ctls() to create control elements representing the volume for each PCM (sub)stream. Signed-off-by: Damir Didjusto <damird@codeaurora.org> Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org> Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
* ASoC: core: Support for compress ioctlsGopikrishnaiah Anandan2016-03-23
| | | | | | | | | Compat driver should support compress ioctls when COMPAT mode is enabled. Change adds support for handling compress ioctls. Change-Id: If7223ace326253240a1cd65bc9a111b8903977f1 Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
* ALSA: pcm - add support for hostless audioSudheer Papothi2016-03-23
| | | | | | | | | | | | | Allow some PCM devices to be hostless, i.e. there is no PCM data transferred to or from the host CPU. This can be used to minimise power on systems since the CPU can idle/sleep during the PCM device operation (e.g. a phone call where the DAI is between a MODEM and DSP) TODO: cleanup, look at adding a read/write blocker. Singed-off-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org> Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
* ASoC: core: Update ALSA core to issue restart in underrun.Santosh Mardi2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | When compressed and pcm session is started the buffer pull will Be from the DSP, in mmap mode for the scenario Hardware pointer Is same as application pointer implies application has not filled the Buffer to be send to DSP, and platform driver has to break and restart The de queue process when the application has sufficient buffers. When hardware pointer is same as application pointer it is an under run Scenario where the ALSA framework has to trigger the under run and in HAL The session has to re-prepare and re-triggered. based on the stop Threshold, but in our system the stop threshold is INT_MAX which Indicates that under run is not triggered in practical cases. We have a brodcast usecase in which the mentioned under run case Is hit mulitple times, and every time re-prepare and re-trigger will be Expensive Update the ASoC core framework to restart de queue process stopped By platform Driver when the under run is hit, based on the available Buffer and render flag, so the System will recover from the hang state. To restart de queue process the ASoC core will be calling the restart Callback registered by platform driver and this callback will be running in Atomic context. Change-Id: Ic9ea05a0dc6246346e9913493232882e2f5447d1 Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
* ASoC: Add locking in DAPM widget power updateBanajit Goswami2016-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | 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. Change-Id: I49d19860277726cf3152e104ab40627fd56c021c CRs-Fixed: 388785 Signed-off-by: Sriranjan Srikantam <cssrika@codeaurora.org> Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org> Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
* ASoC: core: Add support for getting TX and RX channelsBanajit Goswami2016-03-23
| | | | | | | | Based on which codec dai is selected, slimbus channel numbers have to be queried when use case is being enabled. Change adds support to get the channel numbers. Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
* ALSA: jack: Add support to report second microphoneSudheer Papothi2016-03-23
| | | | | | | | | | ALSA jack framework currently supports reporting only one single microphone. Add support to report presence of second microphone to userspace. Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org> Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org> Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
* ALSA: jack: update jack typesSudheer Papothi2016-03-23
| | | | | | | | Change updates the jack types that will be supported by the platform. Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org> Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
* ALSA: core: Expose sound card online/offline stateSudheer Papothi2016-03-23
| | | | | | | | | Expose sound card online/offline state to procfs so userspace application can poll and read sound card's state. Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org> Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org> Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
* ASoC: core: Introduce macro SOC_SINGLE_MULTI_EXTSudheer Papothi2016-03-23
| | | | | | | | For some of the mixer controls client would like to register count as a parameter. Macro adds support to specify the count. Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org> Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
* Merge remote-tracking branch 'asoc/fix/dapm' into asoc-linusMark Brown2016-01-05
|\
| * ASoC: Use nested lock for snd_soc_dapm_mutex_lockCharles Keepax2015-12-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | snd_soc_dapm_mutex_lock currently uses the un-nested call which can cause lockdep warnings when called from control handlers (a relatively common usage) and using modules. As creating the control causes a potential mutex inversion with the handler, creating the control will take the controls_rwsem under the dapm_mutex and accessing the control will take the dapm_mutex under controls_rwsem. All the users look like they want to be using the runtime class of the lock anyway, so this patch just changes snd_soc_dapm_mutex_lock to use the nested call, with the SND_SOC_DAPM_CLASS_RUNTIME class. Fixes: f6d5e586b416 ("ASoC: dapm: Add helpers to lock/unlock DAPM mutex") Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@kernel.org>
* | ALSA: hda - Fix playback noise with 24/32 bit sample size on BXTLu, Han2015-12-07
| | | | | | | | | | | | | | | | | | | | | | | | | | In BXT-P A0, HD-Audio DMA requests is later than expected, and makes an audio stream sensitive to system latencies when 24/32 bits are playing. Adjusting threshold of DMA fifo to force the DMA request sooner to improve latency tolerance at the expense of power. v2: move Intel specific code to hda_intel.c Signed-off-by: Lu, Han <han.lu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | Merge remote-tracking branch 'asoc/fix/dapm' into asoc-linusMark Brown2015-11-25
|\ \ | |/ |/|
| * ASoC: dapm: Reset dapm wcache after freeing damp widgetsJyri Sarha2015-11-10
| | | | | | | | | | | | | | | | | | | | | | | | If there is anything in damp->path_source_cache or damp->path_sink_cache, it can not be valid after the widgets have been freed. Without this patch a repeated remove and load of a machine driver may cause NULL pointer reference in dapm_wcache_lookup() when a freed widget, not belonging to any list, is haunting in the wcache. Signed-off-by: Jyri Sarha <jsarha@ti.com> Reported-by: Felipe Balbi <balbi@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
* | ALSA: Constify ratden/ratnum constraintsLars-Peter Clausen2015-10-28
| | | | | | | | | | | | | | | | | | | | | | The ALSA core does not modify the constraints provided by a driver. Most constraint helper functions already take a const pointer to the constraint description, the exception at the moment being the ratden and ratnum constraints. Make those const as well, this allows a driver to declare them as const. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | Merge tag 'asoc-v4.3-rc6' of ↵Takashi Iwai2015-10-26
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next ASoC: Updates for v4.4 Not much core work here, a few small tweaks to interfaces but mainly the changes here are driver ones. Highlights include: - Updates to the topology userspace interface - Big updates to the Renesas support from Morimoto-san - Most of the support for Intel Sky Lake systems. - New drivers for Asahi Kasei Microdevices AK4613, Allwinnner A10, Cirrus Logic WM8998, Dialog DA7219, Nuvoton NAU8825 and Rockchip S/PDIF. - A new driver for the Atmel Class D speaker drivers
| *-. Merge remote-tracking branches 'asoc/topic/rt298', 'asoc/topic/rt5640', ↵Mark Brown2015-10-26
| |\ \ | | | | | | | | | | | | 'asoc/topic/samsung' and 'asoc/topic/sh' into asoc-next
| | | * ASoC: rt5640: Fill up the IN3's supportOder Chiou2015-10-22
| | |/ | | | | | | | | | | | | Signed-off-by: Oder Chiou <oder_chiou@realtek.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | |
| | \
| *-. | Merge remote-tracking branches 'asoc/topic/rcar', 'asoc/topic/rl6347a', ↵Mark Brown2015-10-26
| |\ \| | | | | | | | | | | | | 'asoc/topic/rockchip' and 'asoc/topic/rt286' into asoc-next
| | * | ASoC: rsnd: Remove obsolete platform data supportGeert Uytterhoeven2015-10-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 3d7608e4c169af03 ("ARM: shmobile: bockw: remove legacy board file and config"), Renesas R-Car SoCs are only supported in generic DT-only ARM multi-platform builds. The driver doesn't need to use platform data anymore, hence remove platform data configuration. Move <sound/rcar_snd.h> to sound/soc/sh/rcar/, as it's no longer needed by platform code. Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: Mark Brown <broonie@kernel.org>
| | | |
| | \ \
| *-. \ \ Merge remote-tracking branches 'asoc/topic/nau8825' and 'asoc/topic/pxa' ↵Mark Brown2015-10-26
| |\ \ \ \ | | | |_|/ | | |/| | | | | | | into asoc-next
| | | * | ASoC: pxa: pxa-pcm-lib: switch over to snd-soc-dmaengine-pcmDaniel Mack2015-09-30
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes the old PXA DMA API usage and switches over to generic functions provided by snd-soc-dmaengine-pcm. More cleanups may be done on top of this, and some function stubs can now be removed completetly. However, the intention here was to keep the transition as small as possible. This was tested on the mioa701 pxa27x board. Signed-off-by: Daniel Mack <zonque@gmail.com> [trivial change from mmp-dma to pxa-dma] Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr> Signed-off-by: Mark Brown <broonie@kernel.org>
| | | |
| | \ \
| *-. | | Merge remote-tracking branches 'asoc/topic/dwc', 'asoc/topic/es8328', ↵Mark Brown2015-10-26
| |\ \| | | | | | | | | | | | | | | | | 'asoc/topic/fsl' and 'asoc/topic/fsl-card' into asoc-next
| | * | | ASoC: dwc: support dw i2s in slave modeMaruthi Srinivas Bayyavarapu2015-10-05
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dw i2s controller can work in slave mode, codec being master. dw i2s is made to support master/slave operation, by reading dwc register. Signed-off-by: Maruthi Bayyavarapu <maruthi.bayyavarapu@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | | Merge remote-tracking branch 'asoc/topic/da7219' into asoc-nextMark Brown2015-10-26
| |\ \ \
| | * | | ASoC: codecs: Add da7219 codec driverAdam Thomson2015-10-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds support for the DA7219 audio codec with built-in advanced accessory detect features. Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * | | ASoC: Add SOC_DOUBLE_R_EXTAdam Thomson2015-09-30
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | _EXT version of SOC_DOUBLE_R required to allow for custom handlers. Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | | |
| | \ \
| *-. \ \ Merge remote-tracking branches 'asoc/topic/atmel-classd' and ↵Mark Brown2015-10-26
| |\ \ \ \ | | | |/ / | | |/| | | | | | | 'asoc/topic/da7213' into asoc-next
| | | * | ASoC: da7213: Add support to handle mclk data provided to driverAdam Thomson2015-10-07
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Driver now can make use of mclk data, if provided, to set, enable and disable the clock source. As part of this, the choice to enable clock squaring is dealt with as part of dai_sysclk() call rather than as platform data. Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | | Merge remote-tracking branch 'asoc/topic/doc' into asoc-nextMark Brown2015-10-26
| |\ \ \
| | * | | ASoC: Document DAI signal polarityAnatol Pomozov2015-10-23
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently there is no clear definition of what FSYNC polarity is. Different drivers use its own definition of what is "normal" and what is "inverted" fsync. This leads to compatibility problems between drivers. For example TegraX1 driver assumes that DSP-A format with frames starting at rising FSYNC edge has "inverted" polarity, while RT5677 assumes it is "normal" polarity. Explicitly specify meaning of BCLK/FSYNC polarity to avoid future compatibility problems. Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | | Merge remote-tracking branch 'asoc/topic/dapm' into asoc-nextMark Brown2015-10-26
| |\ \ \
| | * | | ASoC: dapm: Add snd_soc_dapm_kcontrol_widget()Mythri P K2015-10-22
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Given a kcontrol, we may want to access the parent widget and it's associated data. So export function to return it. Signed-off-by: Mythri P K <mythri.p.k@intel.com> Signed-off-by: Jeeja KP <jeeja.kp@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | | Merge remote-tracking branch 'asoc/topic/core' into asoc-nextMark Brown2015-10-26
| |\ \ \
| | * | | ASoC: compress: add config item for soc-compress to make it compiled only ↵Jie Yang2015-10-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | when needed We don't always need soc-compress in soc, here add a config item SND_SOC_COMPRESS, when nobody select it, the soc-compress will not be compiled. Here also change Kconfig to 'select SND_SOC_COMPRESS' for drivers that needed soc-compress. Signed-off-by: Jie Yang <yang.jie@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| | * | | ASoC: Let snd_soc_limit_volume() take a snd_soc_cardLars-Peter Clausen2015-10-22
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | snd_soc_limit_volume() operates on a card and the CODEC that is passed in is only used to look up the card. Let it directly take the card instead. This makes it possible to use it when no snd_soc_codec is available. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Jarkko Nikula <jarkko.nikula@bitmer.com> Tested-by: Jarkko Nikula <jarkko.nikula@bitmer.com> Signed-off-by: Mark Brown <broonie@kernel.org>
| * | | Merge tag 'asoc-v4.3-rc2' into asoc-nextMark Brown2015-10-26
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ASoC: Updates for v4.4 A first batch of updates targetted at v4.4. There are no substantial core fixes here, the biggest block of changes is updates to the rcar drivers and the addition of a CODEC driver for the AK4613. # gpg: Signature made Fri 25 Sep 2015 05:37:06 KST using RSA key ID 5D5487D0 # gpg: key CD7BEEBC: no public key for trusted key - skipped # gpg: key CD7BEEBC marked as ultimately trusted # gpg: key AF88CD16: no public key for trusted key - skipped # gpg: key AF88CD16 marked as ultimately trusted # gpg: key 16005C11: no public key for trusted key - skipped # gpg: key 16005C11 marked as ultimately trusted # gpg: key 5621E907: no public key for trusted key - skipped # gpg: key 5621E907 marked as ultimately trusted # gpg: key 5C6153AD: no public key for trusted key - skipped # gpg: key 5C6153AD marked as ultimately trusted # gpg: Good signature from "Mark Brown <broonie@sirena.org.uk>" # gpg: aka "Mark Brown <broonie@debian.org>" # gpg: aka "Mark Brown <broonie@kernel.org>" # gpg: aka "Mark Brown <broonie@tardis.ed.ac.uk>" # gpg: aka "Mark Brown <broonie@linaro.org>" # gpg: aka "Mark Brown <Mark.Brown@linaro.org>"