Received: by 2002:ab2:6203:0:b0:1f5:f2ab:c469 with SMTP id o3csp2597489lqt; Mon, 22 Apr 2024 16:04:34 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCWbgm3uIWpx2VIgbAT06QykMqhtGCyrbQSnS3e2FdblQ/quAwrT/r2a5sUMkuICtm+qQ7H1zTEpOXT3tjv15lrLri46A5PHKLpI+16l1Q== X-Google-Smtp-Source: AGHT+IHTw62F6t80DUoFns4CUICdgF6TFuRy0EygZYhHgfv+yLFBenX4CBn8QdbwS7jyswpcc8wS X-Received: by 2002:a17:902:8d8e:b0:1ea:2a7:4bdf with SMTP id v14-20020a1709028d8e00b001ea02a74bdfmr1432728plo.5.1713827073747; Mon, 22 Apr 2024 16:04:33 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1713827073; cv=pass; d=google.com; s=arc-20160816; b=XIdfinPYEUDAcSJ5T9z/pjErFVxIXLNb+AMfXn1ngCrb2piF4AGCpV0Shoc5525Td/ e5XJ29s3sm3hAdTlD3TXP8x2T5kTk7y3kXapJqqWygnprMLrpzY3Th/VX8+W1uU+LfZK D2awBX0ELY3xFH9rYCqkH3999VD6iJsg7FooFGNTLVVfPr2TZGziTVWHTZYd+5SNIFhO bBOEEdXouSOsefcvpQ98gaISzcsjiZYUfPimCVNrUxnoJUsNFag19+4ljAa0cWSn/zxJ W94xUrfIaQFkd4PpbFpDnhLW1OMJfwR3vQXWmyIjzgerASovqYesY3TzJPiLaXFctSQD cnrw== 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=Rknx4yFlGtTVBQ/y80iNV/1i6qwGSOJ39GzerqlUVGA=; fh=usWEz1eJjYCle08WABmDyuqCrJGq9m48/LVlmybnzRs=; b=ZdM+6fbG6rQny51RXYznmkY+7/7sjyl9NMiaDD0wDSmnTDKdBVwP38dX7E4tgchi71 jlSMLGwCS6GH6GJGtNT0wMMkEOB4vLUhb22D+dtErpIGcUCtErPvMZs+7+KbYFko7yMa gvXicB8E5E8n5yuM7IjhwU+luC10lbWo00vmYIG0JdHLdTxHVLY78twYziBVzVbf04vs vYslB1K4XmoIv5ayz4Rx3CMaFJXc9LyGmPfF8Oc/MGkIyon4CXOzMUkkY9MMQGz8O4OP Alu6fSXZd4hV0Zw7fsk6trzFR1NTjYaJqV4MNOi6OAVldzUYu5eEX1fYuUctVPBlhNo9 c6vQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=CL78kEsi; 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-154151-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-154151-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Return-Path: Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [2604:1380:40f1:3f00::1]) by mx.google.com with ESMTPS id c1-20020a170902d48100b001e0afe33809si9009727plg.96.2024.04.22.16.04.33 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Apr 2024 16:04:33 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-154151-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) client-ip=2604:1380:40f1:3f00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=CL78kEsi; 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-154151-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-154151-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 sy.mirrors.kernel.org (Postfix) with ESMTPS id E77E1B2425D for ; Mon, 22 Apr 2024 22:58:11 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 018F415E5D7; Mon, 22 Apr 2024 22:50:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="CL78kEsi" 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 68B45156986; Mon, 22 Apr 2024 22:50:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713826210; cv=none; b=Yhl6m81CIOhqBR5s1TjmYuyw3Rbw0Q98AwZ3+xJ+2J8UWz97wEmk6Igh05Wem1ei/PjdFqZL0OnpCsw/BOwFa0bUomCnqPCF845BUuk4W1u0jaEcqYDJsd9nsfPi/TniF88+mmv5SEvK2pJ3OROiy0FzFzU3ZqvTFVx+uNHhWzc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713826210; c=relaxed/simple; bh=/CBCu7xtzLoC6vN95Vv2nxS4gvDbU4mm+K3QyU75FAU=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=KJ/sau1Bx/IY1wxfQmBMD2tSyxj/Uu8kN3YoOGgeN4Ya0dJGqrsQdHQ+XhBTfZZXrWng0iiYHq8y4GxYLOW4ooCZm8Zh7AqCRSN+J/jwYIcjObyoBbn1NpoBEOW69TD+bgtw5LD4KvKQlUWWmRY6yqlVJvvOipgm44tHbg9Zv7k= 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=CL78kEsi; arc=none smtp.client-ip=205.220.168.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 (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 43MLnJ9A027161; Mon, 22 Apr 2024 22:49:43 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=Rknx4yFlGtTVBQ/y80iN V/1i6qwGSOJ39GzerqlUVGA=; b=CL78kEsi0B8boUbs/xKD4Z7i1zAQQ00eURzF s2o//rrXC9z5gAFWk402ccj2WAxTm+QG7upLxXBPLUZO5jqEDkOt7uBTTx00e7Zq i50dKrw+CgBDd5dwKgmq2UhMFjic7lTxL/+YLMQ5iAm7Rs5WG798qvFtV7gqqhUU yvBHHg8woQyxP5O90oO3TGJLY6YUMGk0a9Ybu2XpVlLk2VyRPVjNxmunNhkkDsek AI/+vHUskMlSv1p9agpRrygYJsC6HcnK5Bhiaa5UJE9E3IrUaPN6CbaKyR/6nZMU 9tkbQli8/PDKUfo4ZHC71OOgqHeB7YrOuGFAhlQQjdptiC6O4w== Received: from nalasppmta04.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3xnn82ssjr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 22 Apr 2024 22:49:43 +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 43MMnO95021919 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 22 Apr 2024 22:49:24 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; Mon, 22 Apr 2024 15:49:24 -0700 From: Wesley Cheng To: , , , , , , , , , , , , , , CC: , , , , , , , Wesley Cheng Subject: [PATCH v19 28/41] ASoC: qcom: qdsp6: Add support to track available USB PCM devices Date: Mon, 22 Apr 2024 15:48:53 -0700 Message-ID: <20240422224906.15868-29-quic_wcheng@quicinc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20240422224906.15868-1-quic_wcheng@quicinc.com> References: <20240422224906.15868-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: 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-GUID: 5f8kQbh6Ns8gWIYcX2fNZDX8RqnLbNnN X-Proofpoint-ORIG-GUID: 5f8kQbh6Ns8gWIYcX2fNZDX8RqnLbNnN X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-04-22_16,2024-04-22_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 lowpriorityscore=0 suspectscore=0 adultscore=0 clxscore=1015 bulkscore=0 malwarescore=0 spamscore=0 impostorscore=0 priorityscore=1501 mlxlogscore=999 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2404010003 definitions=main-2404220096 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 | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/sound/soc/qcom/qdsp6/q6usb.c b/sound/soc/qcom/qdsp6/q6usb.c index 833a57deb321..e539b411c35e 100644 --- a/sound/soc/qcom/qdsp6/q6usb.c +++ b/sound/soc/qcom/qdsp6/q6usb.c @@ -27,11 +27,18 @@ #define Q6_USB_SID_MASK 0xF +struct q6usb_status { + struct snd_soc_usb_device *sdev; + unsigned int pcm_index; +}; + struct q6usb_port_data { struct q6afe_usb_cfg usb_cfg; struct snd_soc_usb *usb; struct q6usb_offload priv; int active_usb_chip_idx; + unsigned long available_card_slot; + struct q6usb_status status[SNDRV_CARDS]; }; static const struct snd_soc_dapm_widget q6usb_dai_widgets[] = { @@ -113,6 +120,12 @@ static int q6usb_alsa_connection_cb(struct snd_soc_usb *usb, if (connected) { /* We only track the latest USB headset plugged in */ data->active_usb_chip_idx = sdev->card_idx; + + set_bit(sdev->card_idx, &data->available_card_slot); + data->status[sdev->card_idx].sdev = sdev; + } else { + clear_bit(sdev->card_idx, &data->available_card_slot); + data->status[sdev->card_idx].sdev = NULL; } return 0;