mirror of
https://github.com/torvalds/linux
synced 2024-10-16 16:29:20 +00:00
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>
This commit is contained in:
parent
892dbe0ecf
commit
f763fb2fc9
|
@ -106,6 +106,7 @@ struct acp63_dev_data {
|
||||||
struct resource *res;
|
struct resource *res;
|
||||||
bool acp63_audio_mode;
|
bool acp63_audio_mode;
|
||||||
struct platform_device *pdev[ACP63_DEVS];
|
struct platform_device *pdev[ACP63_DEVS];
|
||||||
|
struct mutex acp_lock; /* protect shared registers */
|
||||||
u16 pdev_mask;
|
u16 pdev_mask;
|
||||||
u16 pdev_count;
|
u16 pdev_count;
|
||||||
u16 pdm_dev_index;
|
u16 pdm_dev_index;
|
||||||
|
|
|
@ -209,7 +209,8 @@ static int create_acp63_platform_devs(struct pci_dev *pci, struct acp63_dev_data
|
||||||
case ACP63_PDM_DEV_MASK:
|
case ACP63_PDM_DEV_MASK:
|
||||||
adata->pdm_dev_index = 0;
|
adata->pdm_dev_index = 0;
|
||||||
acp63_fill_platform_dev_info(&pdevinfo[0], parent, NULL, "acp_ps_pdm_dma",
|
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",
|
acp63_fill_platform_dev_info(&pdevinfo[1], parent, NULL, "dmic-codec",
|
||||||
0, NULL, 0, NULL, 0);
|
0, NULL, 0, NULL, 0);
|
||||||
acp63_fill_platform_dev_info(&pdevinfo[2], parent, NULL, "acp_ps_mach",
|
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_master(pci);
|
||||||
pci_set_drvdata(pci, adata);
|
pci_set_drvdata(pci, adata);
|
||||||
|
mutex_init(&adata->acp_lock);
|
||||||
ret = acp63_init(adata->acp63_base, &pci->dev);
|
ret = acp63_init(adata->acp63_base, &pci->dev);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto release_regions;
|
goto release_regions;
|
||||||
|
|
Loading…
Reference in a new issue