From patchwork Wed Feb 28 01:36:06 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wesley Cheng X-Patchwork-Id: 207596 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a81b:b0:108:e6aa:91d0 with SMTP id bq27csp3079765dyb; Tue, 27 Feb 2024 17:49:10 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCWfr5qOiCP6n9joruDLV/s/47u3wewKLVLfsFyJoxxP2zc3mTOiaqqdaCPx7302Lc9BDqZMtlmwLCvgkBOzOTPJY438kA== X-Google-Smtp-Source: AGHT+IFUGhU+TYUtgvQkxQBxaq81D+jnDDGYVcDFzgrkrymuny/pprZaRXWprR2JI3T8AWEkRdHb X-Received: by 2002:a0c:cd0f:0:b0:68f:2b21:a44d with SMTP id b15-20020a0ccd0f000000b0068f2b21a44dmr3168909qvm.33.1709084949958; Tue, 27 Feb 2024 17:49:09 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709084949; cv=pass; d=google.com; s=arc-20160816; b=xPv4qwJuQvoqTo15kXVJE4f9j3RctlolokdNZFgqu/RzUlNdeWfGRho1O7wQbBlEc7 0oEj/PV4RWyGqIqLtkPzLsx884BvkSBJ+I4ACjzSQt9pyUMgF7FnM4bHryjd1EBiOpua Tqt9Mh5b/OGSPsXc7aYvf9ZDQKZx4r+g6x4jCfxGhhW7sJxeN/aaA9vrfuK7tVVd1kTH eLK7pmWJxcePXgNtdWYn3CczFnXiltbyKSIaWFGF2S73v4lMGMsYORv0ZxM/f92Gbi5I Egt3BUk/KkrrvXpDg9NKYEjL+bdXEvkVYRcalwBzjVFaZC7tEJ1yMpp1TNivbVLQKbj9 91mw== 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=nKzDeoWmAHUnDMDu45DTm4W+xZRrQhzqxAhMgwPw6vdAmsgfe0w7ur7VJ33O2PWg5E URrU5VBFhO6Sxt7YYoFEeZ9ZK7HfDC7OLvIHJWyHm11VGVLiAQxFoj9YM8rh5NIbzhDz 05RucLdnoiS7VD0VJurEfiViaNQqpXA/G0pUbv8DBXSISVpUxGHddC/9MKWctq1tiZ1O lXEWV00eu3pR9RJrCey3FkDHV/7xm9vdWOfda/u3esl5aJqU+dRQAQNHFfh4scT03P0L FoEnq39i6blX2tRvnRfmEuZeEZnwZDK8c0081PYnOoaWLOoUjKK2Fir+1pIwpS85OmYU b5/Q==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b="c/F9bj1/"; 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-84360-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-84360-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id a3-20020a056214062300b0068f7d3144acsi8650790qvx.449.2024.02.27.17.49.09 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Feb 2024 17:49:09 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-84360-ouuuleilei=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="c/F9bj1/"; 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-84360-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-84360-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 ny.mirrors.kernel.org (Postfix) with ESMTPS id BABEC1C230A1 for ; Wed, 28 Feb 2024 01:49:09 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 42E1921344; Wed, 28 Feb 2024 01:37:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="c/F9bj1/" 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 00026224DD; Wed, 28 Feb 2024 01:36:55 +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=1709084218; cv=none; b=RduWbzJ4ztmk/DDOvyXZrxG4B+xj2SQ2PhuWMyjGhMFkIsVH3V627kHJvrV0Y8rG9VgXsJMYcGwHeaounoEQzU1KPqhpt6M/viUj4DIogcV/cav0gpoIPCiCTL5SNTwV48tSZ4hY84R5CvM1UDMlKV1Pf8Bj1Vq4VI+NcKW3s04= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709084218; c=relaxed/simple; bh=/CBCu7xtzLoC6vN95Vv2nxS4gvDbU4mm+K3QyU75FAU=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=GvjIUFRII6oWGCkfgj5HMPOaOISL3zx0rYB2jqPuvOrmYoUqjCL6y7QXQD47bEP8y1Pjr7Aeoffmfddnv/oPXgQ+A5UY8Y1XGYGG4x0kJ2hUGD7SXz3jIokmOe8vLSHh/KLD+xJMQpKYDdlQLxkLbrYT+yGTE/oXOJZBwM+OF34= 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=c/F9bj1/; 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 (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 41S0jOlv012510; 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=Rknx4yFlGtTVBQ/y80iN V/1i6qwGSOJ39GzerqlUVGA=; b=c/F9bj1/nNazhvwc8luJowTEHVuZBFz2JFx4 XCg1qypXdFFek0w6xGaZB0hEtPkAdgxiaoeguv/RpJ9FSVkmWOKWOPrAXOG4cN8I 9LLaqWoZ9wJeYE9CNX9X4Tu2vSDoaXlq9d0R9kQexrwm7DpmGok2XT6oQNphSLuT jf1CHsBxIHNzW8L9O6lX7YO5L9qOXutkW2GICqlIdkxScD4D+2p8lHCvcmZEaG3u gme35L420JtBLUAiaEX3OwBSKVJFhYAmvOi7U2CAfuHy4cZXXyHVNFK8bgDqjKqq fm7sMBACi97LeEeEa+Jc3YvFZh6f4mOxR1QlAik2vNt4j7VKbg== Received: from nalasppmta02.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3whthv02kj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 28 Feb 2024 01:36:38 +0000 (GMT) Received: from nalasex01b.na.qualcomm.com (nalasex01b.na.qualcomm.com [10.47.209.197]) by NALASPPMTA02.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 41S1abe1025336 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 28 Feb 2024 01:36:37 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 28/41] ASoC: qcom: qdsp6: Add support to track available USB PCM devices Date: Tue, 27 Feb 2024 17:36:06 -0800 Message-ID: <20240228013619.29758-29-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: V0NTFjCghfP3BpqoMS00h87IvVUL4eua X-Proofpoint-GUID: V0NTFjCghfP3BpqoMS00h87IvVUL4eua 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 impostorscore=0 bulkscore=0 priorityscore=1501 clxscore=1015 suspectscore=0 adultscore=0 mlxlogscore=999 spamscore=0 malwarescore=0 lowpriorityscore=0 mlxscore=0 phishscore=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: 1792105460490739669 X-GMAIL-MSGID: 1792105460490739669 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;