Lines Matching refs:codec

94 	struct snd_soc_codec *codec;  member
161 static void wm0010_halt(struct snd_soc_codec *codec) in wm0010_halt() argument
163 struct wm0010_priv *wm0010 = snd_soc_codec_get_drvdata(codec); in wm0010_halt()
197 struct snd_soc_codec *codec; member
222 struct snd_soc_codec *codec = xfer->codec; in wm0010_boot_xfer_complete() local
223 struct wm0010_priv *wm0010 = snd_soc_codec_get_drvdata(codec); in wm0010_boot_xfer_complete()
228 dev_err(codec->dev, "SPI transfer failed: %d\n", in wm0010_boot_xfer_complete()
237 dev_dbg(codec->dev, "%d: %04x\n", i, out32[i]); in wm0010_boot_xfer_complete()
241 dev_err(codec->dev, in wm0010_boot_xfer_complete()
249 dev_err(codec->dev, in wm0010_boot_xfer_complete()
255 dev_dbg(codec->dev, "Stage2 loader running\n"); in wm0010_boot_xfer_complete()
259 dev_dbg(codec->dev, "CODE_HDR packet received\n"); in wm0010_boot_xfer_complete()
263 dev_dbg(codec->dev, "CODE_DATA packet received\n"); in wm0010_boot_xfer_complete()
267 dev_dbg(codec->dev, "Download complete\n"); in wm0010_boot_xfer_complete()
271 dev_dbg(codec->dev, "Application start\n"); in wm0010_boot_xfer_complete()
275 dev_dbg(codec->dev, "PLL packet received\n"); in wm0010_boot_xfer_complete()
280 dev_err(codec->dev, "Device reports image too long\n"); in wm0010_boot_xfer_complete()
285 dev_err(codec->dev, "Device reports bad SPI packet\n"); in wm0010_boot_xfer_complete()
290 dev_err(codec->dev, "Device reports SPI read overflow\n"); in wm0010_boot_xfer_complete()
295 dev_err(codec->dev, "Device reports SPI underclock\n"); in wm0010_boot_xfer_complete()
300 dev_err(codec->dev, "Device reports bad header packet\n"); in wm0010_boot_xfer_complete()
305 dev_err(codec->dev, "Device reports invalid packet type\n"); in wm0010_boot_xfer_complete()
310 dev_err(codec->dev, "Device reports data before header error\n"); in wm0010_boot_xfer_complete()
315 dev_err(codec->dev, "Device reports invalid PLL packet\n"); in wm0010_boot_xfer_complete()
319 dev_err(codec->dev, "Device reports packet alignment error\n"); in wm0010_boot_xfer_complete()
324 dev_err(codec->dev, "Unrecognised return 0x%x\n", in wm0010_boot_xfer_complete()
346 static int wm0010_firmware_load(const char *name, struct snd_soc_codec *codec) in wm0010_firmware_load() argument
348 struct spi_device *spi = to_spi_device(codec->dev); in wm0010_firmware_load()
349 struct wm0010_priv *wm0010 = snd_soc_codec_get_drvdata(codec); in wm0010_firmware_load()
363 ret = request_firmware(&fw, name, codec->dev); in wm0010_firmware_load()
365 dev_err(codec->dev, "Failed to request application(%s): %d\n", in wm0010_firmware_load()
381 dev_err(codec->dev, "First record not INFO\r\n"); in wm0010_firmware_load()
387 dev_err(codec->dev, in wm0010_firmware_load()
394 dev_dbg(codec->dev, "Version v%02d INFO record found\r\n", in wm0010_firmware_load()
399 dev_err(codec->dev, "Not a WM0010 firmware file.\r\n"); in wm0010_firmware_load()
409 dev_dbg(codec->dev, in wm0010_firmware_load()
420 xfer->codec = codec; in wm0010_firmware_load()
464 dev_dbg(codec->dev, "All transfers scheduled\n"); in wm0010_firmware_load()
470 dev_err(codec->dev, "Write failed: %d\n", ret); in wm0010_firmware_load()
475 dev_dbg(codec->dev, "Boot fail!\n"); in wm0010_firmware_load()
500 static int wm0010_stage2_load(struct snd_soc_codec *codec) in wm0010_stage2_load() argument
502 struct spi_device *spi = to_spi_device(codec->dev); in wm0010_stage2_load()
503 struct wm0010_priv *wm0010 = snd_soc_codec_get_drvdata(codec); in wm0010_stage2_load()
512 ret = request_firmware(&fw, "wm0010_stage2.bin", codec->dev); in wm0010_stage2_load()
514 dev_err(codec->dev, "Failed to request stage2 loader: %d\n", in wm0010_stage2_load()
519 dev_dbg(codec->dev, "Downloading %zu byte stage 2 loader\n", fw->size); in wm0010_stage2_load()
545 dev_dbg(codec->dev, "Starting initial download at %dHz\n", in wm0010_stage2_load()
550 dev_err(codec->dev, "Initial download failed: %d\n", ret); in wm0010_stage2_load()
557 dev_err(codec->dev, "Boot ROM error: %x in %d\n", in wm0010_stage2_load()
574 static int wm0010_boot(struct snd_soc_codec *codec) in wm0010_boot() argument
576 struct spi_device *spi = to_spi_device(codec->dev); in wm0010_boot()
577 struct wm0010_priv *wm0010 = snd_soc_codec_get_drvdata(codec); in wm0010_boot()
594 dev_err(codec->dev, "Max DSP clock frequency is 26MHz\n"); in wm0010_boot()
602 dev_dbg(codec->dev, "max_spi_freq: %d\n", wm0010->max_spi_freq); in wm0010_boot()
627 dev_err(codec->dev, "Failed to get interrupt from DSP\n"); in wm0010_boot()
633 ret = wm0010_stage2_load(codec); in wm0010_boot()
639 dev_err(codec->dev, "Failed to get interrupt from DSP loader.\n"); in wm0010_boot()
660 dev_err(codec->dev, in wm0010_boot()
683 dev_err(codec->dev, "First PLL write failed: %d\n", ret); in wm0010_boot()
690 dev_err(codec->dev, "Second PLL write failed: %d\n", ret); in wm0010_boot()
699 dev_dbg(codec->dev, "PLL packet received\n"); in wm0010_boot()
709 dev_dbg(codec->dev, "Not enabling DSP PLL."); in wm0010_boot()
711 ret = wm0010_firmware_load("wm0010.dfw", codec); in wm0010_boot()
730 wm0010_halt(codec); in wm0010_boot()
742 static int wm0010_set_bias_level(struct snd_soc_codec *codec, in wm0010_set_bias_level() argument
745 struct wm0010_priv *wm0010 = snd_soc_codec_get_drvdata(codec); in wm0010_set_bias_level()
749 if (snd_soc_codec_get_bias_level(codec) == SND_SOC_BIAS_PREPARE) in wm0010_set_bias_level()
750 wm0010_boot(codec); in wm0010_set_bias_level()
755 if (snd_soc_codec_get_bias_level(codec) == SND_SOC_BIAS_PREPARE) { in wm0010_set_bias_level()
757 wm0010_halt(codec); in wm0010_set_bias_level()
768 static int wm0010_set_sysclk(struct snd_soc_codec *codec, int source, in wm0010_set_sysclk() argument
771 struct wm0010_priv *wm0010 = snd_soc_codec_get_drvdata(codec); in wm0010_set_sysclk()
790 static int wm0010_probe(struct snd_soc_codec *codec);
865 static int wm0010_probe(struct snd_soc_codec *codec) in wm0010_probe() argument
867 struct wm0010_priv *wm0010 = snd_soc_codec_get_drvdata(codec); in wm0010_probe()
869 wm0010->codec = codec; in wm0010_probe()