From patchwork Sat Sep 16 00:10:24 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wesley Cheng X-Patchwork-Id: 141013 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp1576599vqi; Sat, 16 Sep 2023 03:05:39 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHJENqYUrwMC+cQ06kUFLapfmRjuVshTUVIrb6c6Z+DVyWibg671oiKVphUiL/+R0oEQ7va X-Received: by 2002:a17:90a:fb46:b0:274:9499:e344 with SMTP id iq6-20020a17090afb4600b002749499e344mr3075816pjb.24.1694858739042; Sat, 16 Sep 2023 03:05:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694858739; cv=none; d=google.com; s=arc-20160816; b=iHZ3So2mXtuvRp4d8yF6/KTNvCF+fDk3RRxUkPeoJo1y+LQRYeDBiaWHI+UoyiTKlv 512hw1J3+coG/s7bGIoiGV+SaJI92hGEPrVPE2kBhvgbfuKvMXcYvvXqdVB479VQByYV 2CgtVUAt8OFsesw3YgpYJ8jFWfXIDrgj9FWpbd5nRG996fziqxR0uBq8iIb9c+e6g+iZ vf9t2vXobojOQdyBqBHCQuTdUzciPVMEnE7XcRw6uy0A7LiRxEPiq3jfraCPJQ1FRqbQ HCTs+7D+QtzPK9qZaj2eH2CGhuij8q9n96FNrLoPmzkt5xDD3cV3rg7CgG9EPzi/bpOT cNJA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=e0W9a3ggrYIVw0XCJb6rDIkBiGQl97APIxzQ9iCtvxI=; fh=MhCCCRx4c0AeUz43uLzZOKA4YzcBN2mk3tAWrRRVvW4=; b=vdsEunTQK4RlluFmOpqzHJ/Y07DSjHlIJrSncfpXwKiJWWWi8fnmR3+wYqD+99rfLw jpeH+RIdvuTCcMUUzPm0Qfok4nNyXwz33F8qf1UTEp4HCs6U3brzv/IRusW9HvPYev62 h7oORFpq1JcfwjMlnN1KJB6JVBYdmjFfwwiRdoHo9lF5Ys5hV1vSVH4gwvQhov5y8APY iEdlWHTv0Uhs8hLmYipdLTXsOrWV3ukvqvg88ugyzCyPVOlTf1TOLjDONJMEmUnHb5Ua lv6J7es9v0cWU9ThC8MW74rH5DrGjDJn6Hj/dBHv/zxDouoe16c+B7Trl4F+8y43+hrt qKsA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=mr61o6yI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: from howler.vger.email (howler.vger.email. [23.128.96.34]) by mx.google.com with ESMTPS id kx1-20020a17090b228100b00274b668b762si1311119pjb.172.2023.09.16.03.05.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 16 Sep 2023 03:05:39 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) client-ip=23.128.96.34; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=mr61o6yI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id 71E148027F16; Fri, 15 Sep 2023 17:13:49 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238219AbjIPALm (ORCPT + 28 others); Fri, 15 Sep 2023 20:11:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53368 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238216AbjIPALH (ORCPT ); Fri, 15 Sep 2023 20:11:07 -0400 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AD15B2102; Fri, 15 Sep 2023 17:11:00 -0700 (PDT) Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 38G09xS1008860; Sat, 16 Sep 2023 00:10:47 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=e0W9a3ggrYIVw0XCJb6rDIkBiGQl97APIxzQ9iCtvxI=; b=mr61o6yIdsqy1bFBi6NU/KMAIoa0FsKEB4dvFbaaA1VlRQWzgTeWZIwbc0fObaL9iIy1 S6xxr/MN4j3N6Sap4pFnLTCbmFmXMHAKssxMQ4ciohLAO2ML8B7bNz4vfns3VXkOiccu r0alCKt4xz/IR4EmWaZ9TXPmFPlnL8FT12k8PUbjPV1h6QF/mnxGxy9jW0cBwn5dJGG7 4KnlFAqpt1n0I+EJLN7SZItKWNr82Chm5GSNlur3oEfwjrg9WhOYWb4RG47w90c7OuU3 pLzZfdSeQYj15JxZbeQV7jR47CGZcziV+RBqzbn9cx0a0PXlk/ij0HpjbRMjHJgvsFo+ +Q== Received: from nalasppmta03.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3t4g5tjcwt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sat, 16 Sep 2023 00:10:47 +0000 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 38G0AknO026038 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sat, 16 Sep 2023 00:10:46 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.36; Fri, 15 Sep 2023 17:10:45 -0700 From: Wesley Cheng To: , , , , , , , , , , , , , , CC: , , , , , Wesley Cheng Subject: [PATCH v6 31/33] ALSA: usb-audio: qcom: Use card and PCM index from QMI request Date: Fri, 15 Sep 2023 17:10:24 -0700 Message-ID: <20230916001026.315-32-quic_wcheng@quicinc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230916001026.315-1-quic_wcheng@quicinc.com> References: <20230916001026.315-1-quic_wcheng@quicinc.com> MIME-Version: 1.0 X-Originating-IP: [10.49.16.6] 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-ORIG-GUID: -InQ5DTDMPFDTxIGb4-97kPLOh-3CPOI X-Proofpoint-GUID: -InQ5DTDMPFDTxIGb4-97kPLOh-3CPOI X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.267,Aquarius:18.0.980,Hydra:6.0.601,FMLib:17.11.176.26 definitions=2023-09-15_20,2023-09-15_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 impostorscore=0 phishscore=0 mlxlogscore=999 priorityscore=1501 adultscore=0 mlxscore=0 spamscore=0 clxscore=1015 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2308100000 definitions=main-2309160000 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Fri, 15 Sep 2023 17:13:49 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777188196973532564 X-GMAIL-MSGID: 1777188196973532564 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 2dffe7e99e01..e482e62d5f37 100644 --- a/sound/usb/qcom/qc_audio_offload.c +++ b/sound/usb/qcom/qc_audio_offload.c @@ -109,8 +109,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 { @@ -987,7 +985,7 @@ static int prepare_qmi_response(struct snd_usb_substream *subs, assoc = iface->intf_assoc; 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; alts = &iface->altsetting[subs->cur_audiofmt->altset_idx]; altsd = get_iface_desc(alts); @@ -1388,8 +1386,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; @@ -1598,7 +1595,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);