Lines Matching refs:adata

111 int acp_machine_select(struct acp_dev_data *adata)  in acp_machine_select()  argument
116 if (adata->flag == FLAG_AMD_LEGACY_ONLY_DMIC) { in acp_machine_select()
117 platform = adata->acp_rev; in acp_machine_select()
118 adata->mach_dev = platform_device_register_data(adata->dev, "acp-pdm-mach", in acp_machine_select()
122 size = sizeof(*adata->machines); in acp_machine_select()
123 mach = snd_soc_acpi_find_machine(adata->machines); in acp_machine_select()
125 dev_err(adata->dev, "warning: No matching ASoC machine driver found\n"); in acp_machine_select()
128 mach->mach_params.subsystem_rev = adata->acp_rev; in acp_machine_select()
129 adata->mach_dev = platform_device_register_data(adata->dev, mach->drv_name, in acp_machine_select()
132 if (IS_ERR(adata->mach_dev)) in acp_machine_select()
133 dev_warn(adata->dev, "Unable to register Machine device\n"); in acp_machine_select()
140 struct acp_dev_data *adata = data; in i2s_irq_handler() local
141 struct acp_resource *rsrc = adata->rsrc; in i2s_irq_handler()
146 if (adata->rsrc->no_of_ctrls == 2) in i2s_irq_handler()
147 ext_intr_stat1 = readl(ACP_EXTERNAL_INTR_STAT(adata, (rsrc->irqp_used - 1))); in i2s_irq_handler()
149 ext_intr_stat = readl(ACP_EXTERNAL_INTR_STAT(adata, rsrc->irqp_used)); in i2s_irq_handler()
151 spin_lock(&adata->acp_lock); in i2s_irq_handler()
152 list_for_each_entry(stream, &adata->stream_list, list) { in i2s_irq_handler()
155 ACP_EXTERNAL_INTR_STAT(adata, rsrc->irqp_used)); in i2s_irq_handler()
159 if (adata->rsrc->no_of_ctrls == 2) { in i2s_irq_handler()
161 writel(stream->irq_bit, ACP_EXTERNAL_INTR_STAT(adata, in i2s_irq_handler()
168 spin_unlock(&adata->acp_lock); in i2s_irq_handler()
175 void config_pte_for_stream(struct acp_dev_data *adata, struct acp_stream *stream) in config_pte_for_stream() argument
177 struct acp_resource *rsrc = adata->rsrc; in config_pte_for_stream()
183 writel((reg_val + GRP1_OFFSET) | BIT(31), adata->acp_base + ACPAXI2AXI_ATU_BASE_ADDR_GRP_1); in config_pte_for_stream()
184 writel(PAGE_SIZE_4K_ENABLE, adata->acp_base + ACPAXI2AXI_ATU_PAGE_SIZE_GRP_1); in config_pte_for_stream()
186 writel((reg_val + GRP2_OFFSET) | BIT(31), adata->acp_base + ACPAXI2AXI_ATU_BASE_ADDR_GRP_2); in config_pte_for_stream()
187 writel(PAGE_SIZE_4K_ENABLE, adata->acp_base + ACPAXI2AXI_ATU_PAGE_SIZE_GRP_2); in config_pte_for_stream()
189 writel(reg_val | BIT(31), adata->acp_base + ACPAXI2AXI_ATU_BASE_ADDR_GRP_5); in config_pte_for_stream()
190 writel(PAGE_SIZE_4K_ENABLE, adata->acp_base + ACPAXI2AXI_ATU_PAGE_SIZE_GRP_5); in config_pte_for_stream()
192 writel(0x01, adata->acp_base + ACPAXI2AXI_ATU_CTRL); in config_pte_for_stream()
196 void config_acp_dma(struct acp_dev_data *adata, struct acp_stream *stream, int size) in config_acp_dma() argument
199 struct acp_resource *rsrc = adata->rsrc; in config_acp_dma()
205 switch (adata->acp_rev) { in config_acp_dma()
231 dev_err(adata->dev, "Invalid dai id %x\n", stream->dai_id); in config_acp_dma()
244 writel(low, adata->acp_base + rsrc->scratch_reg_offset + val); in config_acp_dma()
246 writel(high, adata->acp_base + rsrc->scratch_reg_offset + val + 4); in config_acp_dma()
259 struct acp_dev_data *adata = dev_get_drvdata(dev); in acp_dma_open() local
309 writel(1, ACP_EXTERNAL_INTR_ENB(adata)); in acp_dma_open()
311 spin_lock_irq(&adata->acp_lock); in acp_dma_open()
312 list_add_tail(&stream->list, &adata->stream_list); in acp_dma_open()
313 spin_unlock_irq(&adata->acp_lock); in acp_dma_open()
322 struct acp_dev_data *adata = snd_soc_component_get_drvdata(component); in acp_dma_hw_params() local
327 config_pte_for_stream(adata, stream); in acp_dma_hw_params()
328 config_acp_dma(adata, stream, size); in acp_dma_hw_params()
337 struct acp_dev_data *adata = dev_get_drvdata(dev); in acp_dma_pointer() local
345 bytescount = acp_get_byte_count(adata, stream->dai_id, substream->stream); in acp_dma_pointer()
369 struct acp_dev_data *adata = dev_get_drvdata(dev); in acp_dma_close() local
373 spin_lock_irq(&adata->acp_lock); in acp_dma_close()
375 spin_unlock_irq(&adata->acp_lock); in acp_dma_close()
393 struct acp_dev_data *adata = dev_get_drvdata(dev); in acp_platform_register() local
397 status = devm_request_irq(dev, adata->i2s_irq, i2s_irq_handler, in acp_platform_register()
398 IRQF_SHARED, "ACP_I2S_IRQ", adata); in acp_platform_register()
405 adata->dai_driver, in acp_platform_register()
406 adata->num_dai); in acp_platform_register()
412 INIT_LIST_HEAD(&adata->stream_list); in acp_platform_register()
413 spin_lock_init(&adata->acp_lock); in acp_platform_register()
421 struct acp_dev_data *adata = dev_get_drvdata(dev); in acp_platform_unregister() local
423 if (adata->mach_dev) in acp_platform_unregister()
424 platform_device_unregister(adata->mach_dev); in acp_platform_unregister()