Received: by 2002:a05:7412:1e0b:b0:fc:a2b0:25d7 with SMTP id kr11csp1431456rdb; Fri, 16 Feb 2024 16:22:53 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCVHB9AMyX7/s3lH4zPkOxUT+aziW+GXC2Hz8G892bkf3U5YLw4ElYgkFmRRdRn8kwtOIVYBYmue+Y6Xm18fQiaXKd3kBAF5ofltUzRqDg== X-Google-Smtp-Source: AGHT+IHdQchWlXgrlS5CqlueefRgZNMmwsZaZBzDgMMTQgmvdnXUCrqErzChPfHuTsV34gVmySbm X-Received: by 2002:a25:ec0e:0:b0:dc6:b8f5:50ae with SMTP id j14-20020a25ec0e000000b00dc6b8f550aemr7217366ybh.32.1708129373447; Fri, 16 Feb 2024 16:22:53 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708129373; cv=pass; d=google.com; s=arc-20160816; b=m43MvUqcPX7a0WqtzIZ9had1Fqas/A5gPDLgmw71qhO63MopzJROpJfavMwI//84UG SdcOJ/SDEdapStJ9qpOmMLnztoNbXzfaIrCRsqHQLE8ift4XoahKOIsD07tgsxoQVaDT QwIoYyxCKYJ5ITqcraddjkXYaaxwtc5YGPkbSKPp4s+UHVePmyK9xTl3L/8havdk386n N8Yl3rgX0NcsisQcvMpiMXkB42xrmctwtXsXT32M6EW8Bp1Qx4MV14Gor9y+ZtQYxjp5 qBJAV1Yhn6JPdRWxrpnFFUVvs5/ni9gD2Txw3rmMCQTVmH8yL+2PnDapa3ZCgCew5qbH mjpA== 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=VKrp0Y7I/+wT36BfKZ6oI/4N9BIwFCn9zerObkOrgGw=; b=fnv8bHJBQCPb0LDwUCIOYGdtmshCwC6PQSv9242I3pjnOII4JPY6iLiOaWt9Fe0YjG Tr2UuuYWt3KOSP/iGghIxs5mAQNSD9OJ4lAnzTGS1ScBFkf5sNaqc2Ni6G5LOyAd+OMM xtqwyrdxCAV+rWx4OWW9QnkZXkvTYZ2/3uAz5DQA6Ym07Kp2IDkRIWaaPOO9X31381mC ++CGUJhwJ5wx25fDkVBtkAfWV/nf65XBL5h7kPqKaWYfnHNJX5MGVffpJFI+UgQw1rOF t5pBPfoxKBO2MJYiNFyfqXosAuqo6KBJNZtyXMmjyniOrtOHZRcAIyRJyIJZGJMQN8YZ U/cw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=XeMxURbo; 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-69560-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-69560-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id m12-20020a05620a220c00b0078732f4e6absi1045848qkh.763.2024.02.16.16.22.53 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 16 Feb 2024 16:22:53 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-69560-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=XeMxURbo; 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-69560-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-69560-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 ny.mirrors.kernel.org (Postfix) with ESMTPS id E11AA1C225FF for ; Sat, 17 Feb 2024 00:22:19 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id D66427B3DD; Sat, 17 Feb 2024 00:11:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="XeMxURbo" 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 0EF0354725; Sat, 17 Feb 2024 00:11:01 +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=1708128664; cv=none; b=u9H1HBKbWa2+OBVHGNF1Ki4EFfPQUTOZkmQFI89VXM8vXLYsAF940VVZnmERnb+ldEWe/rPO1QGKKHWIsYYRc8vHluAPYGJxckOP8wR4JLiAm9nU1zFM+kBm2X5FbZ8OHt5nVzx0it186tnAkORbIt44RN+pcY2IjvltynKgHB0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708128664; c=relaxed/simple; bh=/CBCu7xtzLoC6vN95Vv2nxS4gvDbU4mm+K3QyU75FAU=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=k0v1YmkVxAHniD5vvwO9d+9y8TGGJDJA/kGPARV9V319FnbNV5rVA88g0zyPjEZVvz7zklFTmXJQfbYSFpffkV+DhCNcnO0IL7g4MyDyD3bHL2kObetlCuG0svu7/HdHuAQnNjBzHDN1Xkb6EYp9ig64M25odxQNWjeXby94uNM= 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=XeMxURbo; 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 (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 41H0AMYA026469; Sat, 17 Feb 2024 00:10:42 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=XeMxURboiHChJSr53y3C6W8uuoqMJDd0LULy 6ms4MY2r1hVv783kp8SddvDi0QKmVYTZpKe7ah9uIWAlwG9K1BhQS0+z8yP0syxU UmojAy3h2EgmGjzSC/bUEVHVAMFyniPTPdeffwKmmhyXiaHu6vmfJ/r8FofGLJBc uP0YtP2yDdb1BrZeG1BRebfzH2RU8pw9DR0scIaXktH6gzATHfT/6PYCcoIxaXHz DJuxwHdZMRIpj/KQgKIkWEfM1bHcKJ5khxMSP9eUAY7HYEiRpV1uKpCB4kQAtq60 enOpxKWC4wYTLdMHiOkjmJII9obU56Tj9dlYf2hxdHQ8AkET8g== Received: from nalasppmta04.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3w9qbc38xu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sat, 17 Feb 2024 00:10:41 +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 41H0AeDE025785 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sat, 17 Feb 2024 00:10:40 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; Fri, 16 Feb 2024 16:10:40 -0800 From: Wesley Cheng To: , , , , , , , , , , , , , , CC: , , , , , , , Wesley Cheng Subject: [PATCH v17 38/51] ASoC: qcom: qdsp6: Add support to track available USB PCM devices Date: Fri, 16 Feb 2024 16:10:04 -0800 Message-ID: <20240217001017.29969-39-quic_wcheng@quicinc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20240217001017.29969-1-quic_wcheng@quicinc.com> References: <20240217001017.29969-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: -GD8TAP4eSOOclwldNrcoohH87Hykb9D X-Proofpoint-ORIG-GUID: -GD8TAP4eSOOclwldNrcoohH87Hykb9D 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-16_23,2024-02-16_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 mlxlogscore=999 spamscore=0 adultscore=0 impostorscore=0 suspectscore=0 bulkscore=0 malwarescore=0 phishscore=0 mlxscore=0 priorityscore=1501 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2401310000 definitions=main-2402160189 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;