From patchwork Wed Mar 8 23:57:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wesley Cheng X-Patchwork-Id: 66536 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:570d:b0:a1:2e52:cf23 with SMTP id h13csp886198dyk; Wed, 8 Mar 2023 16:11:57 -0800 (PST) X-Google-Smtp-Source: AK7set9PKdwUvv4Cj4pOZGIzG9uVuW0DYxn0pvs+T+RQdEsOMYXIKhuKnE56lopaBCQDXLI62uBO X-Received: by 2002:a05:6a20:430f:b0:d0:4361:9720 with SMTP id h15-20020a056a20430f00b000d043619720mr7337664pzk.61.1678320717026; Wed, 08 Mar 2023 16:11:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678320717; cv=none; d=google.com; s=arc-20160816; b=m7FdmksrSHWCdRtzUAW25yZ+yXI3UlnL9qaeKcYBNTruXM6Q3cCHN7ofAU+5Ci+pyn Npp+fYLECBbi3VyEfk/ME6U3OojFxz56xpJCAnKDiPS+YnS510/BpbnZESyRZqCEbZ3F hudE4tkmjV3ypJH8e1okcsMH3PnHmMoD1gcA3pNRY4CdgzHk5k0LZ/TuPlRGLZHg02vx fV1yxtYXxvavhNs1TNYrdThMUCKq9rCW8ltlRB+aSZz9u3bUIl1MkAloiGD8+DJ4EfWJ WTNp/24uyctWLjM18lzm5V0Yy+SsWbuM7Z5lt4OKL+dqownJVUZYoureyWw/67Ws1SCF zMbg== 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=3+NthnHMYb0aBxkwQRLsMo8vtaEUG/221TLwVqmJMEU=; b=d/epV6YCrUDIXzgGxcFwe+9CT5j06DQ8Vddut4/I7uBJM3S2vAPnZXt7M+Tw9gL/ED em81IzC8v9Y3JPwEJgIQirI5AwZ1jltpuMMiaBOpjWYs0RZFLzxk+6fOEpaCMmY2QwPl d0Ae+64vTvCEkVWZrwhWMtlWzJyUdTNJOJ9uqK+/f6O7nTxm5q2IgcT3Shwl4EyxlUUn AqvXz0Q86Xij2b3P+HdyjEUxNv0iBuK8YFu0uNfpY7YpyrwgE0FBuet7j1/NvPoAI+NM Om6WIbUmsMxoCKqGNnxsloFH7vKdgk7GpwDAqpvX9aw/yqVt1mWJ0fmXjQR0H2onGMqO CLYw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=Gmly7sgK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t16-20020a635f10000000b004e934a7fc39si15207347pgb.348.2023.03.08.16.11.29; Wed, 08 Mar 2023 16:11:56 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=Gmly7sgK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230369AbjCHX70 (ORCPT + 99 others); Wed, 8 Mar 2023 18:59:26 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35936 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229878AbjCHX6c (ORCPT ); Wed, 8 Mar 2023 18:58:32 -0500 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9CF8599675; Wed, 8 Mar 2023 15:58:31 -0800 (PST) Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 328LS3EZ020746; Wed, 8 Mar 2023 23:58:11 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=3+NthnHMYb0aBxkwQRLsMo8vtaEUG/221TLwVqmJMEU=; b=Gmly7sgKkfc1d0omGkEa+yBZvNTIX2bkqGF/SBjQkiSeVJ5f7fg+sFZMigKCPJWOFotS tWuuxg0Ik4UsG2w2/lnC8/rhSmdCLTZelsEFm0rod1zRzxEAE8nI/9RgzkfnrecQCr1H gKtS0+8DoyK0Tm1err0ILfs7gvzno0qqUOxkFdcpdOfto4QFzM9cjtVwErNnlpTejHeZ hB5xFHLr/Fqu6My7gzqPePakLEnig1XBtcmeW9cXH8JNyD1VTXCyzo+VtMXHxijecIG+ QqEA7cYDwu56sq8MR9CYbe8ccLeo+IvAX3p/pJsvS8HzEhJSXIYURsgKGk/wSrZ0tR0Z kw== Received: from nalasppmta01.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3p6v2dsav0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 08 Mar 2023 23:58:10 +0000 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 328NwAVo019912 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 8 Mar 2023 23:58:10 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.986.41; Wed, 8 Mar 2023 15:58:09 -0800 From: Wesley Cheng To: , , , , , , , , , , , , CC: , , , , , , , Wesley Cheng Subject: [PATCH v3 17/28] sound: soc: soc-usb: Add PCM format check API for USB backend Date: Wed, 8 Mar 2023 15:57:40 -0800 Message-ID: <20230308235751.495-18-quic_wcheng@quicinc.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230308235751.495-1-quic_wcheng@quicinc.com> References: <20230308235751.495-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-GUID: ux-qZkq_KdfHJAs8QaRnLn750V-ITN5T X-Proofpoint-ORIG-GUID: ux-qZkq_KdfHJAs8QaRnLn750V-ITN5T X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-03-08_15,2023-03-08_03,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 malwarescore=0 phishscore=0 priorityscore=1501 impostorscore=0 adultscore=0 spamscore=0 mlxscore=0 suspectscore=0 bulkscore=0 clxscore=1015 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2303080200 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE, SPF_PASS 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-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759846824153569055?= X-GMAIL-MSGID: =?utf-8?q?1759846824153569055?= Introduce a check for if a particular PCM format is supported by the USB audio device connected. If the USB audio device does not have an audio profile which can support the requested format, then notify the USB backend. Signed-off-by: Wesley Cheng --- include/sound/soc-usb.h | 3 +++ sound/soc/soc-usb.c | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff --git a/include/sound/soc-usb.h b/include/sound/soc-usb.h index 378992ea07bd..71e6e75e600a 100644 --- a/include/sound/soc-usb.h +++ b/include/sound/soc-usb.h @@ -23,6 +23,9 @@ struct snd_soc_usb { void *priv_data; }; +int snd_soc_usb_find_format(int card_idx, struct snd_pcm_hw_params *params, + int direction); + int snd_soc_usb_connect(struct device *usbdev, int card_idx); int snd_soc_usb_disconnect(struct device *usbdev); void snd_soc_usb_set_priv_data(struct device *dev, void *priv); diff --git a/sound/soc/soc-usb.c b/sound/soc/soc-usb.c index 4293451cdd49..cdce1bb42df5 100644 --- a/sound/soc/soc-usb.c +++ b/sound/soc/soc-usb.c @@ -70,6 +70,19 @@ void *snd_soc_usb_get_priv_data(struct device *dev) } EXPORT_SYMBOL_GPL(snd_soc_usb_get_priv_data); +int snd_soc_usb_find_format(int card_idx, struct snd_pcm_hw_params *params, + int direction) +{ + struct snd_usb_stream *as; + + as = snd_usb_find_suppported_substream(card_idx, params, direction); + if (!as) + return -EOPNOTSUPP; + + return 0; +} +EXPORT_SYMBOL_GPL(snd_soc_usb_find_format); + /** * snd_soc_usb_add_port() - Add a USB backend port * @dev: USB backend device