Received: by 2002:a05:7412:37c9:b0:e2:908c:2ebd with SMTP id jz9csp2600878rdb; Fri, 22 Sep 2023 03:36:34 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGgKtvOC8L3KuwiLRLq5QVeyCIfft+tS0OR9eMOTJ4EfBBDXaGk9LPkTJX+1DOQcJ24mHzR X-Received: by 2002:a25:25d6:0:b0:d04:fc64:350 with SMTP id l205-20020a2525d6000000b00d04fc640350mr7756894ybl.2.1695378993894; Fri, 22 Sep 2023 03:36:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1695378993; cv=none; d=google.com; s=arc-20160816; b=Wuy/k0EUS60KNl5/JxOdnWlpxT7XChLQE2bEV9XGGdx+dTleVGWjw5jMLia57WvQdT cpGT88wDhL4bOSl/LTKgYYkF3Uwm8ofY3zDn2xzwcJ42MrLMVfSaA9YFK2vfvnRu/N6r VPuxLZyvJ2TTp0O1NPd52NMDamB1qn0P1jkjmwj5z4MTCVbYXV/46Bsx/FgRQl+B9PHS M8OT/jC23NebExAempjf1IVFQ4USa5et+/rI7imTLdeX1hJfz6MbiFcspFY1bOhimicH LFO/vu5sZXIEOXCcZn4Oj8bmp/CitOoo8IF+UntOUi5m+SJUNdLzurg991R+x9LQ8xlG 6pgw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=Kd7JVRVp+I+Xk7DXDTAeHHZpvD4f/oHbrP3CUMWtwu0=; fh=MhCCCRx4c0AeUz43uLzZOKA4YzcBN2mk3tAWrRRVvW4=; b=Sae/zqXcnWAZJsUZOXy7Q7Q5riDCXKwcdKGluaCS4zKK5ZpRrKdYf/7TXryvlgH9cY QVY+nR+mFQ99YZy7q75QA3As9zVEJDvCsFXZ7C/FEfkMsjjl+6LH2BaWmQlhPmS4CIaP Q6d6ReUEA+Z8nbyhHTSh8N83e25BYat7iwTdGtlfD9ZqgLgXpWnX3FsqdTrxBJp/+cv6 K5fhiunKcfMawI1MEQwhPA5AUA7WWeBUq1dYzk8e2BMNYyniY2USF3PosKfznvvlpnnw sPJtikxwJ5gNyHxNDOFIdWnLNGJZa+S3E1TRbrYo14EbfzGLoLx421IG9Ceagtrcdq1A noig== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=KODfubmM; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Return-Path: Received: from howler.vger.email (howler.vger.email. [2620:137:e000::3:4]) by mx.google.com with ESMTPS id n3-20020a632703000000b00573f703a239si3732177pgn.414.2023.09.22.03.36.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Sep 2023 03:36:33 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) client-ip=2620:137:e000::3:4; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=KODfubmM; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id 3F98C8537F4B; Thu, 21 Sep 2023 14:54:00 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233036AbjIUVx7 (ORCPT + 99 others); Thu, 21 Sep 2023 17:53:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39952 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231414AbjIUVxX (ORCPT ); Thu, 21 Sep 2023 17:53:23 -0400 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 24A2A3C31; Thu, 21 Sep 2023 14:49:40 -0700 (PDT) Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 38LLRrOA013210; Thu, 21 Sep 2023 21:49:19 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=Kd7JVRVp+I+Xk7DXDTAeHHZpvD4f/oHbrP3CUMWtwu0=; b=KODfubmMH6hyC4SSKc0eMU/CDJJJ5A747LJboSjZGWzDvLTgEdFWe8i245FnJL0bwc9J 8HINlHcuRKNGMeu+P7ytppdU+gMjW70L8ImCHYnOTVc9cAEOSdDMTzuJsFjWjmZcjfBx OrWUauCyWEPVAARPFbBhznTKXiEk+T2cxrMhPT9gfCZnWs/XeYtnZMsFyg5jW7z77VU3 cv/xeN+beuHhSs/yRBhmisBBffeFWypdvjtjrAkv++29VaY4dPE7g1tsAIiKdKu6VpEF DtO8kfkQhuiheh5ljyrcBbuJgzQZHjdRcL6QQ2eYjjsX05/tVPXOUj35ZUsu26g5faPp gA== Received: from nalasppmta05.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3t8u5n0bq7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 21 Sep 2023 21:49:18 +0000 Received: from nalasex01b.na.qualcomm.com (nalasex01b.na.qualcomm.com [10.47.209.197]) by NALASPPMTA05.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 38LLn1x4009041 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 21 Sep 2023 21:49:01 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.36; Thu, 21 Sep 2023 14:49:00 -0700 From: Wesley Cheng To: , , , , , , , , , , , , , , CC: , , , , , Wesley Cheng Subject: [PATCH v7 27/33] ASoC: qcom: qdsp6: Add support to track available USB PCM devices Date: Thu, 21 Sep 2023 14:48:37 -0700 Message-ID: <20230921214843.18450-28-quic_wcheng@quicinc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230921214843.18450-1-quic_wcheng@quicinc.com> References: <20230921214843.18450-1-quic_wcheng@quicinc.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.49.16.6] 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: 75RndmVpVo5bpEZIQfmVlQOetp4V0_oU X-Proofpoint-GUID: 75RndmVpVo5bpEZIQfmVlQOetp4V0_oU X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.267,Aquarius:18.0.980,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-09-21_19,2023-09-21_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=913 priorityscore=1501 malwarescore=0 spamscore=0 bulkscore=0 impostorscore=0 lowpriorityscore=0 mlxscore=0 clxscore=1015 adultscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2309180000 definitions=main-2309210189 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Thu, 21 Sep 2023 14:54:00 -0700 (PDT) The USB backend should know about which sound resources are being shared between the ASoC and USB SND paths. This can be utilized to properly select and maintain the offloading devices. Signed-off-by: Wesley Cheng --- sound/soc/qcom/qdsp6/q6usb.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/sound/soc/qcom/qdsp6/q6usb.c b/sound/soc/qcom/qdsp6/q6usb.c index 329a7d4a3c01..d697cbe7f184 100644 --- a/sound/soc/qcom/qdsp6/q6usb.c +++ b/sound/soc/qcom/qdsp6/q6usb.c @@ -25,10 +25,18 @@ #define SID_MASK 0xF +struct q6usb_status { + unsigned int num_pcm; + unsigned int chip_index; + unsigned int pcm_index; +}; + struct q6usb_port_data { struct q6afe_usb_cfg usb_cfg; struct snd_soc_usb *usb; struct q6usb_offload priv; + unsigned long available_card_slot; + struct q6usb_status status[SNDRV_CARDS]; int active_idx; }; @@ -110,6 +118,14 @@ static int q6usb_alsa_connection_cb(struct snd_soc_usb *usb, if (connected) { /* We only track the latest USB headset plugged in */ data->active_idx = sdev->card_idx; + + set_bit(sdev->card_idx, &data->available_card_slot); + data->status[sdev->card_idx].num_pcm = sdev->num_playback; + data->status[sdev->card_idx].chip_index = sdev->chip_idx; + } else { + clear_bit(sdev->card_idx, &data->available_card_slot); + data->status[sdev->card_idx].num_pcm = 0; + data->status[sdev->card_idx].chip_index = 0; } return 0;