Lines Matching refs:adata

105 	struct acp63_dev_data *adata = context;
109 pdev_index = adata->sdw_dma_dev_index;
110 sdw_dma_data = dev_get_drvdata(&adata->pdev[pdev_index]->dev);
113 if (adata->sdw0_dma_intr_stat[stream_index]) {
116 adata->sdw0_dma_intr_stat[stream_index] = 0;
120 if (adata->sdw1_dma_intr_stat[stream_index]) {
123 adata->sdw1_dma_intr_stat[stream_index] = 0;
131 struct acp63_dev_data *adata;
141 adata = dev_id;
142 if (!adata)
149 ext_intr_stat = readl(adata->acp63_base + ACP_EXTERNAL_INTR_STAT);
151 writel(ACP_SDW0_STAT, adata->acp63_base + ACP_EXTERNAL_INTR_STAT);
152 pdev_index = adata->sdw0_dev_index;
153 amd_manager = dev_get_drvdata(&adata->pdev[pdev_index]->dev);
159 ext_intr_stat1 = readl(adata->acp63_base + ACP_EXTERNAL_INTR_STAT1);
161 writel(ACP_SDW1_STAT, adata->acp63_base + ACP_EXTERNAL_INTR_STAT1);
162 pdev_index = adata->sdw1_dev_index;
163 amd_manager = dev_get_drvdata(&adata->pdev[pdev_index]->dev);
170 writel(ACP_ERROR_IRQ, adata->acp63_base + ACP_EXTERNAL_INTR_STAT);
172 writel(0, adata->acp63_base + ACP_SW0_I2S_ERROR_REASON);
173 writel(0, adata->acp63_base + ACP_SW1_I2S_ERROR_REASON);
174 writel(0, adata->acp63_base + ACP_ERROR_STATUS);
179 pdev_index = adata->pdm_dev_index;
180 ps_pdm_data = dev_get_drvdata(&adata->pdev[pdev_index]->dev);
181 writel(BIT(PDM_DMA_STAT), adata->acp63_base + ACP_EXTERNAL_INTR_STAT);
189 writel(BIT(index), adata->acp63_base + ACP_EXTERNAL_INTR_STAT);
211 adata->sdw0_dma_intr_stat[stream_id] = 1;
219 adata->acp63_base + ACP_EXTERNAL_INTR_STAT1);
220 adata->sdw1_dma_intr_stat[ACP_SDW1_AUDIO1_RX] = 1;
226 adata->acp63_base + ACP_EXTERNAL_INTR_STAT1);
227 adata->sdw1_dma_intr_stat[ACP_SDW1_AUDIO1_TX] = 1;
419 static int create_acp63_platform_devs(struct pci_dev *pci, struct acp63_dev_data *adata, u32 addr)
429 "%s pdev_config:0x%x pdev_count:0x%x\n", __func__, adata->pdev_config,
430 adata->pdev_count);
431 if (adata->pdev_config) {
432 adata->res = devm_kzalloc(&pci->dev, sizeof(struct resource), GFP_KERNEL);
433 if (!adata->res) {
437 adata->res->flags = IORESOURCE_MEM;
438 adata->res->start = addr;
439 adata->res->end = addr + (ACP63_REG_END - ACP63_REG_START);
443 switch (adata->pdev_config) {
445 adata->pdm_dev_index = 0;
447 0, adata->res, 1, NULL, 0);
454 if (adata->pdev_count == ACP63_SDW0_MODE_DEVS) {
463 sdw_pdata->acp_sdw_lock = &adata->acp_lock;
464 adata->sdw0_dev_index = 0;
465 adata->sdw_dma_dev_index = 1;
466 acp63_fill_platform_dev_info(&pdevinfo[0], parent, adata->sdw_fw_node,
467 "amd_sdw_manager", 0, adata->res, 1,
470 0, adata->res, 1, NULL, 0);
471 } else if (adata->pdev_count == ACP63_SDW0_SDW1_MODE_DEVS) {
481 sdw_pdata[0].acp_sdw_lock = &adata->acp_lock;
482 sdw_pdata[1].acp_sdw_lock = &adata->acp_lock;
483 sdw_pdata->acp_sdw_lock = &adata->acp_lock;
484 adata->sdw0_dev_index = 0;
485 adata->sdw1_dev_index = 1;
486 adata->sdw_dma_dev_index = 2;
487 acp63_fill_platform_dev_info(&pdevinfo[0], parent, adata->sdw_fw_node,
488 "amd_sdw_manager", 0, adata->res, 1,
490 acp63_fill_platform_dev_info(&pdevinfo[1], parent, adata->sdw_fw_node,
491 "amd_sdw_manager", 1, adata->res, 1,
494 0, adata->res, 1, NULL, 0);
498 if (adata->pdev_count == ACP63_SDW0_PDM_MODE_DEVS) {
507 sdw_pdata->acp_sdw_lock = &adata->acp_lock;
508 adata->pdm_dev_index = 0;
509 adata->sdw0_dev_index = 1;
510 adata->sdw_dma_dev_index = 2;
512 0, adata->res, 1, NULL, 0);
513 acp63_fill_platform_dev_info(&pdevinfo[1], parent, adata->sdw_fw_node,
514 "amd_sdw_manager", 0, adata->res, 1,
517 0, adata->res, 1, NULL, 0);
520 } else if (adata->pdev_count == ACP63_SDW0_SDW1_PDM_MODE_DEVS) {
529 sdw_pdata[0].acp_sdw_lock = &adata->acp_lock;
530 sdw_pdata[1].acp_sdw_lock = &adata->acp_lock;
531 adata->pdm_dev_index = 0;
532 adata->sdw0_dev_index = 1;
533 adata->sdw1_dev_index = 2;
534 adata->sdw_dma_dev_index = 3;
536 0, adata->res, 1, NULL, 0);
537 acp63_fill_platform_dev_info(&pdevinfo[1], parent, adata->sdw_fw_node,
538 "amd_sdw_manager", 0, adata->res, 1,
540 acp63_fill_platform_dev_info(&pdevinfo[2], parent, adata->sdw_fw_node,
541 "amd_sdw_manager", 1, adata->res, 1,
544 0, adata->res, 1, NULL, 0);
554 for (index = 0; index < adata->pdev_count; index++) {
555 adata->pdev[index] = platform_device_register_full(&pdevinfo[index]);
556 if (IS_ERR(adata->pdev[index])) {
559 ret = PTR_ERR(adata->pdev[index]);
566 platform_device_unregister(adata->pdev[index]);
568 if (acp63_deinit(adata->acp63_base, &pci->dev))
576 struct acp63_dev_data *adata;
607 adata = devm_kzalloc(&pci->dev, sizeof(struct acp63_dev_data),
609 if (!adata) {
615 adata->acp63_base = devm_ioremap(&pci->dev, addr,
617 if (!adata->acp63_base) {
627 adata->acp_reset = true;
629 pci_set_drvdata(pci, adata);
630 mutex_init(&adata->acp_lock);
631 ret = acp63_init(adata->acp63_base, &pci->dev);
635 acp63_irq_thread, irqflags, "ACP_PCI_IRQ", adata);
640 val = readl(adata->acp63_base + ACP_PIN_CONFIG);
641 ret = get_acp63_device_config(val, pci, adata);
647 ret = create_acp63_platform_devs(pci, adata, addr);
659 if (acp63_deinit(adata->acp63_base, &pci->dev))
671 struct acp63_dev_data *adata;
674 adata = dev_get_drvdata(dev);
675 if (adata->acp_reset) {
676 ret = acp63_deinit(adata->acp63_base, dev);
685 struct acp63_dev_data *adata;
688 adata = dev_get_drvdata(dev);
689 if (adata->acp_reset) {
690 ret = acp63_init(adata->acp63_base, dev);
704 struct acp63_dev_data *adata;
707 adata = pci_get_drvdata(pci);
708 for (index = 0; index < adata->pdev_count; index++)
709 platform_device_unregister(adata->pdev[index]);
710 ret = acp63_deinit(adata->acp63_base, &pci->dev);