Lines Matching refs:adata
63 static void init_dma_descriptor(struct acp_dev_data *adata) in init_dma_descriptor() argument
65 struct snd_sof_dev *sdev = adata->dev; in init_dma_descriptor()
87 static void configure_dma_descriptor(struct acp_dev_data *adata, unsigned short idx, in configure_dma_descriptor() argument
90 struct snd_sof_dev *sdev = adata->dev; in configure_dma_descriptor()
102 static int config_dma_channel(struct acp_dev_data *adata, unsigned int ch, in config_dma_channel() argument
105 struct snd_sof_dev *sdev = adata->dev; in config_dma_channel()
155 static int acpbus_dma_start(struct acp_dev_data *adata, unsigned int ch, in acpbus_dma_start() argument
158 struct snd_sof_dev *sdev = adata->dev; in acpbus_dma_start()
166 configure_dma_descriptor(adata, dscr, dscr_info++); in acpbus_dma_start()
168 ret = config_dma_channel(adata, ch, 0, dscr_count); in acpbus_dma_start()
175 int configure_and_run_dma(struct acp_dev_data *adata, unsigned int src_addr, in configure_and_run_dma() argument
178 struct snd_sof_dev *sdev = adata->dev; in configure_and_run_dma()
184 adata->dscr_info[desc_count].src_addr = src_addr + desc_count * ACP_PAGE_SIZE; in configure_and_run_dma()
185 adata->dscr_info[desc_count].dest_addr = dest_addr + desc_count * ACP_PAGE_SIZE; in configure_and_run_dma()
186 adata->dscr_info[desc_count].tx_cnt.bits.count = ACP_PAGE_SIZE; in configure_and_run_dma()
188 adata->dscr_info[desc_count].tx_cnt.bits.count = dsp_data_size; in configure_and_run_dma()
191 ret = acpbus_dma_start(adata, 0, desc_count, adata->dscr_info); in configure_and_run_dma()
197 memset(&adata->dscr_info[index], 0x00, sizeof(struct dma_descriptor)); in configure_and_run_dma()
208 static int psp_mbox_ready(struct acp_dev_data *adata, bool ack) in psp_mbox_ready() argument
210 struct snd_sof_dev *sdev = adata->dev; in psp_mbox_ready()
215 ACP_PSP_TIMEOUT_US, false, adata->smn_dev, MP0_C2PMSG_114_REG); in psp_mbox_ready()
233 static int psp_send_cmd(struct acp_dev_data *adata, int cmd) in psp_send_cmd() argument
235 struct snd_sof_dev *sdev = adata->dev; in psp_send_cmd()
244 adata->smn_dev, MP0_C2PMSG_73_REG); in psp_send_cmd()
252 ret = psp_mbox_ready(adata, 0); in psp_send_cmd()
256 smn_write(adata->smn_dev, MP0_C2PMSG_114_REG, cmd); in psp_send_cmd()
259 smn_write(adata->smn_dev, MP0_C2PMSG_73_REG, data); in psp_send_cmd()
262 ret = psp_mbox_ready(adata, 1); in psp_send_cmd()
267 int configure_and_run_sha_dma(struct acp_dev_data *adata, void *image_addr, in configure_and_run_sha_dma() argument
271 struct snd_sof_dev *sdev = adata->dev; in configure_and_run_sha_dma()
293 if (adata->quirks && adata->quirks->signed_fw_image) in configure_and_run_sha_dma()
301 if (adata->pci_rev == ACP_VANGOGH_PCI_ID && in configure_and_run_sha_dma()
302 !(adata->quirks && adata->quirks->skip_iram_dram_size_mod)) { in configure_and_run_sha_dma()
304 ret = psp_send_cmd(adata, MBOX_ACP_IRAM_DRAM_FENCE_COMMAND | IRAM_DRAM_FENCE_2); in configure_and_run_sha_dma()
307 ret = psp_send_cmd(adata, MBOX_ACP_IRAM_DRAM_FENCE_COMMAND | MBOX_ISREADY_FLAG); in configure_and_run_sha_dma()
322 if (adata->pci_rev == ACP_RN_PCI_ID) { in configure_and_run_sha_dma()
323 ret = psp_send_cmd(adata, MBOX_ACP_SHA_DMA_COMMAND); in configure_and_run_sha_dma()
341 int acp_dma_status(struct acp_dev_data *adata, unsigned char ch) in acp_dma_status() argument
343 struct snd_sof_dev *sdev = adata->dev; in acp_dma_status()
348 switch (adata->pci_rev) { in acp_dma_status()
387 struct acp_dev_data *adata = sdev->pdata->hw_pdata; in acp_memory_init() local
392 init_dma_descriptor(adata); in acp_memory_init()
426 struct acp_dev_data *adata = sdev->pdata->hw_pdata; in acp_irq_handler() local
440 amd_manager = dev_get_drvdata(&adata->sdw->pdev[0]->dev); in acp_irq_handler()
451 if (adata->pci_rev >= ACP_RMB_PCI_ID) in acp_irq_handler()
460 amd_manager = dev_get_drvdata(&adata->sdw->pdev[1]->dev); in acp_irq_handler()
477 struct acp_dev_data *adata = sdev->pdata->hw_pdata; in acp_power_on() local
488 switch (adata->pci_rev) { in acp_power_on()
735 struct acp_dev_data *adata; in amd_sof_acp_probe() local
746 adata = devm_kzalloc(sdev->dev, sizeof(struct acp_dev_data), in amd_sof_acp_probe()
748 if (!adata) in amd_sof_acp_probe()
751 adata->dev = sdev; in amd_sof_acp_probe()
752 adata->dmic_dev = platform_device_register_data(sdev->dev, "dmic-codec", in amd_sof_acp_probe()
754 if (IS_ERR(adata->dmic_dev)) { in amd_sof_acp_probe()
756 return PTR_ERR(adata->dmic_dev); in amd_sof_acp_probe()
767 adata->addr = addr; in amd_sof_acp_probe()
768 adata->reg_range = chip->reg_end_addr - chip->reg_start_addr; in amd_sof_acp_probe()
769 adata->pci_rev = pci->revision; in amd_sof_acp_probe()
770 mutex_init(&adata->acp_lock); in amd_sof_acp_probe()
771 sdev->pdata->hw_pdata = adata; in amd_sof_acp_probe()
772 adata->smn_dev = pci_get_device(PCI_VENDOR_ID_AMD, chip->host_bridge_id, NULL); in amd_sof_acp_probe()
773 if (!adata->smn_dev) { in amd_sof_acp_probe()
802 pci_dev_put(adata->smn_dev); in amd_sof_acp_probe()
818 adata->quirks = dmi_id->driver_data; in amd_sof_acp_probe()
820 if (adata->quirks->signed_fw_image) { in amd_sof_acp_probe()
821 adata->fw_code_bin = devm_kasprintf(sdev->dev, GFP_KERNEL, in amd_sof_acp_probe()
824 if (!adata->fw_code_bin) { in amd_sof_acp_probe()
829 adata->fw_data_bin = devm_kasprintf(sdev->dev, GFP_KERNEL, in amd_sof_acp_probe()
832 if (!adata->fw_data_bin) { in amd_sof_acp_probe()
839 adata->enable_fw_debug = enable_fw_debug; in amd_sof_acp_probe()
849 pci_dev_put(adata->smn_dev); in amd_sof_acp_probe()
851 platform_device_unregister(adata->dmic_dev); in amd_sof_acp_probe()
858 struct acp_dev_data *adata = sdev->pdata->hw_pdata; in amd_sof_acp_remove() local
860 if (adata->smn_dev) in amd_sof_acp_remove()
861 pci_dev_put(adata->smn_dev); in amd_sof_acp_remove()
863 if (adata->sdw) in amd_sof_acp_remove()
869 if (adata->dmic_dev) in amd_sof_acp_remove()
870 platform_device_unregister(adata->dmic_dev); in amd_sof_acp_remove()