mirror of https://gitee.com/openkylin/linux.git
ASoC: Automatically determine control_data for soc-cache users
Since the provision of a struct device for the CODEC is now mandatory we can use container_of() to locate the struct i2c_client and struct spi_device for relevant devices, removing the need to manually set it in each driver. A further patch will automate selection of the control type based on the bus_type of the struct device, further reducing the amount of driver code required. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
This commit is contained in:
parent
960d069791
commit
a6d14342dc
|
@ -584,11 +584,19 @@ int snd_soc_codec_set_cache_io(struct snd_soc_codec *codec,
|
|||
#endif
|
||||
if (io_types[i].i2c_read)
|
||||
codec->hw_read = io_types[i].i2c_read;
|
||||
|
||||
codec->control_data = container_of(codec->dev,
|
||||
struct i2c_client,
|
||||
dev);
|
||||
break;
|
||||
|
||||
case SND_SOC_SPI:
|
||||
if (io_types[i].spi_write)
|
||||
codec->hw_write = io_types[i].spi_write;
|
||||
|
||||
codec->control_data = container_of(codec->dev,
|
||||
struct spi_device,
|
||||
dev);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue