Received: by 2002:a05:7412:1e0b:b0:fc:a2b0:25d7 with SMTP id kr11csp1431981rdb; Fri, 16 Feb 2024 16:24:33 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCW87W/bjoJd65XGhzik2cbk3G1GfD/Bo6H4iuU+jrrOyxH0b9TIs6MYQSZ51TFt/46ERBPvlrTWM0J8LBqAfPPsDWjqEfyLoa61sHl1Sg== X-Google-Smtp-Source: AGHT+IGwb6PsPW07LnIhTngXwkd/Ubl24qbnm9lHxg4Ob3FWRsyzajQq15mRZFi8t/Ki5DflJU00 X-Received: by 2002:a17:902:d4d2:b0:1db:6dfc:5c3e with SMTP id o18-20020a170902d4d200b001db6dfc5c3emr11558977plg.22.1708129473655; Fri, 16 Feb 2024 16:24:33 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708129473; cv=pass; d=google.com; s=arc-20160816; b=QgyKF90PIC99o2EW6pODwlsGqOuSNXwcIoqsIK9X/4pHOUjU2IFmMkSDMb3KYSNdG4 MYAUrMUbuVXghG+nyoKkRFlKAtm0zlSpyTSY8qTo7HRMA3zpjhSjj/uxqzAclSr2aGyY J1yAKftM590s1q5W2hCrG2Ac8lQnpflaRQYGpTBY2Y+YGQeRdfRUsZtjKnruhhQDrN7B 6gCvboMCYW0ceUjPXhh03oFb+ygcH8MdnfYH76uzMy9TPkbb9mp5mdFfJ0N1JjaKqcXN JU1vBoxiyvMnEPnKaxK4OzkWs8HZM/baxAQNIB8n+QlGZBvPs6oP24boqciW7/vfaIxo C9/w== 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=NDrpeuvQzpNKSXUjYjE9Ra56mCk6MtHuqcQ0JaHaO1s=; fh=VKrp0Y7I/+wT36BfKZ6oI/4N9BIwFCn9zerObkOrgGw=; b=FNnqtWvpI/3DoZEozQOdkZjhIyJqhIWXmX73c4jSL6B/4S85s+SuS87BmGCEIHMQcZ t2PbgjZZLPE3VjQ10/FnaifE28kI6mbf2pnywjJe0WIo5otlRTtcatAlKe9J7mO1LI6+ X3YFoezuQTyyc63S6xQ5sUOE0GL01Sd5+ZDb2+GND99wtSp3qlKN35c3ZpUz5PvLhxRV l0khZzrAXv4Mh0jUbx1tcpi/8TDkdNjyltXEk73UdWQkJt6W9Q2l+tkhYe229gsjBBxf t6t2+jVQd2jUstwCLdhWssRqMU3zK0sK3xP281BcpLuYiP67uAA0I7xMzfSuLhuLXo6v Ni4w==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=TF3FTZKb; 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-69551-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-69551-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id i5-20020a170902cf0500b001db37fd26b6si615164plg.489.2024.02.16.16.24.33 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 16 Feb 2024 16:24:33 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-69551-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=TF3FTZKb; 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-69551-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-69551-linux.lists.archive=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 957EC28BA88 for ; Sat, 17 Feb 2024 00:21:40 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 93F3D78B57; Sat, 17 Feb 2024 00:11:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="TF3FTZKb" 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 F12B94F21E; Sat, 17 Feb 2024 00:10:58 +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=1708128662; cv=none; b=fAjuxW2RVQFvWrKVeFkMDVHRcRRiZlZPVrfrmIBoXH99oKjNY9OtDJCXh+b5CaV//s6Mt4T6pNlMsP4CzuSXFRIsNS3+mO15AgfzFT6hR9A2PzZVZxdhQG1DwFev2gr9DJtSuktBIlZ/xTNNfsy+/P+0i/Vre1fQK+H1ARCz2IY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708128662; c=relaxed/simple; bh=xS9j6x5p5jHrcgEvjcv3lSyIp2BuwyTzIcR8hTQv7Lg=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=H+xTTMF7WEDHL9avnoLxu/97hzFYAwTrDWr1tncvxOP0wz2zA5uBCh85pKhyw9Eyrq6V8fJHqjJyd/BN40YixPY7c0bSzukMsFDdET30EIT2RjOjYYloqEQ/gYJDzhTMnrxnMkoSfqhzpwzLOFGHK3Ev4edyVV6jVVCe92bx/WQ= 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=TF3FTZKb; 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 (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 41GNoCwF005510; Sat, 17 Feb 2024 00:10:44 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=NDrpeuvQzpNKSXUjYjE9 Ra56mCk6MtHuqcQ0JaHaO1s=; b=TF3FTZKbuZH5UccTmU4RiXnbnX2dw190dhEq bf+XBwVXLCKDg4kDq/pPC+QCh90QwOqEBEcZ5cGcKnjQMOzspfEN5TlzQHS8QBbl Cr4ne3Y35u3fJCkL6Tv5sAciw9h86PN26t11x2s9j2YxtLqx9bnnB2HsTmBgGbRP xdM1H40Dz9U/0w7ELxBaptgC93LfQ7L98xM3f5UwKyjPnyPdkBsBkhJvzcOMPISz MxKBn0S62z2wnVJgwFGo4jrYYn12XDGkeLBJfmlvj6mkryZZ7PKW6/rCvJuOgr1k XL9MvhLU7v5jPzPc1xvW1SF0nm8/gD01Qw2+ML3QmUxKhgGeEQ== Received: from nalasppmta01.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3wa03ra3ev-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sat, 17 Feb 2024 00:10:44 +0000 (GMT) Received: from nalasex01b.na.qualcomm.com (nalasex01b.na.qualcomm.com [10.47.209.197]) by NALASPPMTA01.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 41H0AhZ9029146 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sat, 17 Feb 2024 00:10:43 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; Fri, 16 Feb 2024 16:10:43 -0800 From: Wesley Cheng To: , , , , , , , , , , , , , , CC: , , , , , , , Wesley Cheng Subject: [PATCH v17 48/51] ALSA: usb-audio: qcom: Use card and PCM index from QMI request Date: Fri, 16 Feb 2024 16:10:14 -0800 Message-ID: <20240217001017.29969-49-quic_wcheng@quicinc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20240217001017.29969-1-quic_wcheng@quicinc.com> References: <20240217001017.29969-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 Content-Type: text/plain 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: ReGtwmGKwPj4JQIL7exuLePPTpSy-6pH X-Proofpoint-GUID: ReGtwmGKwPj4JQIL7exuLePPTpSy-6pH 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-16_23,2024-02-16_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 mlxlogscore=999 lowpriorityscore=0 mlxscore=0 adultscore=0 priorityscore=1501 clxscore=1015 bulkscore=0 phishscore=0 spamscore=0 suspectscore=0 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2401310000 definitions=main-2402160189 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 9695bf0ac1cd..5e7da9a033e5 100644 --- a/sound/usb/qcom/qc_audio_offload.c +++ b/sound/usb/qcom/qc_audio_offload.c @@ -107,8 +107,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 { @@ -1256,7 +1254,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"); @@ -1449,8 +1447,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; @@ -1658,7 +1655,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); snd_usb_offload_create_ctl(chip);