From patchwork Tue Jan 2 21:45:35 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wesley Cheng X-Patchwork-Id: 184496 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:6f82:b0:100:9c79:88ff with SMTP id tb2csp4701491dyb; Tue, 2 Jan 2024 13:55:08 -0800 (PST) X-Google-Smtp-Source: AGHT+IEpZxLAZgqjewlGF96cSgQm/6EmW06zhSN2V/03anU4nD0X1tCrVmvV/tt0cR0K0K4+FkMD X-Received: by 2002:a05:6e02:3498:b0:35f:daa6:6882 with SMTP id bp24-20020a056e02349800b0035fdaa66882mr26551287ilb.41.1704232508281; Tue, 02 Jan 2024 13:55:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1704232508; cv=none; d=google.com; s=arc-20160816; b=i0pWrOVEZNBbGbNJBZb6HKgrRaCkN0zm+/kRCYvcET0WncczDvfHnZ38ABl9FjXCCT TzJKw3TW9/7Ti+Mf61ceBjYmdxOQDHZv+LiXR9EoTu6R/+YoafSx9Zc4fpkYKp6i3eyK 2JyZF2Xez4IUZuVIlrVC9NUrc4K+55aCQQlvUQXnSpA0Ebu6Cyg02QsjAzCMAew0cEU9 SmtGNR9/qHDJapW5zXX778SXuWHQe5xqOdSIkT5Gp/5TsZbeU2brTC5eySXBz+9rlrqR yLIsSyai5H21rEqTLfqsISwFpKRv5sIuQd/wcggBRsqg63bpM7/ANZa/52nWaT2wPYin IsDA== 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=XAjP/suaGVt0Jl70MctLUkzcLKgX0tW8GjxhQq1UFf8=; fh=0KzismZj+xI0Z//ZGdqKIH/FO9LtSZM7Yj4P0VtrCz0=; b=nG+uqjdadpZ0dB9OreQ9th2FvcwWr7TkM9T91lp2ybAlIpQ+dtlut/9Sw+gUWWH4Ia CmmW4usaQSuUoVSYZRbqu3LxhbwU/1BFr/xeqS2rVvq4mJ5dT2lhc2IL5zpCx7NSOkxA jnx/xIWjvj7PjV/td+dZYg5wXq4upZES6+JIjfxumonm+QjP2qqOMj8Hl4Vsc3sOm9zV 3qSjFQxSXiLsAsy3Rt5QKTRfXwtTZitD85okP2ASNec94SAC9gqxU3GnJwfbSBefe5un mtbIkrKtXuLENBsyDf2PlvKLMTM7H7R54CZDkn8mZsCOlnB8QGiBGIJ5FLZAR9UeV4hv SPcQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=ERCHBCkn; spf=pass (google.com: domain of linux-kernel+bounces-14883-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-14883-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 t71-20020a63814a000000b005ce01026222si17208632pgd.49.2024.01.02.13.55.08 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Jan 2024 13:55:08 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-14883-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=ERCHBCkn; spf=pass (google.com: domain of linux-kernel+bounces-14883-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-14883-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 1B61328412C for ; Tue, 2 Jan 2024 21:55:03 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id E202D1D699; Tue, 2 Jan 2024 21:46:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="ERCHBCkn" X-Original-To: linux-kernel@vger.kernel.org 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 C487A1C6BC; Tue, 2 Jan 2024 21:46:53 +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 (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 402LRdP5018685; Tue, 2 Jan 2024 21:46: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=XAjP/suaGVt0Jl70MctL UkzcLKgX0tW8GjxhQq1UFf8=; b=ERCHBCkniZ4tWVLHLPQ7BK3Mj75FzUZZXzxC OLODr0eLbndmq19/5k2qYjJE7YPp5lf3Ar7NCQjqM6Eb7XAf3MVuxjCXhQXSEhI6 1/oi8+6BTp72TP6OTsILPQgt0B0w42/O/QUB0UWvrEAJrjnR5NLtSppAg8bslY92 iBb72aMp3WPRYMCAiwHrPKVqnkgB55AiMP9C2z+w8p4P0CNvVDzz0LJepY/tYtcB ZhnM+x5Aernj4LcaaWbSOTvvy2qSxC84ZH5JZ1w8y4f1H15xR+Isd+SvIOXFEzO4 Nr3G20y+3AdCI1aoQKUAvN5eso8uBlScjqCgm4HbFOLV6T9ZKg== Received: from nalasppmta01.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3vcbnb1s6k-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 02 Jan 2024 21:46:27 +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 402LkQ6c009875 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 2 Jan 2024 21:46: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; Tue, 2 Jan 2024 13:46:25 -0800 From: Wesley Cheng To: , , , , , , , , , , , , , , , CC: , , , , , , , Wesley Cheng Subject: [PATCH v12 27/41] ALSA: usb-audio: qcom: Populate PCM and USB chip information Date: Tue, 2 Jan 2024 13:45:35 -0800 Message-ID: <20240102214549.22498-28-quic_wcheng@quicinc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20240102214549.22498-1-quic_wcheng@quicinc.com> References: <20240102214549.22498-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-ORIG-GUID: q36-UaQaTfLhStr5ALqv-3NuFqDwlznd X-Proofpoint-GUID: q36-UaQaTfLhStr5ALqv-3NuFqDwlznd 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 priorityscore=1501 phishscore=0 mlxlogscore=653 mlxscore=0 bulkscore=0 impostorscore=0 suspectscore=0 clxscore=1015 malwarescore=0 spamscore=0 lowpriorityscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2311290000 definitions=main-2401020161 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1787017306735846246 X-GMAIL-MSGID: 1787017306735846246 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 cd2267542a66..256685b5569c 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;