From patchwork Wed Feb 28 01:36:05 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wesley Cheng X-Patchwork-Id: 207593 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a81b:b0:108:e6aa:91d0 with SMTP id bq27csp3079177dyb; Tue, 27 Feb 2024 17:47:16 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCXVjfOzqg4bUDD1GyOKSm0WJOnxoua/GptleTAKeLEuUGa3ynEK2cPmlYjp6ujQTlynMG9PTGS4DU/PUNMfcdGa9VoV+A== X-Google-Smtp-Source: AGHT+IF1/UXjmaRhOPm+N5Px15sOfNeeMKVUJ42KZQB2StvfkISRzK9Wn2Ji45MoCyZHMGIWqFM2 X-Received: by 2002:a05:6358:61c8:b0:17b:5c63:906e with SMTP id x8-20020a05635861c800b0017b5c63906emr13550157rwx.31.1709084836417; Tue, 27 Feb 2024 17:47:16 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709084836; cv=pass; d=google.com; s=arc-20160816; b=DFsmz//yYGPn0rDZEaVufEem+aANvpatC44zozrKb9lN1MUU18RcT8D5OgYv+cWK0m FUohVYdULOGF3cRtgKg6EL6gwbOwgMFBq1+ospnsay7CdQzHXgcLyJMWPTTXhSZRNq9C waUl4xDi93nZczKsNeC3FyVpONn49ZWDIS1TGjhPKLGfv1H3cMbJZJUwOZFNCTjd/gO3 2sPdya6Z1+t2UXyDRtOwXIYgnS7wk2ZnoPfNT0xXKxDiFo5gAcW2TLWMqAkFu7nTJwKP r4KJ4js9JZ4Vs29pqKAiQln+KQW0IRyYEZXV/EPzUfHg4D6sm5I2NRQhIsBypiLC6DPA JDlQ== 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=Du1ElfDmgf0dr8MF9FiW/I7I4am897teJWgiXyZaw5SNTvlmgCIR4cT/T/0+OGm6pK yIzVJnN272Uwj8iWoc1RqlFcyPpuzfmfI38COz3QItepyq7UsGs2Zx0hVEAZSsyRn57g vtS2pi+UifzuFcqohgACujmJ1ZOwixHcX32Qvo5ecNZHz6KPeTBvT/edOs+uEz7/e4oH zcTf+MqKtWgMRAORIN1XGecTwTL9hmUtf31HbOdrKRm9A6Hz/AAubuMdRdO/QoORl1P4 40yk+ZF3IvTs6G2BrqskXHe5AyeP9V/sP37sAxwvHTTDZIp8SMwmUOQ7fb3nUntz2WZe w5TQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=BjMbWit9; 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-84349-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-84349-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. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id y124-20020a633282000000b005dba8009eb2si6416471pgy.724.2024.02.27.17.47.16 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Feb 2024 17:47:16 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-84349-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=BjMbWit9; 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-84349-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-84349-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 9700F286414 for ; Wed, 28 Feb 2024 01:45:24 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 59ED3442C; Wed, 28 Feb 2024 01:37:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="BjMbWit9" 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 439F4610C; Wed, 28 Feb 2024 01:36:53 +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=1709084215; cv=none; b=tXw/6wVE/ZvFYn48nxXcKGyrAXaJivu4MOZPUN2Xf1UUXLjV12Q0JUOnRTFI8CJGm3VBOVNd+GvnxI6ml9rJziyM3eWAYxJmzFip42sq1K1ufDTMKrDR58Vom7hm3/FOU7EZoIeSYBl3QxFR+JWNLEtn/KXVhHgLLDeb38onYJ0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709084215; c=relaxed/simple; bh=SLayrMPrKCeX3mTJTZZw4ERHQvhGxVB9sd/XJS5bt1s=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=J4bsRiGq5pEW80Cl+OobZR37OobfVLQOZGZKHm1ub3VqpxPyniqgJbfwwxXoWP+sLtAgWxSBUHQQoQkUVi6M19GjTLCWlj6O1FdXuMzHHHvq+ww24rmzAHUhngukb9Cp7xvFyieHCGE5Kqwh+PuixonGIADEtbuhHo2ErrsobKQ= 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=BjMbWit9; 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 (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 41S1725w005413; Wed, 28 Feb 2024 01:36:38 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=BjMbWit9vbmwKwriaiXg7Z+fDFzlbpdpUrTG V6ILjjpNu/OYZULHIDFNkgYLMYKqv8qv5WH85J0ZPc8y90xIa+u7Dd0rurtLY5ZK Cj8FmsxjxNyY6Tn6k6DSL9rpP2HuXqQ/FtohJ3X2VQa7+QlEzb/KTGA6pOrPyANn QllpMW79AsGGsyLcNzptvAs1HzKirP+yCXuPRo7TiI9UVaTjOrKr4wOarMlvVRCO aNW3MdpJhDFnfuLxxYVZlN9Q6SOkDtgkOTwlWWZ+/WE5H0fOQh+kvNAwFj2b3e1P Zr8wpkbmsHGuNjeshaavsnWKGTbq/clQm1VfbIk+Yh0ZJyl2nw== Received: from nalasppmta04.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3wh507b3eg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 28 Feb 2024 01:36:37 +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 41S1aaiZ016744 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 28 Feb 2024 01:36:36 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, 27 Feb 2024 17:36:36 -0800 From: Wesley Cheng To: , , , , , , , , , , , , , , CC: , , , , , , , Wesley Cheng Subject: [PATCH v18 27/41] ALSA: usb-audio: qcom: Populate PCM and USB chip information Date: Tue, 27 Feb 2024 17:36:05 -0800 Message-ID: <20240228013619.29758-28-quic_wcheng@quicinc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20240228013619.29758-1-quic_wcheng@quicinc.com> References: <20240228013619.29758-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: nalasex01b.na.qualcomm.com (10.47.209.197) 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: Mi5SiabtE4oROrKI4baYyu5VCqxQni6L X-Proofpoint-GUID: Mi5SiabtE4oROrKI4baYyu5VCqxQni6L 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-27_11,2024-02-27_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 suspectscore=0 clxscore=1015 mlxscore=0 malwarescore=0 impostorscore=0 phishscore=0 lowpriorityscore=0 mlxlogscore=797 priorityscore=1501 spamscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2402120000 definitions=main-2402280011 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1792105341414863532 X-GMAIL-MSGID: 1792105341414863532 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;