Lines Matching refs:chip

70 	struct azx chip;  member
90 static int dma_alloc_pages(struct azx *chip, int type, size_t size, in dma_alloc_pages() argument
93 return snd_dma_alloc_pages(type, chip->card->dev, size, buf); in dma_alloc_pages()
96 static void dma_free_pages(struct azx *chip, struct snd_dma_buffer *buf) in dma_free_pages() argument
101 static int substream_alloc_pages(struct azx *chip, in substream_alloc_pages() argument
113 static int substream_free_pages(struct azx *chip, in substream_free_pages() argument
251 struct azx *chip = card->private_data; in hda_tegra_suspend() local
252 struct hda_tegra *hda = container_of(chip, struct hda_tegra, chip); in hda_tegra_suspend()
256 azx_stop_chip(chip); in hda_tegra_suspend()
257 azx_enter_link_reset(chip); in hda_tegra_suspend()
266 struct azx *chip = card->private_data; in hda_tegra_resume() local
267 struct hda_tegra *hda = container_of(chip, struct hda_tegra, chip); in hda_tegra_resume()
273 azx_init_chip(chip, 1); in hda_tegra_resume()
291 struct azx *chip = device->device_data; in hda_tegra_dev_free() local
293 if (chip->initialized) { in hda_tegra_dev_free()
294 for (i = 0; i < chip->num_streams; i++) in hda_tegra_dev_free()
295 azx_stream_stop(chip, &chip->azx_dev[i]); in hda_tegra_dev_free()
296 azx_stop_chip(chip); in hda_tegra_dev_free()
299 azx_free_stream_pages(chip); in hda_tegra_dev_free()
304 static int hda_tegra_init_chip(struct azx *chip, struct platform_device *pdev) in hda_tegra_init_chip() argument
306 struct hda_tegra *hda = container_of(chip, struct hda_tegra, chip); in hda_tegra_init_chip()
326 chip->remap_addr = hda->regs + HDA_BAR0; in hda_tegra_init_chip()
327 chip->addr = res->start + HDA_BAR0; in hda_tegra_init_chip()
338 static int hda_tegra_first_init(struct azx *chip, struct platform_device *pdev) in hda_tegra_first_init() argument
340 struct snd_card *card = chip->card; in hda_tegra_first_init()
345 err = hda_tegra_init_chip(chip, pdev); in hda_tegra_first_init()
349 err = devm_request_irq(chip->card->dev, irq_id, azx_interrupt, in hda_tegra_first_init()
350 IRQF_SHARED, KBUILD_MODNAME, chip); in hda_tegra_first_init()
352 dev_err(chip->card->dev, in hda_tegra_first_init()
357 chip->irq = irq_id; in hda_tegra_first_init()
359 synchronize_irq(chip->irq); in hda_tegra_first_init()
361 gcap = azx_readw(chip, GCAP); in hda_tegra_first_init()
367 chip->capture_streams = (gcap >> 8) & 0x0f; in hda_tegra_first_init()
368 chip->playback_streams = (gcap >> 12) & 0x0f; in hda_tegra_first_init()
369 if (!chip->playback_streams && !chip->capture_streams) { in hda_tegra_first_init()
371 chip->playback_streams = NUM_PLAYBACK_SD; in hda_tegra_first_init()
372 chip->capture_streams = NUM_CAPTURE_SD; in hda_tegra_first_init()
374 chip->capture_index_offset = 0; in hda_tegra_first_init()
375 chip->playback_index_offset = chip->capture_streams; in hda_tegra_first_init()
376 chip->num_streams = chip->playback_streams + chip->capture_streams; in hda_tegra_first_init()
377 chip->azx_dev = devm_kcalloc(card->dev, chip->num_streams, in hda_tegra_first_init()
378 sizeof(*chip->azx_dev), GFP_KERNEL); in hda_tegra_first_init()
379 if (!chip->azx_dev) in hda_tegra_first_init()
382 err = azx_alloc_stream_pages(chip); in hda_tegra_first_init()
387 azx_init_stream(chip); in hda_tegra_first_init()
390 azx_init_chip(chip, 1); in hda_tegra_first_init()
393 if (!chip->codec_mask) { in hda_tegra_first_init()
402 card->shortname, chip->addr, chip->irq); in hda_tegra_first_init()
418 struct azx *chip; in hda_tegra_create() local
421 chip = &hda->chip; in hda_tegra_create()
423 spin_lock_init(&chip->reg_lock); in hda_tegra_create()
424 mutex_init(&chip->open_mutex); in hda_tegra_create()
425 chip->card = card; in hda_tegra_create()
426 chip->ops = hda_ops; in hda_tegra_create()
427 chip->irq = -1; in hda_tegra_create()
428 chip->driver_caps = driver_caps; in hda_tegra_create()
429 chip->driver_type = driver_caps & 0xff; in hda_tegra_create()
430 chip->dev_index = 0; in hda_tegra_create()
431 INIT_LIST_HEAD(&chip->pcm_list); in hda_tegra_create()
433 chip->codec_probe_mask = -1; in hda_tegra_create()
435 chip->single_cmd = false; in hda_tegra_create()
436 chip->snoop = true; in hda_tegra_create()
438 err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops); in hda_tegra_create()
456 struct azx *chip; in hda_tegra_probe() local
465 chip = &hda->chip; in hda_tegra_probe()
477 card->private_data = chip; in hda_tegra_probe()
481 err = hda_tegra_first_init(chip, pdev); in hda_tegra_probe()
486 err = azx_bus_create(chip, NULL); in hda_tegra_probe()
490 err = azx_probe_codecs(chip, 0); in hda_tegra_probe()
494 err = azx_codec_configure(chip); in hda_tegra_probe()
498 err = snd_card_register(chip->card); in hda_tegra_probe()
502 chip->running = 1; in hda_tegra_probe()
503 snd_hda_set_power_save(chip->bus, power_save * 1000); in hda_tegra_probe()
520 struct azx *chip; in hda_tegra_shutdown() local
524 chip = card->private_data; in hda_tegra_shutdown()
525 if (chip && chip->running) in hda_tegra_shutdown()
526 azx_stop_chip(chip); in hda_tegra_shutdown()