[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