Received: by 2002:ab2:710b:0:b0:1ef:a325:1205 with SMTP id z11csp1631089lql; Wed, 13 Mar 2024 04:02:12 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCUDHNxrMkwFYcrL8nsfhSxOOF6ee2i1i6capAl1m4X5JCJMaDmBe+VtsoCB5QRprHRL/O3IwHu/luPfmoAACZmJz/RKkWH0dMhQIgADdA== X-Google-Smtp-Source: AGHT+IEt7WXTCjU0R/8SswbKWbCs5eBDZxkzY4CvAx7HwnNlGBpICMBdFPHFm8I4GGjVpFIsiuxI X-Received: by 2002:a17:907:d384:b0:a46:43df:5088 with SMTP id vh4-20020a170907d38400b00a4643df5088mr3249676ejc.18.1710327731756; Wed, 13 Mar 2024 04:02:11 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1710327731; cv=pass; d=google.com; s=arc-20160816; b=ep0Yjz0q497SHVXeKnBQ85S9ri1tIIkMgq9ahQ43CNKeXpMzX4BOrv9O8Ju60p9kKN 2g9D0qNHRUFAYE52oP88w2UnfwJmSEIShwJVUWK8GI+jJRY3MaxPQXLWiSmDaxqceMov xnLkndepwbp2O+WvmzWjXzxPf1ecZj22wAD85iUhyBFwLUUqUH7Imw0VBm96krZM0WRg YOwwW2dqrwcuON90iq8kP5M7WBpU/n3VKg6cXytOLFDqTqHsnRH4suH3WxpwdSo7Fu94 Xw0p7Ipv9HXxQwvLmgABQowuxVVuw1+DfG2V3oIoSYVVRa1ue2P8Kd7oo56ujoPr0q2d 2Uag== 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=q9vOfVuPHqQDp6IgX8ZhqbTrjd3+64XYexpl3lhO6N8=; fh=9iEt4iCRn9CzCxci4w2sdEG90CBf9Xi5ef9RsAZByLs=; b=l/y9fhrkS14xozWEtsvwprXFIZLY7GiZN8fYE4WI5tT5SfZvb7omKtkfIUIqvJMHkv QrTiMq917puOw+65xFPVD7FxuDvqFO+cKVdJh+A5ReMGXfMj8yIMbNURFHlsuEbiCw+d 3kDz7/CTgm/c4BBA0uobGLQzx2x4iHPSoE9csrhPGJcPgu9I3DV+rh1lIJqEJCWzecWu 8lCgOzO+bZKVVbMRlVvY6boAHwCEfGyiIsyp3PmKcADWF7+npNW4z2cElWb0bagujHPT WScbuK+c+04JCMvnzOWWsi6SEqzY2YEjmLR+yhI4cLEvhIYke0oQP5tOgdby/9w50A6L s2wA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=yUVc4e7G; 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-101380-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-101380-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=collabora.com Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id ht19-20020a170907609300b00a461537c354si3788401ejc.875.2024.03.13.04.02.11 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Mar 2024 04:02:11 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-101380-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=yUVc4e7G; 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-101380-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-101380-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 am.mirrors.kernel.org (Postfix) with ESMTPS id 4F3101F22132 for ; Wed, 13 Mar 2024 11:02:11 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 74ED93E479; Wed, 13 Mar 2024 11:02:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="yUVc4e7G" 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 B80053D386; Wed, 13 Mar 2024 11:01:59 +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=1710327721; cv=none; b=cAzICN0mq5XmJZmTHkvdzi6TovNafA+scWv5ff1IkyB3sWkIMmNnkyr6XlqNgwZmbcTyeXZsXKtP/qCqjP0llX5cngialM/Nsy0PjfVWuk8B7YsStSiuurenc4naDAiGOYkS2ao8suG65l5TaN7G0Oycx90kqFaavL6L7/yaWYI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710327721; c=relaxed/simple; bh=Df+G1jujSAuxTjxGz/6YCYog9gmMwQR5emVptlMkfXY=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=C7e98gENC0tzD6fX55hAiJonq2dMu+wd1YD2gGTd7KG4mzRkQUYWSJOBH4XdzN+pYsc9Izq/6fdE0g9h9Pb119WC0FBtAysSQ2gIYPYA7cIx3pzpDuVAQBsD5nOb+tk7fz3G7Hxq2/ovKC1uTD85A3+jbz+cckx+6Qfh1dcjuFA= 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=yUVc4e7G; 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=1710327717; bh=Df+G1jujSAuxTjxGz/6YCYog9gmMwQR5emVptlMkfXY=; h=From:To:Cc:Subject:Date:From; b=yUVc4e7GxmrOg6JxeC26bSNUhQ8k0nC2G8vL9ADPy+DO5DPP+dBoQBwJ+ttxkXYWr aCkWjmIMZMfDp4SClGm/ChwXTQsqsNcWr+S45d16b8QBvI114i6/xcn3q55P8yyrgO oaYoh1C3tUv9UiL2Ls8/mna1Gfqi75KJkJPZt03O8wwGXejpXcX8huA6QSYnsbimLu IzFt5RDkarJf3dWrf9pcD3PJfDn/W7hOO+W3CgZFuHb7rztmpwzrnd6f/V3sLlymfl UOeA5p6nr6pdnl009XRAttvmRxy0Z133K0zT/1c4P3JRA72mdjRqbAywvK//o3z3e/ 09uXmIKpdEKHQ== 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 40E8F37810CD; Wed, 13 Mar 2024 11:01:55 +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 v3 00/22] SoC: Cleanup MediaTek soundcard machine drivers Date: Wed, 13 Mar 2024 12:01:25 +0100 Message-ID: <20240313110147.1267793-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 v3: - Added audio-routing names in enum in all yaml files - Added mention of disallowing old and new properties together in commit message of bindings patches - Fixed validation errors with sound-card-common.yaml inclusion due to missing model property in examples - Removed `else` enforcing headset-codec/speaker-codecs requirement if xxx-dai-link not present to avoid future commit noise as the deprecated statement will disallow deprecated properties as required 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 | 131 +- .../sound/mt8186-mt6366-rt1019-rt5682s.yaml | 120 +- .../sound/mt8192-mt6359-rt1015-rt5682.yaml | 139 +- .../bindings/sound/mt8195-mt6359.yaml | 134 ++ .../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, 1781 insertions(+), 2775 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