From patchwork Tue Jan 2 21:45:45 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wesley Cheng X-Patchwork-Id: 184493 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:6f82:b0:100:9c79:88ff with SMTP id tb2csp4700992dyb; Tue, 2 Jan 2024 13:53:39 -0800 (PST) X-Google-Smtp-Source: AGHT+IE76TDCjrPGHm732hChRRqtaITRcOqyUo8A7HN5vdRsZ6+mzlm7zC5wRiFai3Ce2GA3nfyL X-Received: by 2002:a25:aa0a:0:b0:dbc:6715:42b4 with SMTP id s10-20020a25aa0a000000b00dbc671542b4mr9212829ybi.73.1704232419344; Tue, 02 Jan 2024 13:53:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1704232419; cv=none; d=google.com; s=arc-20160816; b=bwe/lsgLZPJQysw7XguuMhCpKkqNTidv+3wFazJkrQBG6OALc9ocHBM/UU6HNQCL9n lsN0JtAHpBCjB05MoPNxV+u4IR7banHiOHqrUqSo6/0/A2/0W7OiUiVFCLcdCu+ja9Of PaKqRb2H1za/rocZ9v00ethsFpc5BkQl/GVxn6LNjWsQqOgTOUDe657VVFQphbGshxTu WN45Qx1211+cKc1P1484se6ueA5l+SF9T8XmCgFnEFvB7o9/L9Lq/ta2fWE802aw5hF1 UoaksXVpqhwzRfp2/yURmfjh8O7olnkSK1+GB2pFJxCkqZbfVRaRI0wUz8HkfQpCa05D BpWg== 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=tD4Iftve6j6fUaNN7gCChThn3G8WWuM8rwfbPl3ToJI=; fh=0KzismZj+xI0Z//ZGdqKIH/FO9LtSZM7Yj4P0VtrCz0=; b=CzE2x1zdGXSfPM29X9Kk+nqWD2X1F5a5e5ypZAZQ+z8frCJGSyP3F2n2hkVKm/Oem+ jj1UygtVeXdXpNOvJsJL8QZbQG5q0E9NtUA+ei1cX4XivUnc0GAlnvx61nPjecyfrigZ GWI8yob33K8WtqRZm4f/ay+nIe7QiD7nNljOlo1F0RVH688Lrln6M4FLLpVNWLVJt9U2 lAxxzMza/jxg0e8c+4PO0s0qPBcSpGGCqxUjdYt4rS7ZEP5sUi9dH6WePqpSfBAmY5GC SmbG7m9273ZxbtYjb4t79MeTJ+mmrqoJ0bbOCqKAKfT0PHWir6W+diNCC/KnCvJ5plVQ qF/w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=P9XRIRbR; spf=pass (google.com: domain of linux-kernel+bounces-14880-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-14880-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 g4-20020ac87f44000000b00425f24df298si29134515qtk.548.2024.01.02.13.53.39 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Jan 2024 13:53:39 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-14880-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=P9XRIRbR; spf=pass (google.com: domain of linux-kernel+bounces-14880-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-14880-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 264C51C215F6 for ; Tue, 2 Jan 2024 21:53:39 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 216CE1C698; Tue, 2 Jan 2024 21:46:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="P9XRIRbR" 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 0A3BD1A29F; Tue, 2 Jan 2024 21:46:48 +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 402LObAc003776; Tue, 2 Jan 2024 21:46: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=tD4Iftve6j6fUaNN7gCC hThn3G8WWuM8rwfbPl3ToJI=; b=P9XRIRbRnBEgOdhrL0/aSAbo9w0Lk0K3Hlnu WSY8sgma5f+LNx9Dxc2mRcFGKCToNWtdDqQHKPVEW7bvWDL+5Fv2uLeQtSLasCGO 2r3cZlUUc088a6kRnUH+8IZtZeyi7v2gLYr68fyhRyHuKkssxTxRmCYp8YO2QByA ZN8X3+8LEm7bSOf6/fv6Klr6nAzLFg+T9G41hZv+7ITblAaZ16riqKkFvRir6YsT lGwxhGymS4YpuYj46CFQmfiNBFg8znbYfeQLVTMpSAurFoOHtkhaugY5YfAmLHHP DE6p9Q0o4R6LMbWce1G9v+cjlf6EIVHJtHfG+U8PVzQQmgY/4w== Received: from nalasppmta03.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3vcgku9a6v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 02 Jan 2024 21:46:30 +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 402LkTfc017480 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 2 Jan 2024 21:46: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; Tue, 2 Jan 2024 13:46:28 -0800 From: Wesley Cheng To: , , , , , , , , , , , , , , , CC: , , , , , , , Wesley Cheng Subject: [PATCH v12 37/41] ALSA: usb-audio: qcom: Use card and PCM index from QMI request Date: Tue, 2 Jan 2024 13:45:45 -0800 Message-ID: <20240102214549.22498-38-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: 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: GHoBX3iyeC81hDmIyPgZTMdM4tgheVqi X-Proofpoint-ORIG-GUID: GHoBX3iyeC81hDmIyPgZTMdM4tgheVqi 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=993 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: 1787017213624724811 X-GMAIL-MSGID: 1787017213624724811 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 256685b5569c..3bf7e78717a8 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; @@ -1646,7 +1643,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);