Received: by 2002:a05:7412:1e0b:b0:fc:a2b0:25d7 with SMTP id kr11csp1433581rdb; Fri, 16 Feb 2024 16:29:11 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCVE7Q4hg+PXgsGcXm0I1v5jGICGsFey4rXEe2dImwOSGpBzFXhWIpwZ+QZRjDvzbz/mv2wMKytU9Z1gMZhcX6Gl/ht3EU/MqOJxjn7QMg== X-Google-Smtp-Source: AGHT+IGVxwcKfu5bDVZzG0UcwPcMNszFHrLzaRhGAFc3Ct5HjYaspOwIdBXi/lYB408XZhFBEzq0 X-Received: by 2002:a05:6830:1657:b0:6e4:2544:f593 with SMTP id h23-20020a056830165700b006e42544f593mr6308715otr.14.1708129751679; Fri, 16 Feb 2024 16:29:11 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708129751; cv=pass; d=google.com; s=arc-20160816; b=ff76xLP8On4w/Hs8AiABQAk3wiepz/JvNa+zIzlE8RuUY7LcmkQkm2uO0jB3fek2r5 AWkrYtg/64irmHLfZstu3Y87GM/JCUJx9ymdw5pL2ewUfb5zSVIjXRHw3MkDm6ZkXXpk cYpcsX2xOVmX4my4CK9shuVEInkLw1emDOVJG/XEhO9U3nopiqvjpp0ZE+v0uwKm47Iu Qo6C9uDAE0D12Ko8DlmJsJmkMU0g7JVRXYtm7T4nU310KzYXo+pE12o/vHDmCxc/LCQT 07HXRDDSaxtR7Xbt2s3+UcToQdOT2KBJgS/2ppEeF7s1iRz9GQ5YcxLlGTAjH/Z6GU58 9oaA== 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=WE4eMHV9NquhxKSBZAOh+jR3lIlYYdfEvIV5PbHAVjw=; fh=VKrp0Y7I/+wT36BfKZ6oI/4N9BIwFCn9zerObkOrgGw=; b=n+7fJAzB2KUDPAwJYKgE+Y38G4ar0D7tybtjxZW8HuNcIIEspzyQCLGrmUGViCWt8P q0lJ8cHBfS/Nqd0Mm5hwWonVN/efARFSq3ZyPFstXosXN/9sE3bvMAas6Uu0VScG9S7V yHa1i6fqGps3ImUpKzTvqnmmXR5OFb/e829ZqTYzKPOWzKoRGSQ4lCxz0MPxotPUiTyX 7qoqnRVRxmcdHR88QI56gXdSfr0mow4Lq7NJhH0z6qn6qbZxrCSQoRu5bC1xXcWARC9X QZJQE281Yp0mIFUYnWysAejxvOOkw3u/j6kDQ9saAa1N/fboDT4BCMODCXOCNFhxg5E4 bEWQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=pa0haGX4; 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-69571-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-69571-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id g15-20020a63374f000000b005dc4f115f26si651235pgn.537.2024.02.16.16.29.09 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 16 Feb 2024 16:29:11 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-69571-linux.lists.archive=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=pa0haGX4; 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-69571-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-69571-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 sv.mirrors.kernel.org (Postfix) with ESMTPS id 66D2A2852E9 for ; Sat, 17 Feb 2024 00:25:37 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 02DC2148FFA; Sat, 17 Feb 2024 00:11:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="pa0haGX4" Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.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 00BB867E78; Sat, 17 Feb 2024 00:11:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708128667; cv=none; b=ja0BDIhYRSgMenmZnAZCBxiJ4GryTgqzWT0cw65jyWoCJNsA3VcytRJxJHhyrQhpM3Jy1ED9UDFOCLnjCXoqU7kUKcrxuJsMD/hZBez0gRuzM2vDzTEKEZ/KUmqpmveu0sP+BxKxtfunx97iRXKFOZ6NaeiP3RyJCNkzjVQnsTQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708128667; c=relaxed/simple; bh=SLayrMPrKCeX3mTJTZZw4ERHQvhGxVB9sd/XJS5bt1s=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=TgpZtYMRSordbH9NnzOBK3ukdJrGDK9Qn4spHewTYGMbD7caRdazVvpYVPwMkflYklD3e3rrqj+r/VXHlD9svA3VcZ0KZs46sA6+RPaoZRyxMEcbNlIE0Mpj9S5IJSvlur0XM82pK7ZB4DfoGI5bYqhesfNsncby1XYAA0ty5ho= 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=pa0haGX4; arc=none smtp.client-ip=205.220.180.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 (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 41GNuPhd022768; Sat, 17 Feb 2024 00:10:41 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=WE4eMHV9NquhxKSBZAOh +jR3lIlYYdfEvIV5PbHAVjw=; b=pa0haGX4as0lPzd8MXFeLsKCqSNRSC/1IZch F2U6vps0xDn58hsy3vLrfrAQyemmCkAuy8DKg9Cg9d1pNwNOBDbNY3T9pqXHWUgE W0v3vdCNBpUsyZ+YuATPhbdi+hUav41zNA1RQiPgGF5xSdPazcDdBDOh60c5SWWX cwWG96YPaehMzPtQC/DKm81u+WvQvzgLHXzxv5SPT1fFfzKiGkNhX8uVoIUKmlg/ x04mMgliba26EB43F/kd9X4+HKzbemINocWsxNn4VjDUdoHt93cVjPW10qw3J8bC RxbSHdiuvnNMODAmP1dE8/juM3RzRgNsrwdb/sJompVAJi8JBQ== Received: from nalasppmta05.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3w9fkfcv5a-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sat, 17 Feb 2024 00:10:41 +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 41H0Aet8017245 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sat, 17 Feb 2024 00:10:40 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; Fri, 16 Feb 2024 16:10:40 -0800 From: Wesley Cheng To: , , , , , , , , , , , , , , CC: , , , , , , , Wesley Cheng Subject: [PATCH v17 37/51] ALSA: usb-audio: qcom: Populate PCM and USB chip information Date: Fri, 16 Feb 2024 16:10:03 -0800 Message-ID: <20240217001017.29969-38-quic_wcheng@quicinc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20240217001017.29969-1-quic_wcheng@quicinc.com> References: <20240217001017.29969-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-ORIG-GUID: VtZe2fQtOnjdEPlUgjipHJB2zWeSIovF X-Proofpoint-GUID: VtZe2fQtOnjdEPlUgjipHJB2zWeSIovF X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-02-16_23,2024-02-16_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 adultscore=0 lowpriorityscore=0 impostorscore=0 mlxlogscore=797 spamscore=0 bulkscore=0 suspectscore=0 mlxscore=0 phishscore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2401310000 definitions=main-2402160189 Currently, only the index to the USB SND card array is passed to the USB backend. Pass through more information, specifically the USB SND card number and the number of PCM devices available. This allows for the DPCM backend to determine what USB resources are available during situations, such as USB audio offloading. Signed-off-by: Wesley Cheng --- sound/usb/qcom/qc_audio_offload.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/sound/usb/qcom/qc_audio_offload.c b/sound/usb/qcom/qc_audio_offload.c index db68c6c605eb..4deec0b6fc08 100644 --- a/sound/usb/qcom/qc_audio_offload.c +++ b/sound/usb/qcom/qc_audio_offload.c @@ -170,6 +170,21 @@ enum usb_qmi_audio_format { USB_QMI_PCM_FORMAT_U32_BE, }; +static int usb_qmi_get_pcm_num(struct snd_usb_audio *chip, int direction) +{ + struct snd_usb_substream *subs = NULL; + struct snd_usb_stream *as; + int count = 0; + + list_for_each_entry(as, &chip->pcm_list, list) { + subs = &as->substream[direction]; + if (subs->ep_num) + count++; + } + + return count; +} + static enum usb_qmi_audio_device_speed_enum_v01 get_speed_info(enum usb_device_speed udev_speed) { @@ -1638,6 +1653,8 @@ static void qc_usb_audio_offload_probe(struct snd_usb_audio *chip) sdev->card_idx = chip->card->number; sdev->chip_idx = chip->index; + sdev->num_playback = usb_qmi_get_pcm_num(chip, 0); + sdev->num_capture = usb_qmi_get_pcm_num(chip, 1); uadev[chip->card->number].sdev = sdev; uaudio_qdev->last_card_num = chip->card->number;