Received: by 2002:a89:48b:0:b0:1f5:f2ab:c469 with SMTP id a11csp1410067lqd; Thu, 25 Apr 2024 15:02:24 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCV5UspO34gPpQYJupntJYLhVEhuBX2aXRVDqnBcthcy6YJBwEffH1zix7Mo1JFluveG6dR9w6YqMs+ScicU3O0F/ZgANB/yMaq1RLWWcQ== X-Google-Smtp-Source: AGHT+IENs61PhldeRepj06z4V3TmuoCBaqwPbjfNyuJBHZptJRdEAZYL4vbSScZdmo/8o+zoYx9r X-Received: by 2002:a17:906:2583:b0:a58:8fc0:fbca with SMTP id m3-20020a170906258300b00a588fc0fbcamr538879ejb.45.1714082544157; Thu, 25 Apr 2024 15:02:24 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1714082544; cv=pass; d=google.com; s=arc-20160816; b=xwDiJcDAU2fPCmGNhahN+uH0FkA9p4kx4VPbEJdfwKPx3Zz2ehgAw4IWL3emi4UIgV y6zqYgVtY4X6r6NxHLc4qL979E4H63kEDYdMDWpc7EKiz0SowHXkn+zNKoX8NZczSE3n SH+oOUd5ThucjlHiIao4k8xvRFJ/G02zLfvoV2SO2mi+tOeUqIYNlRB68LN7RmkH8V/m AUKJPNyh6H4apalKnKi5Z2zyyPTK28p/hS5Dbnecilh3SpKHwz8BFqRjyccgSvqIE1KJ S/RoJLTdPK1y4GLfWZ7qMGYMCv3EKtC475dem5x/vB6UqlRd8hHG3Af2Yv2Amn7FYpCE vPhg== 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=usWEz1eJjYCle08WABmDyuqCrJGq9m48/LVlmybnzRs=; b=u8/d+NMnNilnhPyM4Ih5NlgnxT+SEfD3oY1XK0seBbHrwuK0GnCkNplg4/gmfCDB/6 +0OUEPb37SDKWUJD7d5H86HX/meYbAXP8RFb8mUR7/hfyLxpvaHjL1lzI5KiEX79KxBg K1qqlC8SkQCB7jEp485vlnrYBltE7GofnioNkceRBEvNVvUvwtFFdEZ6i/ZF/OaVWdSW zKTAtH08Z5NsvbgwIjK0DFb0pPkU4vu6VMDSKmDFmXNchbZqzqhDy5/vWkhk/t/80cSQ TKF9QdVwtYdq4K9BXtyPkynTb2yns9Jks9xr6GOa6axeRCOrM0D7xE9zlzXpy5Btgbzi /0mA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=VRclVXiZ; 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-159255-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-159255-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. [147.75.80.249]) by mx.google.com with ESMTPS id l16-20020a17090615d000b00a55b020eba9si6290486ejd.43.2024.04.25.15.02.24 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Apr 2024 15:02:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-159255-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=VRclVXiZ; 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-159255-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-159255-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 89D1C1F278A9 for ; Thu, 25 Apr 2024 21:56:34 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3470017A926; Thu, 25 Apr 2024 21:52:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="VRclVXiZ" 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 AF619171E4D; Thu, 25 Apr 2024 21:52:11 +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=1714081933; cv=none; b=Eku96JMBTO1zJDhYLazZUxiSYHxO9/tq+tLgFA7CyV12yG3fQVpwtnURe95On+iw2DrlUjDZES3YY0fbYW0jhJ5P7TJ30GFEKV/EiYiDwCydwkXkr2IRtz4UrDUIONlOSo2wGMrEoWGVJuvp5Kv3foyXvy4coB6xVhZAvOLA/vs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714081933; c=relaxed/simple; bh=SLayrMPrKCeX3mTJTZZw4ERHQvhGxVB9sd/XJS5bt1s=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=nhZjtv+7lq+WwJaMQSXcfnqvHkLsfDoXyGOxkg8KrJNpNCKkhk9XNFDoTgige2VsI7TFYQyaUzZ6d81/+DhSjwQPofNL09bwVfmEUv7KwfdMYbh3C/CcOkyHqWdrCzHFnB4cgeT70drfE3yBAD+EEl5Gs43IbEM+6onYSx0lpk4= 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=VRclVXiZ; 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 (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 43PLMv6U003536; Thu, 25 Apr 2024 21:51:46 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=VRclVXiZFLo/0nx7YZjecwgDVh2HEZDjgvKv MQrujQyZkkazjYvofP6MOYepeYiGOsyWXL2Pva39hjjBfebqXDYhDO7jAdmSEWuV tSLHBkKnLBt9MztkKbe4RuS0U7idWjxE6HkyWIaiz86tedb9yCC2kPGlKX7y9yV+ FRgWoRCPCtx2T+deJo6QeofjZO1Dc1byo1HOun3hDaKzjE6mtOw6G+VUC8SzM/B2 dzea5z0cUlKvCHXe5iHViKlG4/T2aB9Isj4s3VkU9F67mKJlt6tgUSH8YUeMdfbO rnLSB4oocxzh/GcD+9Ds/ptvVaN4l3aOTpDzChhOmCCroPIqSQ== Received: from nalasppmta04.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3xqx03852s-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 25 Apr 2024 21:51:45 +0000 (GMT) Received: from nalasex01b.na.qualcomm.com (nalasex01b.na.qualcomm.com [10.47.209.197]) by NALASPPMTA04.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 43PLpiU9028705 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 25 Apr 2024 21:51:44 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:44 -0700 From: Wesley Cheng To: , , , , , , , , , , , , , , CC: , , , , , , , Wesley Cheng Subject: [PATCH v20 27/41] ALSA: usb-audio: qcom: Populate PCM and USB chip information Date: Thu, 25 Apr 2024 14:51:11 -0700 Message-ID: <20240425215125.29761-28-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: Ogqy1Bk8HEKTCYr_IE23rgCyKLKyRUA6 X-Proofpoint-ORIG-GUID: Ogqy1Bk8HEKTCYr_IE23rgCyKLKyRUA6 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 priorityscore=1501 mlxscore=0 spamscore=0 phishscore=0 mlxlogscore=817 clxscore=1015 adultscore=0 lowpriorityscore=0 malwarescore=0 suspectscore=0 impostorscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2404010003 definitions=main-2404250159 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;