Эх сурвалжийг харах

Merge ace5a84ff53599a40a06f0094a3fb3ab2eb0a676 on remote branch

Change-Id: Ib5312cdd620bce864522ff334efcd8f48fb4f838
Linux Build Service Account 11 сар өмнө
parent
commit
57edf8f3e7

+ 3 - 2
asoc/msm-audio-defs.h

@@ -1,7 +1,7 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 /*
  * Copyright (c) 2019-2022, The Linux Foundation. All rights reserved.
- * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved.
  */
 #ifndef _MSM_AUDIO_DEFS_H
 #define _MSM_AUDIO_DEFS_H
@@ -79,7 +79,7 @@
 #define LPASS_BE_USB_AUDIO_TX "USB_AUDIO-TX"
 
 #define LPASS_BE_WSA_CDC_DMA_RX_0 "CODEC_DMA-LPAIF_WSA-RX-0"
-#define LPASS_BE_WSA_CDC_DMA_RX_0_VIRT "CODEC_DMA-LPAIF_WSA-RX-0-VIRT-2"
+#define LPASS_BE_WSA_CDC_DMA_RX_0_VIRT "CODEC_DMA-LPAIF_WSA-RX-0-VT-2"
 #define LPASS_BE_WSA_CDC_DMA_TX_0 "CODEC_DMA-LPAIF_WSA-TX-0"
 #define LPASS_BE_WSA_CDC_DMA_RX_1 "CODEC_DMA-LPAIF_WSA-RX-1"
 #define LPASS_BE_WSA_CDC_DMA_TX_1 "CODEC_DMA-LPAIF_WSA-TX-1"
@@ -97,6 +97,7 @@
 
 #define LPASS_BE_RX_CDC_DMA_RX_0 "CODEC_DMA-LPAIF_RXTX-RX-0"
 #define LPASS_BE_RX_CDC_DMA_RX_1 "CODEC_DMA-LPAIF_RXTX-RX-1"
+#define LPASS_BE_RX_CDC_DMA_RX_1_VIRT "CODEC_DMA-LPAIF_RXTX-RX-1-VT-2"
 #define LPASS_BE_RX_CDC_DMA_RX_2 "CODEC_DMA-LPAIF_RXTX-RX-2"
 #define LPASS_BE_RX_CDC_DMA_RX_3 "CODEC_DMA-LPAIF_RXTX-RX-3"
 #define LPASS_BE_RX_CDC_DMA_RX_4 "CODEC_DMA-LPAIF_RXTX-RX-4"

+ 12 - 0
asoc/pineapple.c

@@ -994,6 +994,18 @@ static struct snd_soc_dai_link msm_rx_tx_cdc_dma_be_dai_links[] = {
 		.ops = &msm_common_be_ops,
 		SND_SOC_DAILINK_REG(tx_dma_tx4),
 	},
+	{
+		.name = LPASS_BE_RX_CDC_DMA_RX_1_VIRT,
+		.stream_name = LPASS_BE_RX_CDC_DMA_RX_1_VIRT,
+		.playback_only = 1,
+		.trigger = {SND_SOC_DPCM_TRIGGER_POST,
+			SND_SOC_DPCM_TRIGGER_POST},
+		.ignore_pmdown_time = 1,
+		.ignore_suspend = 1,
+		.ops = &msm_common_be_ops,
+		SND_SOC_DAILINK_REG(rx_dma_rx1),
+		.init = &msm_rx_tx_codec_init,
+	},
 };
 
 static struct snd_soc_dai_link msm_va_cdc_dma_be_dai_links[] = {

+ 7 - 5
ipc/gpr-lite.c

@@ -1,6 +1,6 @@
 /* Copyright (c) 2011-2017, 2019-2021 The Linux Foundation. All rights reserved.
  * Copyright (c) 2018, Linaro Limited
- * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 and
@@ -381,14 +381,15 @@ static void gpr_device_remove(struct device *dev)
 	struct gpr_device *adev = to_gpr_device(dev);
 	struct gpr_driver *adrv;
 	struct gpr *gpr = dev_get_drvdata(adev->dev.parent);
+	unsigned long flags;
 
 	if (dev->driver) {
 		adrv = to_gpr_driver(dev->driver);
 		if (adrv->remove)
 			adrv->remove(adev);
-		spin_lock(&gpr->svcs_lock);
+		spin_lock_irqsave(&gpr->svcs_lock, flags);
 		idr_remove(&gpr->svcs_idr, adev->svc_id);
-		spin_unlock(&gpr->svcs_lock);
+		spin_unlock_irqrestore(&gpr->svcs_lock, flags);
 	}
 
 	return;
@@ -421,6 +422,7 @@ static int gpr_add_device(struct device *dev, struct device_node *np,
 	struct gpr *gpr = dev_get_drvdata(dev);
 	struct gpr_device *adev = NULL;
 	int ret;
+	unsigned long flags;
 
 	adev = kzalloc(sizeof(*adev), GFP_KERNEL);
 	if (!adev)
@@ -445,10 +447,10 @@ static int gpr_add_device(struct device *dev, struct device_node *np,
 	adev->dev.release = gpr_dev_release;
 	adev->dev.driver = NULL;
 
-	spin_lock(&gpr->svcs_lock);
+	spin_lock_irqsave(&gpr->svcs_lock, flags);
 	idr_alloc(&gpr->svcs_idr, adev, id->svc_id,
 		  id->svc_id + 1, GFP_ATOMIC);
-	spin_unlock(&gpr->svcs_lock);
+	spin_unlock_irqrestore(&gpr->svcs_lock, flags);
 
 	dev_info_ratelimited(dev, "Adding GPR dev: %s\n", dev_name(&adev->dev));