diff options
| author | Vijendar Mukunda <Vijendar.Mukunda@amd.com> | 2023-01-04 11:24:29 +0530 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2023-01-05 11:15:32 +0000 |
| commit | f763fb2fc93065d33f17fe9c5adeac8dec7713dc (patch) | |
| tree | b89a6b933c5358a25e51a2a06cc4f437eeca5bc8 | |
| parent | ASoC: Intel: sof-wm8804: Replace open coded acpi_dev_put() (diff) | |
| download | linux-f763fb2fc93065d33f17fe9c5adeac8dec7713dc.tar.gz linux-f763fb2fc93065d33f17fe9c5adeac8dec7713dc.zip | |
ASoC: amd: ps: add mutex lock for accessing common registers
Add mutex lock for accessing ACP common registers across different
modules.
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
Link: https://lore.kernel.org/r/20230104055435.321327-1-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
| -rw-r--r-- | sound/soc/amd/ps/acp63.h | 1 | ||||
| -rw-r--r-- | sound/soc/amd/ps/pci-ps.c | 4 |
2 files changed, 4 insertions, 1 deletions
diff --git a/sound/soc/amd/ps/acp63.h b/sound/soc/amd/ps/acp63.h index 8f024cb309c9..47854280dd4b 100644 --- a/sound/soc/amd/ps/acp63.h +++ b/sound/soc/amd/ps/acp63.h @@ -106,6 +106,7 @@ struct acp63_dev_data { struct resource *res; bool acp63_audio_mode; struct platform_device *pdev[ACP63_DEVS]; + struct mutex acp_lock; /* protect shared registers */ u16 pdev_mask; u16 pdev_count; u16 pdm_dev_index; diff --git a/sound/soc/amd/ps/pci-ps.c b/sound/soc/amd/ps/pci-ps.c index 401cfd0036be..6335595ec5b9 100644 --- a/sound/soc/amd/ps/pci-ps.c +++ b/sound/soc/amd/ps/pci-ps.c @@ -209,7 +209,8 @@ static int create_acp63_platform_devs(struct pci_dev *pci, struct acp63_dev_data case ACP63_PDM_DEV_MASK: adata->pdm_dev_index = 0; acp63_fill_platform_dev_info(&pdevinfo[0], parent, NULL, "acp_ps_pdm_dma", - 0, adata->res, 1, NULL, 0); + 0, adata->res, 1, &adata->acp_lock, + sizeof(adata->acp_lock)); acp63_fill_platform_dev_info(&pdevinfo[1], parent, NULL, "dmic-codec", 0, NULL, 0, NULL, 0); acp63_fill_platform_dev_info(&pdevinfo[2], parent, NULL, "acp_ps_mach", @@ -283,6 +284,7 @@ static int snd_acp63_probe(struct pci_dev *pci, } pci_set_master(pci); pci_set_drvdata(pci, adata); + mutex_init(&adata->acp_lock); ret = acp63_init(adata->acp63_base, &pci->dev); if (ret) goto release_regions; |
