From patchwork Thu Feb 8 23:14:02 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wesley Cheng X-Patchwork-Id: 198703 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:50ea:b0:106:860b:bbdd with SMTP id r10csp528566dyd; Thu, 8 Feb 2024 16:01:28 -0800 (PST) X-Google-Smtp-Source: AGHT+IGEJYnr52q/SQ/SZGYFRXjvaqUQh0mjt27f3D5u3uI2joVrv5aAmbuhKkpvO5pe6NDL+Y9p X-Received: by 2002:a05:6871:285:b0:219:6ad2:3b8d with SMTP id i5-20020a056871028500b002196ad23b8dmr1156527oae.26.1707436888323; Thu, 08 Feb 2024 16:01:28 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1707436888; cv=pass; d=google.com; s=arc-20160816; b=uOsWmCNCtwiWV7PMcz052e/fQH0xWMkd7LyGF/mxY7HjDQSu/77htCLoWKxbVY3/dJ tF8HK9irn06v5ms+ksYyaeYfDCD5MA1+4iEE6M2pIoJ+fgaZOxMIWa9BoJDSWpH7AyWG NjJL9BlDLk6m0Ys9Gaxef7esfDuomkC5Ccf4usD/ke+7haNnKTSoX5XTAs6qyRCRfY+E VTnn+7XkQFRNpSD4oGG6ZIaeGh5rkw9qJWaDtakXbw6sDU9YLR9sDVQMrebGi2spEbl9 MNWMICCopeWqcpDPBRRwVGXAfh4fsB712NWxiwyfZKVKnsOiB9T4hm1wCTTHOoiVk1qm wFhQ== 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=2epZr9ZtYhWfEyi+rsjAogaNtlPRCGTpOp6RI1gYLko=; fh=HUE686taQXDj/Rx1XnX3CuItxxL+l9ajkhpUV3PGhv8=; b=bf7DNwWfNO91eUvJ0gqbLfOszowSm1dNVki7J+OSTi4IE3ElSlEF9I3ueYRyMbFRqW i7KUljAzBRGfE6pgPWbv4TZQpI0mMFy4VUpGh2hj7f2gUzeBn0HxwbNj88qdyrXTxuqQ RaDdc1ikJYb16GCte8NQ8B02BjcKtlPSjQ3adUwx/LaDsfbvVtEgs2Mg2f0SFI1qbpmF UwDWeSqrXTPjbdk8RqRX4dmNGYraBOx6gIZnqD+AvxSJ4KONHDGsxqBauJBIyiqLFQDt 9FJBVzH7wbF8g3lpDmNXZ4ZWi1NqUkGa1xRafjlj18oojvuI9ZOmwWcQqJSSaaTJEs9/ l+vg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=IGhzOK9N; 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-58849-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-58849-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com X-Forwarded-Encrypted: i=2; AJvYcCW6Asll6cVosYHaJTJ90GCl6781cMDp884Udmq6r7YHKa0nuuOQGmn/HuZMBxg0/THtZ1xGMTS0cf+R/7iMI5vg41VprQ== Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [147.75.48.161]) by mx.google.com with ESMTPS id dq22-20020a056a020f9600b005cec90b9a98si587639pgb.835.2024.02.08.16.01.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Feb 2024 16:01:28 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-58849-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) client-ip=147.75.48.161; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=IGhzOK9N; 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-58849-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-58849-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 sy.mirrors.kernel.org (Postfix) with ESMTPS id 7264FB2F0F1 for ; Thu, 8 Feb 2024 23:34:34 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 7A15E5465D; Thu, 8 Feb 2024 23:15:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="IGhzOK9N" 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 E688050273; Thu, 8 Feb 2024 23:14:47 +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=1707434091; cv=none; b=i6XF7GQHpDVqkgmqyrqeqdCyW8ZZIMRf+ltuNdinJKoYDO/0yc/vzUZuGrMuN16VZlDCwO0zAK+bzPMjQtfqDeDZpg/Xq78RHWW5wNtha1hMhBZE6yQNcKhYIhN7Wd5mIIwh9MzLLI6e5uNbs+Dch3Kb+XoC44v1SnRxjDYycS4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707434091; c=relaxed/simple; bh=INx7prBwTCttt9ewnnpDW+hd8zJyPL3YkoMtJKT37Rs=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=O//KcuXugQ/N1leZE5scct1zLi94SKofo/jYvzU1wjaRTCbzboX8MsBTPvbieQ/G5ELGin4EVRvE+vDhc0zReklZux0nW+vOPVbrunZWuEkehkLaWj6v02pZ9LTTETMPXS2vo7ciTCNQDpKIzo4SazgZR8d2gIeORhkq0+Q1QSI= 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=IGhzOK9N; 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.17.1.24/8.17.1.24) with ESMTP id 418M0NXu020183; Thu, 8 Feb 2024 23:14:30 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=2epZr9ZtYhWfEyi+rsjA ogaNtlPRCGTpOp6RI1gYLko=; b=IGhzOK9NqB8TTMVPGd01CPFpiA0dY/IdQsOh qgFAFKLmLPUPL49P6OQFExLkSWsQ/csSmvOqT5Y0uXyEvVBPWby5w28kV7tkZJt0 5oLoEPoZ7Erze01/wuvoWDxNvyXvHrLUOxRqA6Yv+xgVTMMQu0Pwe3BDZnS2kmJW nL+mEkp/mWA6uIxInH88ti4WV5l2eXseMahenZoDddKh0GJ0n+IlgaC1w3K64Zj+ nhQ7rNVxxN26u3zNqt/62JQQ7rRFnIL2hKvZEwgZAAefQKElH3NhKsT26ZkuPXh9 Bl6haYfYztybMA8I4vES84MADU5xwhdI/Y/bLdLV5FCMVAOeiQ== Received: from nalasppmta02.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3w4sudj9yr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 08 Feb 2024 23:14:30 +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 418NETuE013201 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 8 Feb 2024 23:14:29 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; Thu, 8 Feb 2024 15:14:29 -0800 From: Wesley Cheng To: , , , , , , , , , , , , , , CC: , , , , , , , Wesley Cheng Subject: [PATCH v14 49/53] ALSA: usb-audio: qcom: Use card and PCM index from QMI request Date: Thu, 8 Feb 2024 15:14:02 -0800 Message-ID: <20240208231406.27397-50-quic_wcheng@quicinc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20240208231406.27397-1-quic_wcheng@quicinc.com> References: <20240208231406.27397-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: 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: g-aYwvnaOrlPFiFAt-IKpmdxz17feKyS X-Proofpoint-ORIG-GUID: g-aYwvnaOrlPFiFAt-IKpmdxz17feKyS 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-08_11,2024-02-08_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 lowpriorityscore=0 spamscore=0 mlxscore=0 bulkscore=0 phishscore=0 mlxlogscore=999 clxscore=1015 priorityscore=1501 adultscore=0 malwarescore=0 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2401310000 definitions=main-2402080131 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1790377342870479854 X-GMAIL-MSGID: 1790377342870479854 Utilize the card and PCM index coming from the USB QMI stream request. This field follows what is set by the ASoC USB backend, and could potentially carry information about a specific device selected through the ASoC USB backend. The backend also has information about the last USB sound device plugged in, so it can choose to select the last device plugged in, accordingly. Signed-off-by: Wesley Cheng --- sound/usb/qcom/qc_audio_offload.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/sound/usb/qcom/qc_audio_offload.c b/sound/usb/qcom/qc_audio_offload.c index 17cee0cf2ff5..08af82ec22ad 100644 --- a/sound/usb/qcom/qc_audio_offload.c +++ b/sound/usb/qcom/qc_audio_offload.c @@ -106,8 +106,6 @@ struct uaudio_qmi_dev { bool er_mapped; /* reference count to number of possible consumers */ atomic_t qdev_in_use; - /* idx to last udev card number plugged in */ - unsigned int last_card_num; }; struct uaudio_dev { @@ -1243,7 +1241,7 @@ static int prepare_qmi_response(struct snd_usb_substream *subs, pcm_dev_num = (req_msg->usb_token & QMI_STREAM_REQ_DEV_NUM_MASK) >> 8; xfer_buf_len = req_msg->xfer_buff_size; - card_num = uaudio_qdev->last_card_num; + card_num = (req_msg->usb_token & QMI_STREAM_REQ_CARD_NUM_MASK) >> 16; if (!uadev[card_num].ctrl_intf) { dev_err(&subs->dev->dev, "audio ctrl intf info not cached\n"); @@ -1436,8 +1434,7 @@ static void handle_uaudio_stream_req(struct qmi_handle *handle, direction = (req_msg->usb_token & QMI_STREAM_REQ_DIRECTION); pcm_dev_num = (req_msg->usb_token & QMI_STREAM_REQ_DEV_NUM_MASK) >> 8; - pcm_card_num = req_msg->enable ? uaudio_qdev->last_card_num : - ffs(uaudio_qdev->card_slot) - 1; + pcm_card_num = (req_msg->usb_token & QMI_STREAM_REQ_CARD_NUM_MASK) >> 16; if (pcm_card_num >= SNDRV_CARDS) { ret = -EINVAL; goto response; @@ -1645,7 +1642,6 @@ static void qc_usb_audio_offload_probe(struct snd_usb_audio *chip) sdev->num_capture = usb_qmi_get_pcm_num(chip, 1); uadev[chip->card->number].sdev = sdev; - uaudio_qdev->last_card_num = chip->card->number; snd_soc_usb_connect(usb_get_usb_backend(udev), sdev); mutex_unlock(&chip->mutex);