Received: by 2002:a89:48b:0:b0:1f5:f2ab:c469 with SMTP id a11csp1409465lqd; Thu, 25 Apr 2024 15:01:32 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCVOg3QEqY/eFLmmbBCV3fTOWHkR554uoQUsZudCEK4x4ZMIBmiFQLhjuFuVxXJtUV8ug70Iu5PTXx7pahMh2iXko3mkeJq3YilWQD0JZQ== X-Google-Smtp-Source: AGHT+IH+1OX7397NlshguhfjGUVvDcvxs07dBaMGUt89wAK2DIE81MscFILPp6kN3WHD2UVSuhfc X-Received: by 2002:a17:906:3102:b0:a58:9707:6857 with SMTP id 2-20020a170906310200b00a5897076857mr607423ejx.12.1714082492212; Thu, 25 Apr 2024 15:01:32 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1714082492; cv=pass; d=google.com; s=arc-20160816; b=XrAgKvNnIlkmBhnDCbeV0jETxfbLUFLWFpaM8RQS2tovnYhzpeOWWODHZ0arj5QrpZ /PP5etmx8hh935YFHR+UVN3d2977r417n11NrhxBPEp/pkQDuh4/0O4aesIEhj5pF2Xw mFEBdwFWz7LsJcalLZdEcnY4GqazLknX1/EQ3dtezjdocPlMdBKvKDqsdGEdm4iJtyE+ U0gaSW2eti8P8iM1FyNlWU0E1gLDf/ARPoSJ9sqwZ+vwoDeFv7/1PM0QhiwizyWTnRXh a4cl3nHzNkhCId7RN0xB8c/rRhJT5kzHXPzNhbF72eCeNBz8AsheFtALryIS1aPmdZIM 1aKQ== ARC-Message-Signature: i=2; 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=5uoGJwSD9C2YGZyRc+IK0V5FTPw3VvdAlOyGPREG8wI=; fh=usWEz1eJjYCle08WABmDyuqCrJGq9m48/LVlmybnzRs=; b=XTEOir92OePDRpW7vpWyR4lAQm+dCLLNfvQNkFossddl23UNmi4gm/WT8E2U9w+Qg9 yNx2RgMZCU3zgElBaQ8i9hmiUyeugHC1j7+C8+mqJACHAu7cOPlTnHB+DQhv58l8vOyb tb3FxXVC4/meApr4Vo3ugOYhkk9dRQY+XlaS56Tf1mssyYM9Y/8ibwgKdm0/cmwbu0PH SzE+T/X+PKNklSy/gT8/uP0yVFplkF3o2Iy9X7vp/OuN7urQ8aj9jsUa1GkLSGY3ZS4+ BOrEY4Lme54NjyCiLIK0wi+QfZ5qWhmTPDFSdTBE2z7NBgwvkhqZOWBoIuef9LvS85su PLtA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=M+o8lX3r; arc=pass (i=1 spf=pass spfdomain=quicinc.com dkim=pass dkdomain=quicinc.com dmarc=pass fromdomain=quicinc.com); spf=pass (google.com: domain of linux-kernel+bounces-159269-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-159269-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id w7-20020a170906480700b00a5213f8f9dasi10057165ejq.396.2024.04.25.15.01.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Apr 2024 15:01:32 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-159269-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=M+o8lX3r; arc=pass (i=1 spf=pass spfdomain=quicinc.com dkim=pass dkdomain=quicinc.com dmarc=pass fromdomain=quicinc.com); spf=pass (google.com: domain of linux-kernel+bounces-159269-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-159269-linux.lists.archive=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 am.mirrors.kernel.org (Postfix) with ESMTPS id C27501F2838E for ; Thu, 25 Apr 2024 22:01:31 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 093921A0AE0; Thu, 25 Apr 2024 21:52:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="M+o8lX3r" 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 5206C171663; Thu, 25 Apr 2024 21:52:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714081941; cv=none; b=oLHFmGnlMQtZm2wiJDVH/4RNvN4e0sjUT4/N6WkeVJZr5L7a6NLnTuw6T1943XUu7cM9aBrAWUE+3MwTi1vP+lEbj3Br2zI6wtee4WCdEOr+MRD+ohofNfNhY3cEL7j/F3AeTSmDUj20rIylFxaMTP/JA8NUs+82c1i6eeJHMx0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714081941; c=relaxed/simple; bh=+5mctwiPbGJWIC8A878mTRFjfB1bsvH1gd7x5+K/epQ=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=fe2ByPXUz7Rz2hPtfdKeZ9bFEQrGyAtzbZ0jzujurKEevXKE/02E4uUOhtF5YP4+4uttJBVEWskhvjUSdGuXLmv6XGLQ2QRu6WzGro48I0I/Essg6XykEkrOOEFkgM/mZJBHpDjCVDYIYtfJ4mJxoN1RnufvE22n6+mJ8fh5v8A= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com; spf=pass smtp.mailfrom=quicinc.com; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b=M+o8lX3r; arc=none smtp.client-ip=205.220.168.131 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 (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 43PLcY7h021747; Thu, 25 Apr 2024 21:51:49 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=5uoGJwSD9C2YGZyRc+IK 0V5FTPw3VvdAlOyGPREG8wI=; b=M+o8lX3rIs/NI4mJZZogyS30JFnPC5md+NJv krxvQq4Vmk+2LoyT0L+yQj4IzjtsZ0zZwpUwQqq9K5azK/ot1NNaDrJ5Z1B5+dbx VlEclfMfWGxL8UOOdsEHzeUxuYmekKDVA/ijUekx/HUZQrBXR5xo/k40MoQ2Pk8c Uxa+4CJmppPh2LIr8xaFutJhKR74xY/CsHRqb9Y6DrMkK27o6D5yi2KCito0lzLs XygGcR7RezPew9hPtnM6y+GhDF2Te7olxfFHSYYlPJmTpUK2FteavfoSYVKtAQBt jQJVma59yyRKZMUjWanllDtXtz9ES6KBEAUBn1P7bnfolgCw8g== Received: from nalasppmta02.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3xqengktbc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 25 Apr 2024 21:51:48 +0000 (GMT) Received: from nalasex01b.na.qualcomm.com (nalasex01b.na.qualcomm.com [10.47.209.197]) by NALASPPMTA02.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 43PLpmSE015500 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 25 Apr 2024 21:51:48 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.1544.9; Thu, 25 Apr 2024 14:51:47 -0700 From: Wesley Cheng To: , , , , , , , , , , , , , , CC: , , , , , , , Wesley Cheng Subject: [PATCH v20 40/41] ASoC: qcom: Populate SoC components string Date: Thu, 25 Apr 2024 14:51:24 -0700 Message-ID: <20240425215125.29761-41-quic_wcheng@quicinc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20240425215125.29761-1-quic_wcheng@quicinc.com> References: <20240425215125.29761-1-quic_wcheng@quicinc.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain X-ClientProxiedBy: nalasex01a.na.qualcomm.com (10.47.209.196) 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-GUID: EcL9enN48hUF8Wul_5x1oHqsgIFlzaYN X-Proofpoint-ORIG-GUID: EcL9enN48hUF8Wul_5x1oHqsgIFlzaYN X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1011,Hydra:6.0.650,FMLib:17.11.176.26 definitions=2024-04-25_21,2024-04-25_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0 mlxlogscore=999 phishscore=0 malwarescore=0 mlxscore=0 impostorscore=0 lowpriorityscore=0 adultscore=0 priorityscore=1501 clxscore=1015 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2404010003 definitions=main-2404250159 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 --- sound/soc/qcom/sm8250.c | 3 +++ sound/soc/qcom/usb_offload_utils.c | 22 ++++++++++++++++++++++ sound/soc/qcom/usb_offload_utils.h | 6 ++++++ 3 files changed, 31 insertions(+) diff --git a/sound/soc/qcom/sm8250.c b/sound/soc/qcom/sm8250.c index a4e87dfb1b93..5e3007e2e061 100644 --- a/sound/soc/qcom/sm8250.c +++ b/sound/soc/qcom/sm8250.c @@ -39,6 +39,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; } diff --git a/sound/soc/qcom/usb_offload_utils.c b/sound/soc/qcom/usb_offload_utils.c index 0be05c1f87a9..8b137e1593e5 100644 --- a/sound/soc/qcom/usb_offload_utils.c +++ b/sound/soc/qcom/usb_offload_utils.c @@ -26,4 +26,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"); diff --git a/sound/soc/qcom/usb_offload_utils.h b/sound/soc/qcom/usb_offload_utils.h index 283e81f57f43..03780a12a326 100644 --- a/sound/soc/qcom/usb_offload_utils.h +++ b/sound/soc/qcom/usb_offload_utils.h @@ -10,11 +10,17 @@ #if IS_ENABLED(CONFIG_SND_SOC_QCOM_OFFLOAD_UTILS) 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); #else static inline int qcom_snd_usb_offload_jack_setup(struct snd_soc_pcm_runtime *rtd, struct snd_soc_jack *jack, bool *jack_setup) { return -ENODEV; } + +static inline int qcom_snd_add_components_string(struct snd_soc_pcm_runtime *rtd) +{ + return -ENODEV; +} #endif /* IS_ENABLED(CONFIG_SND_SOC_QCOM_OFFLOAD_UTILS) */ #endif /* __QCOM_SND_USB_OFFLOAD_UTILS_H__ */