Message ID | 20240102214549.22498-25-quic_wcheng@quicinc.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel+bounces-14894-ouuuleilei=gmail.com@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:6f82:b0:100:9c79:88ff with SMTP id tb2csp4703000dyb; Tue, 2 Jan 2024 14:00:03 -0800 (PST) X-Google-Smtp-Source: AGHT+IFO885MO6ONHfsq2qolhT7huJ8elW+0pisjo+LZJN7Yv34XBT7ZQaCVOXlURNUWRIAKCXQc X-Received: by 2002:a05:6a20:6aa6:b0:196:a5b4:514b with SMTP id bi38-20020a056a206aa600b00196a5b4514bmr2045197pzb.19.1704232802997; Tue, 02 Jan 2024 14:00:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1704232802; cv=none; d=google.com; s=arc-20160816; b=CLwp9ZcOEb0f4KXX/Ac6QEzUUPjsraJsj6lA9N+3w2exia/BFvFrMbdBigdqODmwPE DsG7RFcxEafI6jZV5DtZNGhnS0gChxZ1amoI9HDRKshMkp9sKUPKCMGmbEmtCDazWfFT uU0MYvtkzGJ8W+5fqh1wFtIiRcTDVYx/04r8gqEb9AXay9BIEk4GnsuVg65Kb4Qq24J1 W7zUt0zf2Gy/cxAmCnKquNBcbyvqRHDQVXJCL1ES20QTLZjI+Aptg1sR46lwgxuk3nda nTThqOpoG/li4W/CmCgr7sf4nMgvjb8rt2uVvbxybMGRoYoUp4y6d1GP6/n9UX92KFUm vB+A== ARC-Message-Signature: i=1; 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=P0xSrfOAr4cPc1XYIJIU9yB8VcJJCAcL7lNV8z5SlQc=; fh=0KzismZj+xI0Z//ZGdqKIH/FO9LtSZM7Yj4P0VtrCz0=; b=oOlW61VXhE5RpR4XH1PEBnqioq5lFZ6IQMU5Q6/sa30he9z0FNMmIcJ1+WCDT7ZxFs r5FirwnkGBOVdFL+fwq9Sr+L4BvhYNVzacEEn5OfoiP8lWRY4nhD85KloZGW6FGIXYAe rKjlrCGqIHtpjdSttE/DQ3eLu7BkohJvgvHy3KTcD51Vr3c63Mm7zewuDfLrVpFnzPso utcSYYbkoV/QhosKEGHeWaTELyhLovCk8yWpWR9hpwX/jIOoOCJHBdaAbS/Bea0UuO7a Ki4ILLrzKGc//ZJYIXtpkd7pgj+ZRto+PS3VOk+5CWN3xpSQ5ErrzUb+YithEBbDSr+X pABA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=TqBdt4Yk; spf=pass (google.com: domain of linux-kernel+bounces-14894-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-14894-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. [139.178.88.99]) by mx.google.com with ESMTPS id x20-20020a170902ea9400b001cf50ffd38dsi20222252plb.164.2024.01.02.14.00.02 for <ouuuleilei@gmail.com> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Jan 2024 14:00:02 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-14894-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=TqBdt4Yk; spf=pass (google.com: domain of linux-kernel+bounces-14894-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-14894-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 A0A9828476B for <ouuuleilei@gmail.com>; Tue, 2 Jan 2024 21:59:57 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3549521372; Tue, 2 Jan 2024 21:47:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="TqBdt4Yk" X-Original-To: linux-kernel@vger.kernel.org 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 56ED21DA42; Tue, 2 Jan 2024 21:46:57 +0000 (UTC) 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 (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 402LCxNb015036; Tue, 2 Jan 2024 21:46:27 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=P0xSrfOAr4cPc1XYIJIU 9yB8VcJJCAcL7lNV8z5SlQc=; b=TqBdt4YkUPbtFB9vHs6KyzVOxYE+GLF53Mkf FhcpRLLwliN11XaA35EFhTDAKVeik7xd4k0l7l0saOrqIdQLmda4VTndHyfuF3tH 8cumfbleIjgRAt/YvjtMcq9ylA2EbIrsKltkwfMcgUUpPgzh+Crc52q0ZzS8HoHd HNheZ0jZXuOrK0gTflw5zz0D0zsduOsf+ku2XBbZSw4w9SdTVgpoSGxPnJe+q4Uc E+NN3920tLjkc4QxjJbZpS3VlfrcDytC6bIu529LNg/oBojV3tfkKiD5L+tPi0Sv KOeBvuTl/9/mKFCNs/9fUE62y7j+Rlvnmywdz7dOYM54LC59JQ== Received: from nalasppmta03.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3vcgku9a6k-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 02 Jan 2024 21:46:26 +0000 (GMT) Received: from nalasex01b.na.qualcomm.com (nalasex01b.na.qualcomm.com [10.47.209.197]) by NALASPPMTA03.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 402LkPKd017459 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 2 Jan 2024 21:46:25 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, 2 Jan 2024 13:46:24 -0800 From: Wesley Cheng <quic_wcheng@quicinc.com> To: <srinivas.kandagatla@linaro.org>, <mathias.nyman@intel.com>, <perex@perex.cz>, <conor+dt@kernel.org>, <corbet@lwn.net>, <gregkh@linuxfoundation.org>, <lgirdwood@gmail.com>, <andersson@kernel.org>, <krzysztof.kozlowski+dt@linaro.org>, <konrad.dybcio@linaro.org>, <Thinh.Nguyen@synopsys.com>, <broonie@kernel.org>, <bgoswami@quicinc.com>, <tiwai@suse.com>, <robh+dt@kernel.org>, <agross@kernel.org> CC: <linux-kernel@vger.kernel.org>, <devicetree@vger.kernel.org>, <linux-sound@vger.kernel.org>, <linux-usb@vger.kernel.org>, <linux-arm-msm@vger.kernel.org>, <linux-doc@vger.kernel.org>, <alsa-devel@alsa-project.org>, Wesley Cheng <quic_wcheng@quicinc.com> Subject: [PATCH v12 24/41] ALSA: usb-audio: Do not allow USB offload path if PCM device is in use Date: Tue, 2 Jan 2024 13:45:32 -0800 Message-ID: <20240102214549.22498-25-quic_wcheng@quicinc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20240102214549.22498-1-quic_wcheng@quicinc.com> References: <20240102214549.22498-1-quic_wcheng@quicinc.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: <linux-kernel.vger.kernel.org> List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org> List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org> MIME-Version: 1.0 Content-Type: text/plain X-ClientProxiedBy: nalasex01c.na.qualcomm.com (10.47.97.35) 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: knDTQnJ8CTiYJnwdWMCuj8xsE59U-uxx X-Proofpoint-ORIG-GUID: knDTQnJ8CTiYJnwdWMCuj8xsE59U-uxx X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-12-09_02,2023-12-07_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 mlxscore=0 malwarescore=0 adultscore=0 clxscore=1015 phishscore=0 mlxlogscore=926 lowpriorityscore=0 priorityscore=1501 impostorscore=0 spamscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2311290000 definitions=main-2401020161 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1787017615686650410 X-GMAIL-MSGID: 1787017615686650410 |
Series |
Introduce QC USB SND audio offloading support
|
|
Commit Message
Wesley Cheng
Jan. 2, 2024, 9:45 p.m. UTC
Add proper checks and updates to the USB substream once receiving a USB QMI
stream enable request. If the substream is already in use from the non
offload path, reject the stream enable request. In addition, update the
USB substream opened parameter when enabling the offload path, so the
non offload path can be blocked.
Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com>
---
sound/usb/qcom/qc_audio_offload.c | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/sound/usb/qcom/qc_audio_offload.c b/sound/usb/qcom/qc_audio_offload.c index 21938cf798b6..cd2267542a66 100644 --- a/sound/usb/qcom/qc_audio_offload.c +++ b/sound/usb/qcom/qc_audio_offload.c @@ -1448,12 +1448,17 @@ static void handle_uaudio_stream_req(struct qmi_handle *handle, goto response; } + mutex_lock(&chip->mutex); if (req_msg->enable) { - if (info_idx < 0 || chip->system_suspend) { + if (info_idx < 0 || chip->system_suspend || subs->opened) { ret = -EBUSY; + mutex_unlock(&chip->mutex); + goto response; } + subs->opened = 1; } + mutex_unlock(&chip->mutex); if (req_msg->service_interval_valid) { ret = get_data_interval_from_si(subs, @@ -1475,6 +1480,11 @@ static void handle_uaudio_stream_req(struct qmi_handle *handle, if (!ret) ret = prepare_qmi_response(subs, req_msg, &resp, info_idx); + if (ret < 0) { + mutex_lock(&chip->mutex); + subs->opened = 0; + mutex_unlock(&chip->mutex); + } } else { info = &uadev[pcm_card_num].info[info_idx]; if (info->data_ep_pipe) { @@ -1498,6 +1508,9 @@ static void handle_uaudio_stream_req(struct qmi_handle *handle, } disable_audio_stream(subs); + mutex_lock(&chip->mutex); + subs->opened = 0; + mutex_unlock(&chip->mutex); } response: