Message ID | 20240102214549.22498-41-quic_wcheng@quicinc.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel+bounces-14877-ouuuleilei=gmail.com@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:6f82:b0:100:9c79:88ff with SMTP id tb2csp4700851dyb; Tue, 2 Jan 2024 13:53:07 -0800 (PST) X-Google-Smtp-Source: AGHT+IHE6sBtZjQ4GNg56FCb5vvgW8C7+r6kYbhUtHzfrQeiABSibPVJYWV6ktok14rnrGdpRL7N X-Received: by 2002:a17:902:6846:b0:1d3:77c4:59db with SMTP id f6-20020a170902684600b001d377c459dbmr8334110pln.139.1704232387124; Tue, 02 Jan 2024 13:53:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1704232387; cv=none; d=google.com; s=arc-20160816; b=WT+L9kN8u4NaGv7/Mu6Imx/0PnFRvhPH0zHeQ2tMgXlSPxK25aE7sqLfslE17cwVaK FUKCHOUq8JQ2V3yMfcS+vVKIIjWtgdEtBevZpVfcrrvrFrxkeMQaQeTP7LsarEHIMhgn 3cTeW6GjohWYPLpeXecPNKrvd97ezKYCxwvfAHFNaNSswBNTOtZQbpfePEV2F6/RZO/w EQ4sXcSiVNGKNZEZj7tPR7Ij8LdbInKG/OeZF9nAnBZkD6YH7xK2m3uVrClYGT+JFi5b iUClilxowMJ70rp2BTk+uBt452o03PxaEHQVJrwR5uBT5UQQ1JWUvK2JULn8RQaSXTGu F08g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=llHWIe5zbQO1tbGH7RoiDrsh+BfbJOEpduoXXgWTYB0=; fh=0KzismZj+xI0Z//ZGdqKIH/FO9LtSZM7Yj4P0VtrCz0=; b=pv05e8KXOGa3x6rWhhsWVo/n/ClUXznlvPyM1mi6jBzWCOmCKperGC7J+AX+gf4XcF D9rPVAbC65VaAHkQG3Nw7X9g0yo6S9xV1/SNb/2ot+iTDM+LhKBAxUpEkW6ZeDaGCe0K 2S8GgNOGb+uGPntsYuyUrwhKprtfe07OqbilURQTJk29fPoIZhdW/VIrL8PWhgyiam1J oUYWoQJ/+o8UUyIQH4o2WKfdt4TfWXPAxppQRrMEdQbXiLyd1FKy07oO/o2vWOrOOkjq wSRAG4v/tH68yqrl2clEMGxEqfo2kRrbyoKmks6WxpFIbO5k/TVURJhMXgf0SorGwFB9 F9iQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=ozVbzGC0; spf=pass (google.com: domain of linux-kernel+bounces-14877-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-14877-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id t11-20020a170902e84b00b001d4c4dbfdabsi2007446plg.363.2024.01.02.13.53.07 for <ouuuleilei@gmail.com> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Jan 2024 13:53:07 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-14877-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=ozVbzGC0; spf=pass (google.com: domain of linux-kernel+bounces-14877-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-14877-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id DFC7E284A80 for <ouuuleilei@gmail.com>; Tue, 2 Jan 2024 21:53:06 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 8C9E31C280; Tue, 2 Jan 2024 21:46:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="ozVbzGC0" X-Original-To: linux-kernel@vger.kernel.org Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5FCB818EC9; Tue, 2 Jan 2024 21:46:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=quicinc.com Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 402LWKKV026436; Tue, 2 Jan 2024 21:46:31 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h= from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-type; s=qcppdkim1; bh=llHWIe5zbQO1tbGH7Roi Drsh+BfbJOEpduoXXgWTYB0=; b=ozVbzGC0xpO/eIhAQp8QzuVtcNah50ZVFv+O iILRiEvWot5J4ciLo0+b4XLKlik5bW8xYRmG2Jap4lyZ2/Obx30treqcrj3MuCsj QwemiIULNN6wwIsRfifJoebsVjIyK/7LseGlSJNP8w88pFR3DYDB6hrFU71E0KBP 9/I+I+651p2lo66MoZfpWIjeOXQPkhpflhLGeoZFxDM9mnlWlvoglN+tTbCoyBo6 1637xEJcVToATe6bJhuaeMXO6eiczB4k/esskKvCB+YREdqevxyhWPeEjeHGkyik EqxJ2L8iKdTj6H2Gly7HRCcqC6HwNq7VBu8bFlvlKxyYrUqZWQ== Received: from nalasppmta05.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3vcgub98m9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 02 Jan 2024 21:46:30 +0000 (GMT) Received: from nalasex01b.na.qualcomm.com (nalasex01b.na.qualcomm.com [10.47.209.197]) by NALASPPMTA05.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 402LkUMm003286 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 2 Jan 2024 21:46:30 GMT Received: from hu-wcheng-lv.qualcomm.com (10.49.16.6) by nalasex01b.na.qualcomm.com (10.47.209.197) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.40; Tue, 2 Jan 2024 13:46:29 -0800 From: Wesley Cheng <quic_wcheng@quicinc.com> To: <srinivas.kandagatla@linaro.org>, <mathias.nyman@intel.com>, <perex@perex.cz>, <conor+dt@kernel.org>, <corbet@lwn.net>, <gregkh@linuxfoundation.org>, <lgirdwood@gmail.com>, <andersson@kernel.org>, <krzysztof.kozlowski+dt@linaro.org>, <konrad.dybcio@linaro.org>, <Thinh.Nguyen@synopsys.com>, <broonie@kernel.org>, <bgoswami@quicinc.com>, <tiwai@suse.com>, <robh+dt@kernel.org>, <agross@kernel.org> CC: <linux-kernel@vger.kernel.org>, <devicetree@vger.kernel.org>, <linux-sound@vger.kernel.org>, <linux-usb@vger.kernel.org>, <linux-arm-msm@vger.kernel.org>, <linux-doc@vger.kernel.org>, <alsa-devel@alsa-project.org>, Wesley Cheng <quic_wcheng@quicinc.com> Subject: [PATCH v12 40/41] ASoC: qcom: Populate SoC components string Date: Tue, 2 Jan 2024 13:45:48 -0800 Message-ID: <20240102214549.22498-41-quic_wcheng@quicinc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20240102214549.22498-1-quic_wcheng@quicinc.com> References: <20240102214549.22498-1-quic_wcheng@quicinc.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: <linux-kernel.vger.kernel.org> List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org> List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org> MIME-Version: 1.0 Content-Type: text/plain X-ClientProxiedBy: nalasex01c.na.qualcomm.com (10.47.97.35) To nalasex01b.na.qualcomm.com (10.47.209.197) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: Dm8UMcdRg9yUlmI5fc9ixW1q_Fmxmcet X-Proofpoint-GUID: Dm8UMcdRg9yUlmI5fc9ixW1q_Fmxmcet X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-12-09_01,2023-12-07_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 lowpriorityscore=0 phishscore=0 priorityscore=1501 clxscore=1015 mlxlogscore=999 impostorscore=0 adultscore=0 spamscore=0 mlxscore=0 bulkscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2311290000 definitions=main-2401020161 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1787017179637664150 X-GMAIL-MSGID: 1787017179637664150 |
Series |
Introduce QC USB SND audio offloading support
|
|
Commit Message
Wesley Cheng
Jan. 2, 2024, 9:45 p.m. UTC
For userspace to know about certain capabilities of the current platform
card, add tags to the components string that it can use to enable support
for that audio path. In case of USB offloading, the "usboffldplybk: 1" tag
is added to the string.
Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com>
---
sound/soc/qcom/common.c | 22 ++++++++++++++++++++++
sound/soc/qcom/common.h | 1 +
sound/soc/qcom/sm8250.c | 3 +++
3 files changed, 26 insertions(+)
diff --git a/sound/soc/qcom/common.c b/sound/soc/qcom/common.c index 2645436b08c4..4a4e4c14e625 100644 --- a/sound/soc/qcom/common.c +++ b/sound/soc/qcom/common.c @@ -258,4 +258,26 @@ int qcom_snd_usb_offload_jack_setup(struct snd_soc_pcm_runtime *rtd, return 0; } EXPORT_SYMBOL_GPL(qcom_snd_usb_offload_jack_setup); + +int qcom_snd_add_components_string(struct snd_soc_pcm_runtime *rtd) +{ + struct snd_soc_dai *cpu_dai = snd_soc_rtd_to_cpu(rtd, 0); + struct snd_soc_card *card = rtd->card; + const char *prev = card->components; + + switch (cpu_dai->id) { + case USB_RX: + card->components = devm_kasprintf(card->dev, GFP_KERNEL, "%s %s", + card->components, + snd_soc_usb_get_components_tag(true)); + default: + break; + } + + if (prev && prev != card->components) + devm_kfree(card->dev, prev); + + return 0; +} +EXPORT_SYMBOL_GPL(qcom_snd_add_components_string); MODULE_LICENSE("GPL v2"); diff --git a/sound/soc/qcom/common.h b/sound/soc/qcom/common.h index fca3046c8674..8546723e0aa8 100644 --- a/sound/soc/qcom/common.h +++ b/sound/soc/qcom/common.h @@ -11,4 +11,5 @@ int qcom_snd_wcd_jack_setup(struct snd_soc_pcm_runtime *rtd, struct snd_soc_jack *jack, bool *jack_setup); int qcom_snd_usb_offload_jack_setup(struct snd_soc_pcm_runtime *rtd, struct snd_soc_jack *jack, bool *jack_setup); +int qcom_snd_add_components_string(struct snd_soc_pcm_runtime *rtd); #endif diff --git a/sound/soc/qcom/sm8250.c b/sound/soc/qcom/sm8250.c index c33a7c5fb8ad..d1c4f34d04f5 100644 --- a/sound/soc/qcom/sm8250.c +++ b/sound/soc/qcom/sm8250.c @@ -38,6 +38,9 @@ static int sm8250_snd_init(struct snd_soc_pcm_runtime *rtd) &data->usb_offload_jack_setup); else ret = qcom_snd_wcd_jack_setup(rtd, &data->jack, &data->jack_setup); + + qcom_snd_add_components_string(rtd); + return ret; }