aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-07-17MAINTAINERS: add entry for ARM system MMU driverWill Deacon
Add myself as maintainer for the ARM system MMU driver. Acked-by: Grant Likely <grant.likely@secretlab.ca> Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Joerg Roedel <joro@8bytes.org> (cherry picked from commit b8f9879ea9d9b697f8864f219ad98c5779e6ee04) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-07-17iommu/arm: Add support for ARM Ltd. System MMU architectureWill Deacon
This patch adds support for SMMUs implementing the ARM System MMU architecture versions 1 or 2. Both arm and arm64 are supported, although the v7s descriptor format is not used. Cc: Rob Herring <robherring2@gmail.com> Cc: Andreas Herrmann <andreas.herrmann@calxeda.com> Cc: Olav Haugan <ohaugan@codeaurora.org> Cc: Joerg Roedel <joro@8bytes.org> Signed-off-by: Will Deacon <will.deacon@arm.com> Acked-by: Andreas Herrmann <andreas.herrmann@calxeda.com> Signed-off-by: Joerg Roedel <joro@8bytes.org> (cherry picked from commit 45ae7cff3684ab45f57fc13fc242c8546536a84e) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-07-17documentation/iommu: Add description of ARM System MMU bindingWill Deacon
This patch adds a description of the device tree binding for the ARM System MMU architecture. Cc: Rob Herring <robherring2@gmail.com> Cc: Andreas Herrmann <andreas.herrmann@calxeda.com> Cc: Joerg Roedel <joro@8bytes.org> Acked-by: Grant Likely <grant.likely@linaro.org> Signed-off-by: Will Deacon <will.deacon@arm.com> Acked-by: Andreas Herrmann <andreas.herrmann@calxeda.com> Signed-off-by: Joerg Roedel <joro@8bytes.org> (cherry picked from commit 98c33c5a971bbca31160e5e4a362496c4d702357) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-07-08cpufreq: arm_big_little: Fallback to getting cpu clocks by nameJon Medhurst
Early versions of the big.LITTLE driver used special names for cpu clocks and vexpress TC2 code expects this, so provide a fallback path to allow this to continue to work. Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30arm64: vexpress: Change CLCD devicetree entries for use with old driverJon Medhurst
LSK 3.10 has an old version of the CLCD driver and requires different device-tree entries compaired to the final version of the driver which went into mailnline Linux. Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30arm64: vexpress: Add fvp-foundation-gicv2-psci.dtsJon Medhurst
The foundation model is a cut down variant of the base model so reuse the device-tree for that and disable missing features. Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30arm64: vexpress: Update Makefile to build fvp-base-gicv2-psci.dtbJon Medhurst
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30arm64: vexpress: Use macros for gic parameters in fvp-base-gicv2-psci.dtsJon Medhurst
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30arm64: vexpress: Fix armv8-timer interrupts in fvp-base-gicv2-psci.dtsJon Medhurst
And use macros for definitions. See commit 6bc474de3661 ("arm64: ARM: Fix the Generic Timers interrupt active level description") Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30juno: Enable CONFIG_SND_SOC_ALL_CODECSJon Medhurst
We only want two codecs (SND_SOC_HDMI_CODEC and SND_SOC_SPDIF), unfortunately, codecs aren't individually user selectable which means merge_config.sh won't let us select them. Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30juno: Add sound configsJon Medhurst
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30Juno: Add I2S and TDA998x audio CODEC support.Andrew Jackson
Signed-off-by: Andrew Jackson <Andrew.Jackson@arm.com> Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: simple-card: fix __asoc_simple_card_dai_initXiubo Li
If the CPU/CODEC DAI set_sysclk() is not support, the -ENOTSUPP will returnd. Here do the check like set_fmt(). Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit 4763ebe226156db985fe75bfe930c4069d1f4207) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: simple-card: fix one bug to writing to the platform dataXiubo Li
It's a bug that writing to the platform data directly, for it should be constant. So just copy it before writing. Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit ca919fe4b972b9428ab42bead11b04a4ebf0f632) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: simple-card: use snd_soc_card_set/get_drvdataXiubo Li
Remove asoc_simple_get_card_info macro and use snd_soc_card_set_drvdata and snd_soc_card_get_drvdata instead. Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit ba194a4de5c81ee200b6af88743b26f7b69aa659) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: simple-card: fix the cinfo error checkXiubo Li
If the dt is used and the cinfo is NULL, the -ENOMEM should be return. Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit 34787d0a258ebb3686676fb37a9e8717cbdd835a) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: simple-card: fix a bug where cinfo will be NULL before using itXiubo Li
If the dt is not used, the cinfo will be always NULL before using it. Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit 708ec0241c56b85176937e79314430f4f71e40c6) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: simple-card: keep the property's name the same patternXiubo Li
Even though we might not have rigor rule for the simple card property names, according to the existing ones, they are all in a same pattern: [simple-audio-card,]XXX; Rename simple-audio-routing to simple-audio-card,routing, and make the simple card's properties has one unified name. Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit 8c0b8230b2d9708eed5b50f9f8442aaa879a3c57) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: simple-card: fix the DAPM routes map parsingXiubo Li
The simple-card's DAPM route maping is optional. Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit f87a3e825cb0f7d4d51556ece147f1a6299ac1af) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: simple-card: Fix the sysclk selection.Xiubo Li
For spdif there is no need to do the sysclk setting. Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit e2a19ac6c5b27ac93fe744c0ff0823cde52c9cbb) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: generic-dmaengine-pcm: Check DMA residue granularityLars-Peter Clausen
The dmaengine framework now exposes the granularity with which it is able to report the transfer residue for a certain DMA channel. Check the granularity in the generic dmaengine PCM driver and a) Set the SNDRV_PCM_INFO_BATCH if the granularity is per period or worse. b) Fallback to the (race condition prone) period counting if the driver does not support any residue reporting. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit 478028e088d6a94666d8a776be2cd2291faf3bbd) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: generic-dmaengine-pcm: Check NO_RESIDUE flag at runtimeLars-Peter Clausen
Currently we have two different snd_soc_platform_driver structs in the generic dmaengine PCM driver. One for dmaengine drivers that support residue reporting and one for those which do not. When registering the PCM component we check whether the NO_RESIDUE flag is set or not and use the corresponding snd_soc_platform_driver. This patch modifies the driver to only have one snd_soc_platform_driver struct where the pointer() callback checks the NO_RESIDUE flag at runtime. This allows us to set the NO_RESIDUE flag after the PCM component has been registered. This becomes necessary when querying whether the dmaengine driver supports residue reporting from the dmaengine driver itself since the DMA channel might only be requested after the PCM component has been registered. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit 93b943edfc5e439f7b843535e0bb0f7d2371f67f) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: core: Return -ENOTSUPP from set_sysclk() if no operation providedMark Brown
Make it easier for generic code to work with set_sysclk() by distinguishing between the operation not being supported and an error as is done for other operations like set_dai_fmt() Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit 1104a9c822f0e9f5e57a236f20a142166dd8f91e) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: hdmi-codec: Add devicetree binding with documentationJyri Sarha
Signed-off-by: Jyri Sarha <jsarha@ti.com> cc: bcousson@baylibre.com Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit 0f7f3d1f17c2e4d73e449e6acb2007b13813c58e) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: hdmi-codec: Add SNDRV_PCM_FMTBIT_32_LE playback formatJyri Sarha
The new playback format is needed for tda998x HDMI audio support. At the moment the only other user of this codec is omap-hdmi-audio. This change should not break anything because omap-hdmi-audio-dai, the cpu-dai of omap-hdmi-audio, enforces sufficient constraints to available sample formats. Signed-off-by: Jyri Sarha <jsarha@ti.com> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit c600e95360dac3a3b88f0a2106214dff8e5f56be) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: simple-card: Add device's module clock selection.Xiubo Li
Try to get the device's module clock if the dt has no clocks and system-clock-frequency properties. Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit 71467e46414d3bab220de77d3d085be0c0aa03e1) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: simple-card: Cleanup __asoc_simple_card_dai_init() ret checkXiubo Li
The ret parameter is always equal to zero till here. Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit e874ddead38996ec40c6a6be2347a69fac520126) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: simple-card: Add DAPM routes parse from device treeXiubo Li
Parses a simple DAPM route table from device tree. Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit d4c22094b256a7327346738721b89a78d4680b08) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: simple-card: Use devm_snd_soc_register_card()Xiubo Li
Makes the code slightly shorter. Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com> Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit e1acb40a3addc9aceb4600f04c9c86b50770b9b8) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: simple-card: Add cpu_dai and codec_dai names NULL checkXiubo Li
The name of cpu DAI maybe omitted, and then strlen() will lead kernel panic. Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit dd41e0c4e35abc5a5679762ab108a6fcd9a0ead9) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: simple-card: add Device Tree supportKuninori Morimoto
Support for loading the simple-card module via DeviceTree. It requests CPU/CODEC information. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit fa558c2801fc173758c742d836f3cc4621851557) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: Add resource managed snd_dmaengine_pcm_register()Lars-Peter Clausen
For many drivers using the generic dmaengine PCM driver one of the few (or the only) things left to do in the drivers remove function is to unregister the PCM device. This patch adds a resource managed version of snd_dmaengine_pcm_register() which makes it possible to simplify the remove function as well as the error path in the probe function for those drivers. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit 21585ee848078b12d0d1a513e93936bf96b444a0) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: core: Fix the DAI name getting.Xiubo Li
From "ASoC: make snd_soc_dai_link more symmetrical", can we see that the name of CPU DAI maybe omitted. If the DAI name is omitted, try to use the component name instead. Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit e41975edc73d2c16d0784e5fa87a6162e2fcab80) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: simple-card: un-implemented set_fmt is not errorKuninori Morimoto
Current simple-card returns error if DAI doesn't support .set_fmt callback. But the error is -ENOTSUPP (= not supported), and it is not error. This patch avoids such case Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit e244bb9bc1883547d44642c99f483c2e57e2a940) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: dwc: Add missing include for of.hJon Medhurst
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: dmaengine: Use filter_data rather than dma_data for compat requestsMark Brown
When using the legacy filter function channel requests we currently pass the audio specific struct snd_dmaengine_dai_dma_data which isn't likely to be helpful for actual filtering. Since there's already a field in the structure called filter_data clearly intended for use here convert the driver to use that. All existing users of plain filter functions have been converted to use an explicit compat function to override this behaviour except i.MX which is working around this issue in its filter function and is updated to just use filter_data directly here. Signed-off-by: Mark Brown <broonie@linaro.org> Acked-by: Lars-Peter Clausen <lars@metafoo.de> (cherry picked from commit 90130d2e8f75c7181cef514e8a1491925f386a16) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: dmaengine: Support custom channel namesMark Brown
Some devices have more than just simple TX and RX DMA channels, for example modern Samsung I2S IPs support a secondary transmit DMA stream which is mixed into the primary stream during playback. Allow such devices to specify the names of the channels to be requested in their dma_data. Signed-off-by: Mark Brown <broonie@linaro.org> Acked-by: Lars-Peter Clausen <lars@metafoo.de> (cherry picked from commit ea73b7ddf13548afd666373dc5e26ee7c812a3fe) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: dai: Provide interface for setting DMA data at probe timeMark Brown
Allow DMA data to be set at probe time for devices that can do that, avoiding the need to do it every time we start a stream and supporting non-DT dmaengine users using the helpers. Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit ecfc0c04f236f1e2a95094792ec10cf27be39f7c) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: dmaengine-pcm: Provide default configLars-Peter Clausen
This patch adds some default settings for the generic dmaengine PCM driver for the case that no config has been supplied. The following defaults are used: * Use snd_dmaengine_pcm_prepare_slave_config for preparing the DMA slave config. * 512kB for the prealloc buffer size. This value has been chosen based on 'feels about right' and is not backed up by any scientific facts. We may need to come up with something smarter in the future but it should work fine for now. With this infrastructure in place we can finally write DAI drivers which are independent of the DMA controller they are connected to. This is e.g. useful if the DAI IP core is reused across different SoCs, but the SoCs uses different DMA controllers. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit fa654e085300e9c222ef931bc0702a9df2542666) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: dmaengine-pcm: Add support for querying DMA capabilitiesLars-Peter Clausen
Currently each platform making use the the generic dmaengine PCM driver still needs to provide a custom snd_pcm_hardware struct which specifies the capabilities of the DMA controller, e.g. the maximum period size that can be supported. This patch adds code which uses the newly introduced dma_get_slave_caps() API to query this information from the dmaengine driver. The new code path will only be taken if the 'pcm_hardware' field of the snd_dmaengine_pcm_config struct is NULL. The patch also introduces a new 'fifo_size' field to the snd_dmaengine_dai_dma_data struct which is used to initialize the snd_pcm_hardware 'fifo_size' field and needs to be set by the DAI driver. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit c0de42bf595238e9dd593405ebc2992cc8470732) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: dwc: Ensure FIFOs are flushed to prevent channel swapAndrew Jackson
If the FIFOs aren't flushed, the left/right channels may be swapped: this may occur if the FIFOs are not empty when the streams start. Signed-off-by: Andrew Jackson <Andrew.Jackson@arm.com> Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: dwc: Add devicetree support for Designware I2SAndrew Jackson
Convert to driver to use either platform_data or device-tree for configuration of the device. When using device-tree, the I2S block's configuration is read from the relevant registers: this reduces the amount of information required in the device tree. Signed-off-by: Andrew Jackson <Andrew.Jackson@arm.com> Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: dwc: Iterate over all channelsAndrew Jackson
On the Designware core, the channels are independent and not combined in higher registers. So as more channels are added, more registers need to be updated. Signed-off-by: Andrew Jackson <Andrew.Jackson@arm.com> Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: dwc: Don't allow negative use countsAndrew Jackson
Signed-off-by: Andrew Jackson <Andrew.Jackson@arm.com> Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: dwc: Allocate resources with platform_get_resourceAndrew Jackson
Reorder allocations and use updated interface, platform_get_resource, to allocate IO mapping. Signed-off-by: Andrew Jackson <Andrew.Jackson@arm.com> Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: core: Add devm_snd_soc_register_card()Mark Brown
Simplify error handling and remove repetitive (and rarely executed) code for unregistration by providing a devm_snd_soc_register() card. Signed-off-by: Mark Brown <broonie@linaro.org> Acked-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> (cherry picked from commit 0e4ff5c806263bf40ee5409ac283b776f0c11e41) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: core: Implement devm_snd_soc_register_component()Mark Brown
Since with the wider use of devres many drivers are now only calling snd_soc_unregister_component() in their remove functions providing a managed version will save a reasonable amount of code. Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit a0b03a616b08cf9d709812ff5cf7e9c0958d6807) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: add snd_soc_of_get_dai_name() default of_xlateKuninori Morimoto
Current snd_soc_of_get_dai_name() needs .of_xlate_dai_name() callback on each component drivers. But required behavior on almost all these drivers is just returns its indexed driver's name. This patch adds this feature as default behavior. .of_xlate_dai_name() can overwrite it. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit 6833c452c2fb47353566aa705d68541c6045c796) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: add .of_xlate_dai_name on snd_soc_component_driverKuninori Morimoto
ASoC sound driver requires CPU/CODEC drivers for probing, and each CPU/CODEC has some DAI on it. Then, "dai name matching" have been used to identify CPU-CODEC DAI pair on ASoC. But, the "dai port number matching" is now required from DeviceTree. The solution of this issue is to replace the dai port number into dai name. Now, CPU/CODEC are based on struct snd_soc_component, and it can care above as common issue. This patch adds .of_xlate_dai_name callback interface on struct snd_soc_component_driver, and snd_soc_of_get_dai_name() which is using .of_xlate_dai_name. Then, #sound-dai-cells which enables DAI specifier is required on CPU/CODEC device tree properties. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit cb470087669a3fab1958fec79dd7db280b33f178) Signed-off-by: Jon Medhurst <tixy@linaro.org>
2015-06-30ASoC: snd_soc_codec includes snd_soc_componentKuninori Morimoto
Codec includes component by this patch, and component moved to upside of codec to avoid extra declaration. Codec dai will be registered via component by this patch. Current component register function is used for cpu, and it is using dai/dais functions properly to keep existing cpu dai name. And now, it will be used from codec also. But codec driver had been used dais function only even though it was single dai. This patch adds new flag which can selects dai/dais function on component register function to keep existing codec dai name. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit d191bd8de8c61619563f2b19f1fdcc0944ff1a72) Signed-off-by: Jon Medhurst <tixy@linaro.org>