Lines Matching refs:adata
61 static void init_dma_descriptor(struct acp_dev_data *adata)
63 struct snd_sof_dev *sdev = adata->dev;
74 static void configure_dma_descriptor(struct acp_dev_data *adata, unsigned short idx,
77 struct snd_sof_dev *sdev = adata->dev;
89 static int config_dma_channel(struct acp_dev_data *adata, unsigned int ch,
92 struct snd_sof_dev *sdev = adata->dev;
119 static int acpbus_dma_start(struct acp_dev_data *adata, unsigned int ch,
122 struct snd_sof_dev *sdev = adata->dev;
130 configure_dma_descriptor(adata, dscr, dscr_info++);
132 ret = config_dma_channel(adata, ch, 0, dscr_count);
139 int configure_and_run_dma(struct acp_dev_data *adata, unsigned int src_addr,
142 struct snd_sof_dev *sdev = adata->dev;
148 adata->dscr_info[desc_count].src_addr = src_addr + desc_count * ACP_PAGE_SIZE;
149 adata->dscr_info[desc_count].dest_addr = dest_addr + desc_count * ACP_PAGE_SIZE;
150 adata->dscr_info[desc_count].tx_cnt.bits.count = ACP_PAGE_SIZE;
152 adata->dscr_info[desc_count].tx_cnt.bits.count = dsp_data_size;
155 ret = acpbus_dma_start(adata, 0, desc_count, adata->dscr_info);
161 memset(&adata->dscr_info[index], 0x00, sizeof(struct dma_descriptor));
168 * @adata: acp device data
172 static int psp_mbox_ready(struct acp_dev_data *adata, bool ack)
174 struct snd_sof_dev *sdev = adata->dev;
179 ACP_PSP_TIMEOUT_US, false, adata->smn_dev, MP0_C2PMSG_114_REG);
193 * @adata: acp device data
197 static int psp_send_cmd(struct acp_dev_data *adata, int cmd)
199 struct snd_sof_dev *sdev = adata->dev;
208 adata->smn_dev, MP0_C2PMSG_73_REG);
216 ret = psp_mbox_ready(adata, 0);
220 smn_write(adata->smn_dev, MP0_C2PMSG_114_REG, cmd);
223 smn_write(adata->smn_dev, MP0_C2PMSG_73_REG, data);
226 ret = psp_mbox_ready(adata, 1);
231 int configure_and_run_sha_dma(struct acp_dev_data *adata, void *image_addr,
235 struct snd_sof_dev *sdev = adata->dev;
258 if (adata->signed_fw_image)
276 ret = psp_send_cmd(adata, MBOX_ACP_SHA_DMA_COMMAND);
292 int acp_dma_status(struct acp_dev_data *adata, unsigned char ch)
294 struct snd_sof_dev *sdev = adata->dev;
330 struct acp_dev_data *adata = sdev->pdata->hw_pdata;
335 init_dma_descriptor(adata);
484 struct acp_dev_data *adata;
495 adata = devm_kzalloc(sdev->dev, sizeof(struct acp_dev_data),
497 if (!adata)
500 adata->dev = sdev;
501 adata->dmic_dev = platform_device_register_data(sdev->dev, "dmic-codec",
503 if (IS_ERR(adata->dmic_dev)) {
505 return PTR_ERR(adata->dmic_dev);
517 sdev->pdata->hw_pdata = adata;
518 adata->smn_dev = pci_get_device(PCI_VENDOR_ID_AMD, chip->host_bridge_id, NULL);
519 if (!adata->smn_dev) {
547 adata->signed_fw_image = false;
550 adata->fw_code_bin = devm_kasprintf(sdev->dev, GFP_KERNEL,
554 if (!adata->fw_code_bin) {
559 adata->fw_data_bin = devm_kasprintf(sdev->dev, GFP_KERNEL,
563 if (!adata->fw_data_bin) {
568 adata->signed_fw_image = dmi_id->driver_data;
571 adata->enable_fw_debug = enable_fw_debug;
581 pci_dev_put(adata->smn_dev);
583 platform_device_unregister(adata->dmic_dev);
590 struct acp_dev_data *adata = sdev->pdata->hw_pdata;
592 if (adata->smn_dev)
593 pci_dev_put(adata->smn_dev);
598 if (adata->dmic_dev)
599 platform_device_unregister(adata->dmic_dev);