[alsa-devel] [PATCH] ASoC: Reintroduce do_spi_write()
Liam Girdwood
lrg at slimlogic.co.uk
Thu May 12 10:42:21 CEST 2011
On Wed, 2011-05-11 at 19:25 +0200, Mark Brown wrote:
> There is an unfortunate difference in return values between spi_write()
> and i2c_master_send() so we need an adaptor function to translate.
>
> Reported-by: Lars-Peter Clausen <lars at metafoo.de>
> Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
> ---
> sound/soc/soc-cache.c | 16 +++++++++++++++-
> 1 files changed, 15 insertions(+), 1 deletions(-)
>
> diff --git a/sound/soc/soc-cache.c b/sound/soc/soc-cache.c
> index 04861c4..dee86fc 100644
> --- a/sound/soc/soc-cache.c
> +++ b/sound/soc/soc-cache.c
> @@ -20,6 +20,20 @@
>
> #include <trace/events/asoc.h>
>
> +#ifdef CONFIG_SPI_MASTER
> +static int do_spi_write(void *control, const char *data, int len)
> +{
> + struct spi_device *spi = control;
> + int ret;
> +
> + ret = spi_write(spi, data, len);
> + if (ret < 0)
> + return ret;
> +
> + return len;
> +}
> +#endif
> +
> static int do_hw_write(struct snd_soc_codec *codec, unsigned int reg,
> unsigned int value, const void *data, int len)
> {
> @@ -409,7 +423,7 @@ int snd_soc_codec_set_cache_io(struct snd_soc_codec *codec,
>
> case SND_SOC_SPI:
> #ifdef CONFIG_SPI_MASTER
> - codec->hw_write = (hw_write_t)spi_write;
> + codec->hw_write = do_spi_write;
> #endif
>
> codec->control_data = container_of(codec->dev,
Acked-by: Liam Girdwood <lrg at ti.com>
More information about the Alsa-devel
mailing list