From patchwork Thu Feb 8 23:13:52 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wesley Cheng X-Patchwork-Id: 198663 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:50ea:b0:106:860b:bbdd with SMTP id r10csp516576dyd; Thu, 8 Feb 2024 15:31:29 -0800 (PST) X-Google-Smtp-Source: AGHT+IEJdfYY6VINeAz4rQvxWPlmdV76Y5eHQME9PM4D0O6iCD+dL37nvkHyW56nKLtSLvPTHP0X X-Received: by 2002:a05:622a:c5:b0:42a:b257:2019 with SMTP id p5-20020a05622a00c500b0042ab2572019mr779151qtw.39.1707435089437; Thu, 08 Feb 2024 15:31:29 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1707435089; cv=pass; d=google.com; s=arc-20160816; b=nDjvN/mEZBAehsNee6tvBIIJsHoqLGuK63m7DVxQOtMS65rtrk65N6z/5A7cyyGooV vJjpNoWIFUI2hZv6cnnmr+SaMk+WlmlJyXYyrh+xS4V/wF1SH3fXMYJp9M6ceLWjg7Or MZm0O/i0Cf+iQKxs30kGQ69c8y8lBbKPMR5wXtfZxC+2fT1eQkZYJkzPfh4cBSMNITeh mBmpdU4vaedId2g6KRAKA7ZhWARfkj0+Zg6eNjr+s8V0HGOIv4xGvvPN+JYaACBGb6bv 88YNsaqfQgcwFbcYat2BHm7HkVIHAsbRBSh0ceh/YeWWByHSRmkm7Ee1rztKuNlLES4b emkw== 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=DYlDaoMzMP8hhWYbnbuVllKnwKPUMw5nutuR92LPe2U=; fh=pdX+rtNgBfyktI8aW8QNKzGaq2YWu/AZWsfWib7GJjQ=; b=WjSf0UITU7pFsbm+Rh86wgyqbNYKsGQNld3I7saDeNFBbTYP22/KtoYZNFYHusIbQo 9pzQj7Zwx5zB4KyvQOeuV6Toi2vTXwiE+rURMMYswcNgvHBsd+CkSaYBcqkVrJae8pQC D1x3z2uaLhfe9RPe6FUGW3Qn2sC39g+edk9XFs/GJJqMIeO4xYn9jyzYMWRYotbFfUG8 ZON7hTaY/B/+zshM6hDNOgHfLqUt8TtKCATvYy2gkzo4NrSPJQU9JV2HBQL4xkZMB7JB hx/IL1rFIaSp3tVwHUtGvwsyGUt6v/UtQYDc2ZevrrMcHeURXjiIaigC7hfqynou9bb8 Zejw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=K2hj+YZu; 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-58839-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-58839-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com X-Forwarded-Encrypted: i=2; AJvYcCV5gl3qOqngvwk4uKq+yVQIE6I4sSDAIFN43htzJaGM5wTmlatQpqvVnnpi2ZVncN2Q/unVg2AF7jy55Q0ihEMYxzbe/Q== Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id k10-20020a05622a03ca00b0042c4c25cff7si581200qtx.657.2024.02.08.15.31.29 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Feb 2024 15:31:29 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-58839-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=K2hj+YZu; 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-58839-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-58839-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 ny.mirrors.kernel.org (Postfix) with ESMTPS id 147B61C262B3 for ; Thu, 8 Feb 2024 23:31:01 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id F2E646280A; Thu, 8 Feb 2024 23:15:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="K2hj+YZu" 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 720445026F; Thu, 8 Feb 2024 23:14:45 +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=1707434090; cv=none; b=BzLPd3X2pquQxQh2JKyI4y0+KJt3Ez4Pvfu+96FNBFFCde3ZjAUxwoRHAeyqD287lU24pwfIEiVkQRWVbG8VNghADf2PI0EbVqUh+whIVRSfXTG0tqyLho4pAQP5w1aqWiLP0/j/wlJlnU3QpTVahx+zdClhtRR4yvNkVE95qlE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707434090; c=relaxed/simple; bh=3t+oyyObCLNtDcTqp0pGT8TPY42C27S0xw+SlfeDuZ0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=s3Lx2WKpU0smDaxwwkdT+b8Npx4wKkYH/S8vVEc9ZE+9JDCHBPoKNJdE9xQ9BZlwo9eu1WFOqOQMKy+ceifBaeGwqYquMjTIo2NuetNFE2dDAT1LJR9DpzEy03nCh4o6mwo2wnREq/xqTy6lFIOIOt4/n0tWUK9lNWU62YXlWF8= 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=K2hj+YZu; 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 (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 418NEIaf017497; Thu, 8 Feb 2024 23:14:27 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=DYlDaoMzMP8hhWYbnbuV llKnwKPUMw5nutuR92LPe2U=; b=K2hj+YZu+y4JlOqaF68U0RvHAMROkv4naoV0 GtSSs8VXS38a8RiWCPNi69+sbnM/heSuhxDVp+ftlWMhwMjYOywgigyI6m2hezOT eF/N1TA5L01gGlvm1OFkNJWaVeWivpODNs1qJ0EB4F/+y/Sj1PttjtzE9i1a3uQ4 i3SqQ1ygSD69d5cvGAblj19ZSslQYeKpRV9eaDfl7s/d8by2CwnURsN3+ueXs1wU LLt39ke/NuZ9DnRPci5YMcQoSU5hhvWc7wSmXdW3A7HAxzkhw8heJXtTad1+osHg Z0cOGCnuLkjs8MAMhg0zuxG5RZlnwOZmtyX3XX99WPCRacf89A== Received: from nalasppmta03.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3w4sudj9yk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 08 Feb 2024 23:14:27 +0000 (GMT) Received: from nalasex01b.na.qualcomm.com (nalasex01b.na.qualcomm.com [10.47.209.197]) by NALASPPMTA03.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 418NEQQw009243 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 8 Feb 2024 23:14:26 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; Thu, 8 Feb 2024 15:14:26 -0800 From: Wesley Cheng To: , , , , , , , , , , , , , , CC: , , , , , , , Wesley Cheng Subject: [PATCH v14 39/53] ALSA: usb-audio: qcom: Populate PCM and USB chip information Date: Thu, 8 Feb 2024 15:13:52 -0800 Message-ID: <20240208231406.27397-40-quic_wcheng@quicinc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20240208231406.27397-1-quic_wcheng@quicinc.com> References: <20240208231406.27397-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 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-GUID: AgMmo6ObVps9fInl0heZldMqQcOSiLcZ X-Proofpoint-ORIG-GUID: AgMmo6ObVps9fInl0heZldMqQcOSiLcZ 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-08_11,2024-02-08_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 lowpriorityscore=0 spamscore=0 mlxscore=0 bulkscore=0 phishscore=0 mlxlogscore=678 clxscore=1015 priorityscore=1501 adultscore=0 malwarescore=0 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2401310000 definitions=main-2402080131 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1790375456499858950 X-GMAIL-MSGID: 1790375456499858950 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 31c0cf5916a0..17cee0cf2ff5 100644 --- a/sound/usb/qcom/qc_audio_offload.c +++ b/sound/usb/qcom/qc_audio_offload.c @@ -172,6 +172,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) { @@ -1626,6 +1641,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;