Received: by 2002:ab2:788f:0:b0:1ee:8f2e:70ae with SMTP id b15csp499445lqi; Thu, 7 Mar 2024 03:45:38 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCUMO0G5eUUWH25+0R1MxCcX/+k4gOSPHREA/T/18jOL1rY4kQ9Cj8r8jHxMYUnqHRKD8M+9aSMktePrRNRFCDcl15SUF25DIBRDxmgOpA== X-Google-Smtp-Source: AGHT+IF8FSjSw7mzK1zsDAq8qCD0NR4R6CrImUJ+6gNOKL7uz4YM/RWoPNSdH7VQLzgbwJnCjaC8 X-Received: by 2002:a05:6a20:244d:b0:1a1:20c0:907a with SMTP id t13-20020a056a20244d00b001a120c0907amr1428335pzc.29.1709811938261; Thu, 07 Mar 2024 03:45:38 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709811938; cv=pass; d=google.com; s=arc-20160816; b=NG9eqEYxB3RT1NFGEd3OP2USWLqlH/R5Fgq8ESXOFG+LWV44djgSuX4FAKIWDdP1wG BtnhnnBrZigpkeQnECZxjQakOlxDKvstQhWH7tXmtHlXdbuNWJ3Z3j/0csk1gxmAIRFn 4hZHa6hS0XHYpyRSHfboFO8dCVhWnfic/L8wAQaHPJdk6rhQivloKl4JtfmG/VujfP1G 2IHs0wzwCRN/HbljYCNeGid86lqDiX5LCkL2pJYIMJ6gvW0itELDo6dcT2k/19USDHI6 z0LKPtRpgR6w43ItAcALcu3ks8oRKJbkzz4XkVBlB+h3U6o93nxXHUrPEFK1o3QjOeLN nyEA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:date:subject:cc:to :from:dkim-signature; bh=ihcI2oyrqb3ZY+zSeoYv75A7v3kFCGaPJF3E/oxD4N4=; fh=9iEt4iCRn9CzCxci4w2sdEG90CBf9Xi5ef9RsAZByLs=; b=c+9V/5sjgy0bsnpeY3caGl4UkA67MrZSEGB82NBP6G3fCv+GgnlR3rfo6WxjF79oki 8ML70GJPq5HYjYyhHXyRijlX0UXGbQ2v5BpBo4R00mUs9GOjsz0WSnJ9+FzigykSBcmW awIn/OERbXu+1umKOpov98Fbyrt98PcjTgKlukMxHNa42ZkkXQ4xb3m4vMZM5QRtlYd2 YrDaX/hymutpRTKsQg8RHL1u+5k2Sx+UJCxQ7Nqzpy0suUmBRcn0iddVevX9ormThtz2 r+v73JGVXPARM5aGJ7yY5rzRe7xMQ/sfYJp6OC/nQxl7V62cRrx0k6q1eYrrlhxzlohW 7SPA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b="BfGGW/8o"; arc=pass (i=1 spf=pass spfdomain=collabora.com dkim=pass dkdomain=collabora.com dmarc=pass fromdomain=collabora.com); spf=pass (google.com: domain of linux-kernel+bounces-95460-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-95460-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=collabora.com Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id s19-20020a056a0008d300b006e63f4889e3si4873394pfu.58.2024.03.07.03.45.38 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Mar 2024 03:45:38 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-95460-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b="BfGGW/8o"; arc=pass (i=1 spf=pass spfdomain=collabora.com dkim=pass dkdomain=collabora.com dmarc=pass fromdomain=collabora.com); spf=pass (google.com: domain of linux-kernel+bounces-95460-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-95460-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=collabora.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 E68462845CD for ; Thu, 7 Mar 2024 11:45:37 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3108812AAC3; Thu, 7 Mar 2024 11:44:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="BfGGW/8o" Received: from madrid.collaboradmins.com (madrid.collaboradmins.com [46.235.227.194]) (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 606FC128378; Thu, 7 Mar 2024 11:44:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=46.235.227.194 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709811897; cv=none; b=k2ShcX6rJSN9UrcE7OQ4H2s7/T+2Y//mHqUuNGKSLVf1EqT4SZ3gSdHs+0L6OPRWvHxxG6fPy8wsplLNcXFwCD+19tPxsAYpLXv7TPTYh7yVKIU0wDRebI18z8dZzFVJAeNz7od98Q4oIuY4r1UmtJisQc2F2UCSDjjPWCKmu2U= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709811897; c=relaxed/simple; bh=YLXRACV/8yso/Q2DcFPV1h8H715+Ey2K/IagRmZU0Zs=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=MBJEYauO1FcQcJnND1FqVcB6rhflzXqrRdiMQHAhyEMQ6i08yOzy1TBZokivADtkUF9pWYVATjv07F0KBzTKUWFQtlyv13ObtaJxThAjtRq+8h+0luo/TDspM2eC8PMbTqTlPKnSoiHiLbYGCKESpVpiT3RzTJhmNN1MdoSNFfI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=BfGGW/8o; arc=none smtp.client-ip=46.235.227.194 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1709811893; bh=YLXRACV/8yso/Q2DcFPV1h8H715+Ey2K/IagRmZU0Zs=; h=From:To:Cc:Subject:Date:From; b=BfGGW/8oM75PltNZ2OlrFzEmE/VU5QVzvNNOpMKGnf1iZCr0ypLRvCqQfshe+yQ2P CH4IgHnLTNShm4DiEnEFNR6gSxdmRLFXWNMY7pAxMmDbVgYVPOwdnMlRZQd4OS3y5Z Z6F+V6y21n8TERe7hXK2W2q3V/XwsSly2pI480Xa0A0Vp9rZgzuhmEEg1x0SHFkB10 oN7sl4/rbcDlAhnmUtzBLqaptIKyQjclAZLWp66yFcEeOrz8+YeyBL2VKOV0KSg7ki 8GKRxVJEF3HxqU8nn0zCFTz3vlKrJZ64jB7SMgpfEVtHzTeiNlvNpMH1ltHdcGN8U4 2VFZmIUsV6fVw== Received: from IcarusMOD.eternityproject.eu (cola.collaboradmins.com [195.201.22.229]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: kholk11) by madrid.collaboradmins.com (Postfix) with ESMTPSA id 0887F37820BB; Thu, 7 Mar 2024 11:44:50 +0000 (UTC) From: AngeloGioacchino Del Regno To: broonie@kernel.org Cc: wenst@chromium.org, lgirdwood@gmail.com, robh@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, matthias.bgg@gmail.com, perex@perex.cz, tiwai@suse.com, trevor.wu@mediatek.com, maso.huang@mediatek.com, xiazhengqiao@huaqin.corp-partner.google.com, arnd@arndb.de, kuninori.morimoto.gx@renesas.com, shraash@google.com, amergnat@baylibre.com, nicolas.ferre@microchip.com, u.kleine-koenig@pengutronix.de, dianders@chromium.org, frank.li@vivo.com, allen-kh.cheng@mediatek.com, eugen.hristev@collabora.com, claudiu.beznea@tuxon.dev, jarkko.nikula@bitmer.com, jiaxin.yu@mediatek.com, alpernebiyasak@gmail.com, ckeepax@opensource.cirrus.com, zhourui@huaqin.corp-partner.google.com, nfraprado@collabora.com, alsa-devel@alsa-project.org, shane.chien@mediatek.com, linux-sound@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, kernel@collabora.com, AngeloGioacchino Del Regno Subject: [PATCH v2 00/22] ASoC: Cleanup MediaTek soundcard machine drivers Date: Thu, 7 Mar 2024 12:44:23 +0100 Message-ID: <20240307114445.196981-1-angelogioacchino.delregno@collabora.com> X-Mailer: git-send-email 2.44.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Changes in v2: - Bindings: Changed link-name/codec/clk-provider to remove `items` and leave just the enum - Moved .*-dai-link pattern additionalProperties after `type: object` - Added ref to sound-card-common.yaml - Fixed dai-link-xxx -> xxx-dai-link typo in example comment This series performs a cleanup of most of the MediaTek AFE drivers and soundcard machine drivers, reducing code duplication and setting a base to be consistent with their devicetree bindings, as many of those are using different properties and nodes for no good reason. Summarizing: - Commonizes functions and ops where possible - Adds a common probe mechanism, increasing maintainability of soundcard drivers for older MediaTek SoCs - Migrates all drivers to support the new bindings - Obviously retains compatibility with old device trees - Reduces machine-specific parameters hardcoding in drivers - Can now set machine-specific params in device tree - Uses the `audio-routing` and `dai-link` nodes like some other non-MediaTek SoC sound drivers - Imposes consistency between MediaTek ASoC machine soundcard drivers bindings - Reduces code size and greatly reduces the amount of code that will be required for newer drivers (retaining compatibility with the old bindings was costly in terms of code size, otherwise this series would've removed ~1000 more lines, or something along that line). This series was (manually) tested on MT8173, MT8192, MT8195 and MT8186 Chromebooks. AngeloGioacchino Del Regno (22): ASoC: mediatek: mt8192-afe-pcm: Convert to devm_pm_runtime_enable() ASoC: mediatek: mt8192-afe-pcm: Simplify with dev_err_probe() ASoC: mediatek: Commonize ADDA rate transform functions and enums ASoC: mediatek: Assign dummy when codec not specified for a DAI link ASoC: mediatek: Add common machine soundcard driver probe mechanism ASoC: mediatek: common: Constify struct mtk_sof_priv ASoC: mediatek: mt8188: Migrate to mtk_soundcard_common_probe ASoC: mediatek: mt8195: Migrate to mtk_soundcard_common_probe ASoC: mediatek: mt8192: Migrate to mtk_soundcard_common_probe ASoC: mediatek: mt8186: Migrate to mtk_soundcard_common_probe ASoC: mediatek: Add common snd_soc_ops .startup() callback ASoC: mediatek: mt8195: Migrate to the common mtk_soundcard_startup ASoC: mediatek: mt8192: Migrate to the common mtk_soundcard_startup ASoC: mediatek: mt8186-rt1019: Migrate to the common mtk_soundcard_startup ASoC: mediatek: Add common mtk_afe_component_probe callback ASoC: mediatek: Use common mtk_afe_pcm_platform with common probe cb ASoC: mediatek: mt8186: Unify mt8186-mt6366 machine drivers ASoC: dt-bindings: mt8195: Document audio-routing and dai-link subnode ASoC: dt-bindings: mt8192: Document audio-routing and dai-link subnode ASoC: dt-bindings: mt8186: Document audio-routing and dai-link subnode arm64: dts: mediatek: mt8195-cherry: Specify sound DAI links and routing arm64: dts: mediatek: mt8186-corsola: Specify sound DAI links and routing .../sound/mt8186-mt6366-da7219-max98357.yaml | 112 +- .../sound/mt8186-mt6366-rt1019-rt5682s.yaml | 102 +- .../sound/mt8192-mt6359-rt1015-rt5682.yaml | 124 +- .../bindings/sound/mt8195-mt6359.yaml | 115 ++ .../boot/dts/mediatek/mt8186-corsola.dtsi | 42 +- .../boot/dts/mediatek/mt8195-cherry.dtsi | 45 + sound/soc/mediatek/Kconfig | 24 +- sound/soc/mediatek/common/Makefile | 2 + .../mediatek/common/mtk-afe-platform-driver.c | 18 + .../soc/mediatek/common/mtk-dai-adda-common.c | 70 + .../soc/mediatek/common/mtk-dai-adda-common.h | 45 + .../soc/mediatek/common/mtk-dsp-sof-common.c | 15 +- .../soc/mediatek/common/mtk-dsp-sof-common.h | 1 - sound/soc/mediatek/common/mtk-soc-card.h | 7 +- .../mediatek/common/mtk-soundcard-driver.c | 205 ++- .../mediatek/common/mtk-soundcard-driver.h | 42 + sound/soc/mediatek/mt6797/mt6797-afe-pcm.c | 14 +- sound/soc/mediatek/mt6797/mt6797-dai-adda.c | 85 +- sound/soc/mediatek/mt7986/mt7986-afe-pcm.c | 14 +- sound/soc/mediatek/mt8183/mt8183-afe-pcm.c | 14 +- sound/soc/mediatek/mt8183/mt8183-dai-adda.c | 90 +- sound/soc/mediatek/mt8186/Makefile | 3 +- sound/soc/mediatek/mt8186/mt8186-afe-pcm.c | 19 +- sound/soc/mediatek/mt8186/mt8186-dai-adda.c | 94 +- .../mt8186/mt8186-mt6366-da7219-max98357.c | 1189 ----------------- ...t6366-rt1019-rt5682s.c => mt8186-mt6366.c} | 578 ++++---- sound/soc/mediatek/mt8188/mt8188-afe-pcm.c | 21 +- sound/soc/mediatek/mt8188/mt8188-dai-adda.c | 89 +- sound/soc/mediatek/mt8188/mt8188-mt6359.c | 203 +-- sound/soc/mediatek/mt8192/mt8192-afe-pcm.c | 114 +- sound/soc/mediatek/mt8192/mt8192-dai-adda.c | 90 +- .../mt8192/mt8192-mt6359-rt1015-rt5682.c | 301 ++--- sound/soc/mediatek/mt8195/mt8195-afe-pcm.c | 21 +- sound/soc/mediatek/mt8195/mt8195-dai-adda.c | 90 +- sound/soc/mediatek/mt8195/mt8195-mt6359.c | 487 +++---- 35 files changed, 1714 insertions(+), 2771 deletions(-) create mode 100644 sound/soc/mediatek/common/mtk-dai-adda-common.c create mode 100644 sound/soc/mediatek/common/mtk-dai-adda-common.h delete mode 100644 sound/soc/mediatek/mt8186/mt8186-mt6366-da7219-max98357.c rename sound/soc/mediatek/mt8186/{mt8186-mt6366-rt1019-rt5682s.c => mt8186-mt6366.c} (72%) -- 2.44.0