From patchwork Wed Dec 20 22:45:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wesley Cheng X-Patchwork-Id: 181829 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:2483:b0:fb:cd0c:d3e with SMTP id q3csp57987dyi; Wed, 20 Dec 2023 14:58:27 -0800 (PST) X-Google-Smtp-Source: AGHT+IGDM7VBqiGGVdHxnWgniCXvAEcWD8Hbf6HJGIypijD6vK7mlhPlT8LIBYKgl6ZzjOFdZ5NV X-Received: by 2002:a17:903:280c:b0:1d3:e250:eb68 with SMTP id kp12-20020a170903280c00b001d3e250eb68mr3187255plb.110.1703113107601; Wed, 20 Dec 2023 14:58:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1703113107; cv=none; d=google.com; s=arc-20160816; b=GRA4UiVI+YZswAhzZEjaW6yUHdNQHqPULJMwnh9Ow9LBR06nmujl1SvuPm0+0WxANL ZuYf6IlmBv7QrpBm71u31oVP7gG68lX4mGxKLCCQ/o6CNKmNsiIyy0XCrsrlY914aXdG BC8wiBOnMFOB6qQuXQjfgaPws8fuTmd8oosMyzEqogMrmMjWFU124WXOLhZed174T78R CZYWNXaKGULUyEhFtgYRioqnXOTWK6ItQzGgXOB2vGNkE30rXvSsS9lFIp3n/wyGgSLd ipwvKyvkP0y1yUTUv6sAlGV6ZlgV3nsPrXrdKJfEfO8g+QeHHRbf06lro+MX+GSwZqDm Ayjg== 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=ZvoS3HLjg5Fu4BDsgBt8WUSU9w+4N+LsV93zchjmxcY=; fh=0KzismZj+xI0Z//ZGdqKIH/FO9LtSZM7Yj4P0VtrCz0=; b=UI2ZFYxe9XUspTM2IdApGRsJMxQavCIbTW/ed9bktaPHLx8tKNxHs0LR0u4ruub+w0 0JaAbNP+wMbcrx1TF4ALW/ubZOV/4aB8I0/bMgGV8D301RsR09WZXgxhsgFUBavbJ2z0 67VIDfTUO+GTcNgu9TvBti7sTvifsM4G/bJuU72r7DuoINEBrGx1xqODvWgZIbgHHXlr xL9bai4Lau3D8zIGk9IooTclqA0GdX9i06UDIFH3/GAFwjl48XDXDOLZmJ9eewxPtqRs XPQt1aPWdBsXwHSsvOL6ndj735hoeSKwrk2P5FBfsiD3DCTrPJE33RBFtpkODXye/Or6 L6Fw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=kjDc2hPg; spf=pass (google.com: domain of linux-kernel+bounces-7555-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-7555-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 j9-20020a17090276c900b001d049eca370si355523plt.589.2023.12.20.14.58.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Dec 2023 14:58:27 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-7555-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=kjDc2hPg; spf=pass (google.com: domain of linux-kernel+bounces-7555-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-7555-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 A22F0285592 for ; Wed, 20 Dec 2023 22:58:09 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 980F95C914; Wed, 20 Dec 2023 22:46:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="kjDc2hPg" 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 9ECFD4B5A2; Wed, 20 Dec 2023 22:46:16 +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 (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 3BKMinr6029711; Wed, 20 Dec 2023 22:46:03 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=ZvoS3HLjg5Fu4BDsgBt8 WUSU9w+4N+LsV93zchjmxcY=; b=kjDc2hPgnz02282/MzX3yTegz37D4mN1Zi+B f7tFDkMWc+p97Ub0r8nWjvqlY5s4TcQA0lrHQImf3nkss1rNMmL8CVdpw2XXaIZ+ wniusKnb79nDp+GQAeuxtbpybyV0YlLqyGXw9zSTnJ/eCtLr/St6gIaOCmOO6tso Bbxa77jXrIZpYcaUdHjM29MWnilNj+XB7kaAXcPEpioeQzZ2Y5NtWg+jy55Mpdo2 moidw/G3aa0ADapBUMHGsFhDjLs4PlxsG+/Qf1KmCIRGBzx1KFjNkPKRsEvryc4c LSaKpGbYgQYIoONkXEGbrqQI+VWCAs6Yi5NEw/yTP6bt+4r+9w== Received: from nalasppmta01.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3v37vxw2sn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 20 Dec 2023 22:46:02 +0000 (GMT) Received: from nalasex01b.na.qualcomm.com (nalasex01b.na.qualcomm.com [10.47.209.197]) by NALASPPMTA01.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 3BKMk2qs008384 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 20 Dec 2023 22:46:02 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; Wed, 20 Dec 2023 14:46:01 -0800 From: Wesley Cheng To: , , , , , , , , , , , , , , , CC: , , , , , , , Wesley Cheng Subject: [PATCH v11 27/41] ALSA: usb-audio: qcom: Populate PCM and USB chip information Date: Wed, 20 Dec 2023 14:45:30 -0800 Message-ID: <20231220224544.18031-28-quic_wcheng@quicinc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20231220224544.18031-1-quic_wcheng@quicinc.com> References: <20231220224544.18031-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: 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: d2aO1XaPPRnLISaPE8UVo2Uo2qn9kD27 X-Proofpoint-GUID: d2aO1XaPPRnLISaPE8UVo2Uo2qn9kD27 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_02,2023-12-07_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=664 suspectscore=0 impostorscore=0 lowpriorityscore=0 malwarescore=0 bulkscore=0 phishscore=0 spamscore=0 clxscore=1015 mlxscore=0 adultscore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2311290000 definitions=main-2312200163 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1785843530006259407 X-GMAIL-MSGID: 1785843530006259407 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 754c4242f8bc..1104499f89f7 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) { @@ -1627,6 +1642,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;