From patchwork Mon Jul 31 21:32:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pierre-Louis Bossart X-Patchwork-Id: 708444 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 03ACDC001E0 for ; Mon, 31 Jul 2023 21:35:26 +0000 (UTC) Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id 45E3E827; Mon, 31 Jul 2023 23:34:34 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 45E3E827 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1690839324; bh=2n4TKU74rNZYfrXBq3UHEWB8asICu7rlCFS/IZE4mMI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Archive:List-Help:List-Owner:List-Post:List-Subscribe: List-Unsubscribe:From; b=Ub+S3LTnSgLaIwB4Fp291zQwOlsIWZHBJ5c1Ltat6MpGRUhLKOK/ot//FVWhrZLA7 HrXQuKh3kex/o4KyrwHSmfikWg8U651RJ8dmMfQXMRl/Y4EIFGyhUNBPnIy2oZMqwJ Ur1Vxtsdi13LOd1D7fNTWCeiyYBGIIa95CtfT5AM= Received: by alsa1.perex.cz (Postfix, from userid 50401) id E63F9F8058C; Mon, 31 Jul 2023 23:33:24 +0200 (CEST) Received: from mailman-core.alsa-project.org (mailman-core.alsa-project.org [10.254.200.10]) by alsa1.perex.cz (Postfix) with ESMTP id 13660F8058C; Mon, 31 Jul 2023 23:33:24 +0200 (CEST) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 046D1F80552; Mon, 31 Jul 2023 23:33:17 +0200 (CEST) Received: from mgamail.intel.com (unknown [134.134.136.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 4832EF8015B for ; Mon, 31 Jul 2023 23:33:05 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 4832EF8015B Authentication-Results: alsa1.perex.cz; dkim=pass (2048-bit key, unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=Uys6oPyR DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1690839186; x=1722375186; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=2n4TKU74rNZYfrXBq3UHEWB8asICu7rlCFS/IZE4mMI=; b=Uys6oPyRlfxMtGns8PU8erzCdTwA+7jynE48eWQd3oxTT0Cb0n6sjBvg 51VozyTaI1FgQCf6zXvrI9FHsuYVsQfYcMXdu0AaKrt+9qQPcReeqUcRj 1tvYOtd4PK3jA05jJxCRhpFrW/uUwefKh/muqvo7v5PoBiEKRASw922un PQ+NbkeLC0hQEZX5bj9hYqDpNEPjipJrdAQ0WdJCrL3/EQX2I4sQtLpM0 esfEsCJskFr+zOtqff9gBDrGbsXhU1aPOFZBt3x1c1LWQ0tAsizvOTItc BCfNZKmY6ok3jQOrnHhryehsJ4qzBS+VFVtWNOgfkvYpXMdb5PVOGSyWN Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10788"; a="435447498" X-IronPort-AV: E=Sophos;i="6.01,245,1684825200"; d="scan'208";a="435447498" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Jul 2023 14:33:03 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10788"; a="731708896" X-IronPort-AV: E=Sophos;i="6.01,245,1684825200"; d="scan'208";a="731708896" Received: from youngnic-mobl1.amr.corp.intel.com (HELO pbossart-mobl3.intel.com) ([10.209.180.66]) by fmsmga007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Jul 2023 14:33:00 -0700 From: Pierre-Louis Bossart To: alsa-devel@alsa-project.org Cc: tiwai@suse.de, broonie@kernel.org, Pierre-Louis Bossart , Rander Wang , Bard Liao Subject: [PATCH 1/6] ASoC: SOF: Intel: start simplify the signature of link_slaves_found() Date: Mon, 31 Jul 2023 16:32:37 -0500 Message-Id: <20230731213242.434594-2-pierre-louis.bossart@linux.intel.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230731213242.434594-1-pierre-louis.bossart@linux.intel.com> References: <20230731213242.434594-1-pierre-louis.bossart@linux.intel.com> MIME-Version: 1.0 Message-ID-Hash: 3E2BXDJKMHY635HHG2XJLR2ZO5WBH7CX X-Message-ID-Hash: 3E2BXDJKMHY635HHG2XJLR2ZO5WBH7CX X-MailFrom: pierre-louis.bossart@linux.intel.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-alsa-devel.alsa-project.org-0; header-match-alsa-devel.alsa-project.org-1; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.8 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Start removing Intel-specific arguments to make that function usable by other SOC vendors. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Reviewed-by: Bard Liao --- sound/soc/sof/intel/hda.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/sound/soc/sof/intel/hda.c b/sound/soc/sof/intel/hda.c index 64bebe1a72bb..6d9fafb58581 100644 --- a/sound/soc/sof/intel/hda.c +++ b/sound/soc/sof/intel/hda.c @@ -1433,13 +1433,11 @@ static void hda_generic_machine_select(struct snd_sof_dev *sdev, SDW_MFG_ID_MASK | SDW_PART_ID_MASK)) /* Check if all Slaves defined on the link can be found */ -static bool link_slaves_found(struct snd_sof_dev *sdev, +static bool link_slaves_found(struct device *dev, const struct snd_soc_acpi_link_adr *link, - struct sdw_intel_ctx *sdw) + struct sdw_intel_slave_id *ids, + int num_slaves) { - struct hdac_bus *bus = sof_to_bus(sdev); - struct sdw_intel_slave_id *ids = sdw->ids; - int num_slaves = sdw->num_slaves; unsigned int part_id, link_id, unique_id, mfg_id, version; int i, j, k; @@ -1487,19 +1485,16 @@ static bool link_slaves_found(struct snd_sof_dev *sdev, unique_id = SDW_UNIQUE_ID(adr); if (reported_part_count == 1 || ids[j].id.unique_id == unique_id) { - dev_dbg(bus->dev, "found %x at link %d\n", - part_id, link_id); + dev_dbg(dev, "found %x at link %d\n", part_id, link_id); break; } } else { - dev_dbg(bus->dev, "part %x reported %d expected %d on link %d, skipping\n", + dev_dbg(dev, "part %x reported %d expected %d on link %d, skipping\n", part_id, reported_part_count, expected_part_count, link_id); } } if (j == num_slaves) { - dev_dbg(bus->dev, - "Slave %x not found\n", - part_id); + dev_dbg(dev, "Slave %x not found\n", part_id); return false; } } @@ -1549,7 +1544,7 @@ static struct snd_soc_acpi_mach *hda_sdw_machine_select(struct snd_sof_dev *sdev * Try next machine if any expected Slaves * are not found on this link. */ - if (!link_slaves_found(sdev, link, hdev->sdw)) + if (!link_slaves_found(sdev->dev, link, hdev->sdw->ids, hdev->sdw->num_slaves)) break; } /* Found if all Slaves are checked */ From patchwork Mon Jul 31 21:32:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pierre-Louis Bossart X-Patchwork-Id: 708787 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D01D0C001E0 for ; Mon, 31 Jul 2023 21:35:51 +0000 (UTC) Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id 24DC784C; Mon, 31 Jul 2023 23:35:00 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 24DC784C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1690839350; bh=mO4v0JLpcZjoDEv6O6t5hsaGOB2erQF4h+r3YIkRMSU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Archive:List-Help:List-Owner:List-Post:List-Subscribe: List-Unsubscribe:From; b=NqNk3+4EPcpumPK0GOI1rIimrdMUe0Of92FsHkLJHFGfl0vSux/6OQNMmhibKu6Lh xXxZpJc6DWrbdebQoVcx/dkgwKcH36lwm1MArFgbvMZJVruqZMZcol+7ITSj83Bbpm QSosDYdRrq4FtokKfqZUobDTv9dEsb9qCflpWeh0= Received: by alsa1.perex.cz (Postfix, from userid 50401) id 68E9DF80548; Mon, 31 Jul 2023 23:34:50 +0200 (CEST) Received: from mailman-core.alsa-project.org (mailman-core.alsa-project.org [10.254.200.10]) by alsa1.perex.cz (Postfix) with ESMTP id ED50CF80425; Mon, 31 Jul 2023 23:34:49 +0200 (CEST) Received: by alsa1.perex.cz (Postfix, from userid 50401) id EE017F8025A; Mon, 31 Jul 2023 23:34:45 +0200 (CEST) Received: from mgamail.intel.com (unknown [134.134.136.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 8117EF8016D for ; Mon, 31 Jul 2023 23:33:05 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 8117EF8016D Authentication-Results: alsa1.perex.cz; dkim=pass (2048-bit key, unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=CGUBcpM9 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1690839190; x=1722375190; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=mO4v0JLpcZjoDEv6O6t5hsaGOB2erQF4h+r3YIkRMSU=; b=CGUBcpM9TIJXOhNoRh2FaDZsZj5u3bAlU6boxzqnapGlALYoJyPpBts/ nAIwNM/JR4YXt0K2ttkqIuHmVqDD6WBvnD4Hq2xR1TVaUBBFsOIlLcLwD lYR50cJui6tfiOW7Vtbm5vBUzEZg5wanKM7NT2KOLWTsvK/fUgo7IZFch OjoO5EjraQrtDkz4ixW4g5I4lB92nltRalouBZnIZui+fOXuBlarwv4bV /BwPEctuCDe28wfwaNhir6+95BnfL7RZpgdungmBs3u/7itmNPtwoaw/p pVza0lMw+YCJ3Sm9+n6k1G7nBG4oQgZQwuqveGNwn+8tpoNS18OFZV2pu g==; X-IronPort-AV: E=McAfee;i="6600,9927,10788"; a="435447510" X-IronPort-AV: E=Sophos;i="6.01,245,1684825200"; d="scan'208";a="435447510" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Jul 2023 14:33:04 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10788"; a="731708901" X-IronPort-AV: E=Sophos;i="6.01,245,1684825200"; d="scan'208";a="731708901" Received: from youngnic-mobl1.amr.corp.intel.com (HELO pbossart-mobl3.intel.com) ([10.209.180.66]) by fmsmga007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Jul 2023 14:33:03 -0700 From: Pierre-Louis Bossart To: alsa-devel@alsa-project.org Cc: tiwai@suse.de, broonie@kernel.org, Pierre-Louis Bossart , Rander Wang , Bard Liao Subject: [PATCH 2/6] ASoC: soc-acpi: move link_slaves_found() Date: Mon, 31 Jul 2023 16:32:38 -0500 Message-Id: <20230731213242.434594-3-pierre-louis.bossart@linux.intel.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230731213242.434594-1-pierre-louis.bossart@linux.intel.com> References: <20230731213242.434594-1-pierre-louis.bossart@linux.intel.com> MIME-Version: 1.0 Message-ID-Hash: VNWGOSIDVSUJWOCJJM73WJML3SSDJSEU X-Message-ID-Hash: VNWGOSIDVSUJWOCJJM73WJML3SSDJSEU X-MailFrom: pierre-louis.bossart@linux.intel.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-alsa-devel.alsa-project.org-0; header-match-alsa-devel.alsa-project.org-1; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.8 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Move existing function in common library to make sure the code can be reused by other SoC vendors. No functionality change outside of the move and added prefix. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Reviewed-by: Bard Liao --- include/linux/soundwire/sdw.h | 5 ++ include/linux/soundwire/sdw_intel.h | 7 +-- include/sound/soc-acpi.h | 6 +++ sound/soc/soc-acpi.c | 73 +++++++++++++++++++++++++++ sound/soc/sof/intel/hda.c | 76 ++--------------------------- 5 files changed, 88 insertions(+), 79 deletions(-) diff --git a/include/linux/soundwire/sdw.h b/include/linux/soundwire/sdw.h index f523ceabd059..f248f9a6cd55 100644 --- a/include/linux/soundwire/sdw.h +++ b/include/linux/soundwire/sdw.h @@ -482,6 +482,11 @@ struct sdw_slave_id { __u8 sdw_version:4; }; +struct sdw_extended_slave_id { + int link_id; + struct sdw_slave_id id; +}; + /* * Helper macros to extract the MIPI-defined IDs * diff --git a/include/linux/soundwire/sdw_intel.h b/include/linux/soundwire/sdw_intel.h index 11fc88fb0d78..fa67fad4ef51 100644 --- a/include/linux/soundwire/sdw_intel.h +++ b/include/linux/soundwire/sdw_intel.h @@ -264,11 +264,6 @@ struct sdw_intel_link_dev; */ #define SDW_INTEL_CLK_STOP_BUS_RESET BIT(3) -struct sdw_intel_slave_id { - int link_id; - struct sdw_slave_id id; -}; - struct hdac_bus; /** @@ -298,7 +293,7 @@ struct sdw_intel_ctx { int num_slaves; acpi_handle handle; struct sdw_intel_link_dev **ldev; - struct sdw_intel_slave_id *ids; + struct sdw_extended_slave_id *ids; struct list_head link_list; struct mutex shim_lock; /* lock for access to shared SHIM registers */ u32 shim_mask; diff --git a/include/sound/soc-acpi.h b/include/sound/soc-acpi.h index 528279056b3a..630bf7367fe6 100644 --- a/include/sound/soc-acpi.h +++ b/include/sound/soc-acpi.h @@ -9,6 +9,7 @@ #include #include #include +#include struct snd_soc_acpi_package_context { char *name; /* package name */ @@ -208,4 +209,9 @@ static inline bool snd_soc_acpi_sof_parent(struct device *dev) !strncmp(dev->parent->driver->name, "sof-audio-acpi", strlen("sof-audio-acpi")); } +bool snd_soc_acpi_sdw_link_slaves_found(struct device *dev, + const struct snd_soc_acpi_link_adr *link, + struct sdw_extended_slave_id *ids, + int num_slaves); + #endif diff --git a/sound/soc/soc-acpi.c b/sound/soc/soc-acpi.c index 142476f1396f..9319e9b2a033 100644 --- a/sound/soc/soc-acpi.c +++ b/sound/soc/soc-acpi.c @@ -125,5 +125,78 @@ struct snd_soc_acpi_mach *snd_soc_acpi_codec_list(void *arg) } EXPORT_SYMBOL_GPL(snd_soc_acpi_codec_list); +#define SDW_CODEC_ADR_MASK(_adr) ((_adr) & (SDW_DISCO_LINK_ID_MASK | SDW_VERSION_MASK | \ + SDW_MFG_ID_MASK | SDW_PART_ID_MASK)) + +/* Check if all Slaves defined on the link can be found */ +bool snd_soc_acpi_sdw_link_slaves_found(struct device *dev, + const struct snd_soc_acpi_link_adr *link, + struct sdw_extended_slave_id *ids, + int num_slaves) +{ + unsigned int part_id, link_id, unique_id, mfg_id, version; + int i, j, k; + + for (i = 0; i < link->num_adr; i++) { + u64 adr = link->adr_d[i].adr; + int reported_part_count = 0; + + mfg_id = SDW_MFG_ID(adr); + part_id = SDW_PART_ID(adr); + link_id = SDW_DISCO_LINK_ID(adr); + version = SDW_VERSION(adr); + + for (j = 0; j < num_slaves; j++) { + /* find out how many identical parts were reported on that link */ + if (ids[j].link_id == link_id && + ids[j].id.part_id == part_id && + ids[j].id.mfg_id == mfg_id && + ids[j].id.sdw_version == version) + reported_part_count++; + } + + for (j = 0; j < num_slaves; j++) { + int expected_part_count = 0; + + if (ids[j].link_id != link_id || + ids[j].id.part_id != part_id || + ids[j].id.mfg_id != mfg_id || + ids[j].id.sdw_version != version) + continue; + + /* find out how many identical parts are expected */ + for (k = 0; k < link->num_adr; k++) { + u64 adr2 = link->adr_d[k].adr; + + if (SDW_CODEC_ADR_MASK(adr2) == SDW_CODEC_ADR_MASK(adr)) + expected_part_count++; + } + + if (reported_part_count == expected_part_count) { + /* + * we have to check unique id + * if there is more than one + * Slave on the link + */ + unique_id = SDW_UNIQUE_ID(adr); + if (reported_part_count == 1 || + ids[j].id.unique_id == unique_id) { + dev_dbg(dev, "found %x at link %d\n", part_id, link_id); + break; + } + } else { + dev_dbg(dev, "part %x reported %d expected %d on link %d, skipping\n", + part_id, reported_part_count, expected_part_count, link_id); + } + } + if (j == num_slaves) { + dev_dbg(dev, "Slave %x not found\n", part_id); + return false; + } + } + return true; +} +EXPORT_SYMBOL_GPL(snd_soc_acpi_sdw_link_slaves_found); + MODULE_LICENSE("GPL v2"); MODULE_DESCRIPTION("ALSA SoC ACPI module"); diff --git a/sound/soc/sof/intel/hda.c b/sound/soc/sof/intel/hda.c index 6d9fafb58581..a77c0a52dcad 100644 --- a/sound/soc/sof/intel/hda.c +++ b/sound/soc/sof/intel/hda.c @@ -1429,78 +1429,6 @@ static void hda_generic_machine_select(struct snd_sof_dev *sdev, #if IS_ENABLED(CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE) -#define SDW_CODEC_ADR_MASK(_adr) ((_adr) & (SDW_DISCO_LINK_ID_MASK | SDW_VERSION_MASK | \ - SDW_MFG_ID_MASK | SDW_PART_ID_MASK)) - -/* Check if all Slaves defined on the link can be found */ -static bool link_slaves_found(struct device *dev, - const struct snd_soc_acpi_link_adr *link, - struct sdw_intel_slave_id *ids, - int num_slaves) -{ - unsigned int part_id, link_id, unique_id, mfg_id, version; - int i, j, k; - - for (i = 0; i < link->num_adr; i++) { - u64 adr = link->adr_d[i].adr; - int reported_part_count = 0; - - mfg_id = SDW_MFG_ID(adr); - part_id = SDW_PART_ID(adr); - link_id = SDW_DISCO_LINK_ID(adr); - version = SDW_VERSION(adr); - - for (j = 0; j < num_slaves; j++) { - /* find out how many identical parts were reported on that link */ - if (ids[j].link_id == link_id && - ids[j].id.part_id == part_id && - ids[j].id.mfg_id == mfg_id && - ids[j].id.sdw_version == version) - reported_part_count++; - } - - for (j = 0; j < num_slaves; j++) { - int expected_part_count = 0; - - if (ids[j].link_id != link_id || - ids[j].id.part_id != part_id || - ids[j].id.mfg_id != mfg_id || - ids[j].id.sdw_version != version) - continue; - - /* find out how many identical parts are expected */ - for (k = 0; k < link->num_adr; k++) { - u64 adr2 = link->adr_d[k].adr; - - if (SDW_CODEC_ADR_MASK(adr2) == SDW_CODEC_ADR_MASK(adr)) - expected_part_count++; - } - - if (reported_part_count == expected_part_count) { - /* - * we have to check unique id - * if there is more than one - * Slave on the link - */ - unique_id = SDW_UNIQUE_ID(adr); - if (reported_part_count == 1 || - ids[j].id.unique_id == unique_id) { - dev_dbg(dev, "found %x at link %d\n", part_id, link_id); - break; - } - } else { - dev_dbg(dev, "part %x reported %d expected %d on link %d, skipping\n", - part_id, reported_part_count, expected_part_count, link_id); - } - } - if (j == num_slaves) { - dev_dbg(dev, "Slave %x not found\n", part_id); - return false; - } - } - return true; -} - static struct snd_soc_acpi_mach *hda_sdw_machine_select(struct snd_sof_dev *sdev) { struct snd_sof_pdata *pdata = sdev->pdata; @@ -1544,7 +1472,9 @@ static struct snd_soc_acpi_mach *hda_sdw_machine_select(struct snd_sof_dev *sdev * Try next machine if any expected Slaves * are not found on this link. */ - if (!link_slaves_found(sdev->dev, link, hdev->sdw->ids, hdev->sdw->num_slaves)) + if (!snd_soc_acpi_sdw_link_slaves_found(sdev->dev, link, + hdev->sdw->ids, + hdev->sdw->num_slaves)) break; } /* Found if all Slaves are checked */ From patchwork Mon Jul 31 21:32:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pierre-Louis Bossart X-Patchwork-Id: 708445 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 6FAE7C001DE for ; Mon, 31 Jul 2023 21:35:01 +0000 (UTC) Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id 6443583B; Mon, 31 Jul 2023 23:34:09 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 6443583B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1690839299; bh=Qisg1jzvkj1V1v1DiOJVrF1PE0elLuMSX6vPM5oWG/U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Archive:List-Help:List-Owner:List-Post:List-Subscribe: List-Unsubscribe:From; b=B2C6wzuYXS0b3u0728c4FoqYWXkI79RDm14DRrZT7WxB6+z61hUsLn7XlhMxQnw3L qUzkdCrE+LHXM9DLDRAO3xg67ps09V9hvFiRCD3BGarye/qtMoTxWDzae2m+GiTlM6 lQTPG75EnQ8vnPbVFSlU60n8OU3FJCydYX7WN1PM= Received: by alsa1.perex.cz (Postfix, from userid 50401) id 5239BF80570; Mon, 31 Jul 2023 23:33:19 +0200 (CEST) Received: from mailman-core.alsa-project.org (mailman-core.alsa-project.org [10.254.200.10]) by alsa1.perex.cz (Postfix) with ESMTP id 550DDF80553; Mon, 31 Jul 2023 23:33:19 +0200 (CEST) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 8CF5EF80535; Mon, 31 Jul 2023 23:33:12 +0200 (CEST) Received: from mgamail.intel.com (unknown [134.134.136.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id A179DF80163 for ; Mon, 31 Jul 2023 23:33:06 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz A179DF80163 Authentication-Results: alsa1.perex.cz; dkim=pass (2048-bit key, unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=Bnee8Yqw DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1690839188; x=1722375188; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Qisg1jzvkj1V1v1DiOJVrF1PE0elLuMSX6vPM5oWG/U=; b=Bnee8YqwxtBPTyrGVWtMWT65dODQlZPwZ45n41I9ykJ59bh9FqLM+Uno Nk57eU3M13duULL0W6swkvPxY4vjSCBCHT3p5XTgWQxe2ekDlqZps6Qic JeLwRlRv7MvgsI8+fM7qQfw5X+qGSS4/nZnCqWiJdd15H/RlYozU7rxAq SDbqxlYdqt8z/o50HDzjKqHmpz0okECf2OI41FHDAstaplQDshxfEOdzd XXVsiAdFMd4DPtyBfS3RHHlncwtDP9LFm9oZ34MFQTML7RvQcb38lW/82 Jc4I8Knv9E8zqq/peVrCcLBhA8bAmuz4TAMa6Igjade57pY+VAh0WM3CM A==; X-IronPort-AV: E=McAfee;i="6600,9927,10788"; a="435447515" X-IronPort-AV: E=Sophos;i="6.01,245,1684825200"; d="scan'208";a="435447515" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Jul 2023 14:33:05 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10788"; a="731708907" X-IronPort-AV: E=Sophos;i="6.01,245,1684825200"; d="scan'208";a="731708907" Received: from youngnic-mobl1.amr.corp.intel.com (HELO pbossart-mobl3.intel.com) ([10.209.180.66]) by fmsmga007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Jul 2023 14:33:04 -0700 From: Pierre-Louis Bossart To: alsa-devel@alsa-project.org Cc: tiwai@suse.de, broonie@kernel.org, Pierre-Louis Bossart , Rander Wang , Bard Liao Subject: [PATCH 3/6] ASoC: soc-acpi: improve log messagesin link_slaves_found() Date: Mon, 31 Jul 2023 16:32:39 -0500 Message-Id: <20230731213242.434594-4-pierre-louis.bossart@linux.intel.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230731213242.434594-1-pierre-louis.bossart@linux.intel.com> References: <20230731213242.434594-1-pierre-louis.bossart@linux.intel.com> MIME-Version: 1.0 Message-ID-Hash: VS75M2STLQXGWJD3LX6WYPAPCLC6ZSIT X-Message-ID-Hash: VS75M2STLQXGWJD3LX6WYPAPCLC6ZSIT X-MailFrom: pierre-louis.bossart@linux.intel.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-alsa-devel.alsa-project.org-0; header-match-alsa-devel.alsa-project.org-1; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.8 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: use 'part_id' to follow MIPI/SoundWire wording and use more consistent %#x format. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Rander Wang Reviewed-by: Bard Liao --- sound/soc/soc-acpi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sound/soc/soc-acpi.c b/sound/soc/soc-acpi.c index 9319e9b2a033..6d693b2ad5a3 100644 --- a/sound/soc/soc-acpi.c +++ b/sound/soc/soc-acpi.c @@ -181,16 +181,16 @@ bool snd_soc_acpi_sdw_link_slaves_found(struct device *dev, unique_id = SDW_UNIQUE_ID(adr); if (reported_part_count == 1 || ids[j].id.unique_id == unique_id) { - dev_dbg(dev, "found %x at link %d\n", part_id, link_id); + dev_dbg(dev, "found part_id %#x at link %d\n", part_id, link_id); break; } } else { - dev_dbg(dev, "part %x reported %d expected %d on link %d, skipping\n", + dev_dbg(dev, "part_id %#x reported %d expected %d on link %d, skipping\n", part_id, reported_part_count, expected_part_count, link_id); } } if (j == num_slaves) { - dev_dbg(dev, "Slave %x not found\n", part_id); + dev_dbg(dev, "Slave part_id %#x not found\n", part_id); return false; } } From patchwork Mon Jul 31 21:32:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pierre-Louis Bossart X-Patchwork-Id: 708788 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 726D1C001DE for ; Mon, 31 Jul 2023 21:35:05 +0000 (UTC) Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id 6632A850; Mon, 31 Jul 2023 23:34:13 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 6632A850 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1690839303; bh=FDZRZkJ3kkPD7nBK9NTcqGaUTO2jLnOwv91xpzD6rTU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Archive:List-Help:List-Owner:List-Post:List-Subscribe: List-Unsubscribe:From; b=Fl+DIOw23UH04UOg1qrEM783Bd6PB1WuPwyuX5e77Wzv8hd5R4ksSt8+ogHLDxXeR lRHk8PnVDwnSrjXRKsh29xuMP2OSriyBoIPleijglcwtsxmeIZrZ1U03Yny3gAn8Eu jQ+SPXdyvJWWrxdaIrwKKJ/5z4dfEmOzO7vA8Tzw= Received: by alsa1.perex.cz (Postfix, from userid 50401) id 171E7F8055C; Mon, 31 Jul 2023 23:33:22 +0200 (CEST) Received: from mailman-core.alsa-project.org (mailman-core.alsa-project.org [10.254.200.10]) by alsa1.perex.cz (Postfix) with ESMTP id 3B689F80578; Mon, 31 Jul 2023 23:33:21 +0200 (CEST) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 09A98F80520; Mon, 31 Jul 2023 23:33:14 +0200 (CEST) Received: from mgamail.intel.com (unknown [134.134.136.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id F204BF801D5 for ; Mon, 31 Jul 2023 23:33:07 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz F204BF801D5 Authentication-Results: alsa1.perex.cz; dkim=pass (2048-bit key, unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=cMQkZ6MM DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1690839189; x=1722375189; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=FDZRZkJ3kkPD7nBK9NTcqGaUTO2jLnOwv91xpzD6rTU=; b=cMQkZ6MMzjpTnuYtWHGHBCa5lyqnEahSNFSQLKmip1oOwwfMrBaiwZm/ /exn5xzKzeutyQNoJi4cwFBR6U96eq3dKvTg+V46nfzl2OCv/rTWiONTa tFh1u4YcGFXQwcqzAIrouoeUT3CceBQNEIUBOYLJsoPCVeY+Tzo42pNQG a1VcjjuseBpo+wRK57T1bUMGhb+zqCoVTLeH0t/VtlYON1V1BpgctXcp3 4hQe5u35ZtsXLjlxEE1RGul5Vq+KvwmtgC9X5oJdQ1ywG0rQrvunKsX80 6oUWOzdAUGpaSm0l+YXLZgJ4IVeMHUnwTbwL5o61B0WxRtx9VfXPPE38e w==; X-IronPort-AV: E=McAfee;i="6600,9927,10788"; a="435447525" X-IronPort-AV: E=Sophos;i="6.01,245,1684825200"; d="scan'208";a="435447525" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Jul 2023 14:33:07 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10788"; a="731708908" X-IronPort-AV: E=Sophos;i="6.01,245,1684825200"; d="scan'208";a="731708908" Received: from youngnic-mobl1.amr.corp.intel.com (HELO pbossart-mobl3.intel.com) ([10.209.180.66]) by fmsmga007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Jul 2023 14:33:05 -0700 From: Pierre-Louis Bossart To: alsa-devel@alsa-project.org Cc: tiwai@suse.de, broonie@kernel.org, Trevor Wu , Yaochun Hung , Daniel Baluta , Pierre-Louis Bossart Subject: [PATCH 4/6] ASoC: SOF: ipc3: update dai_link_fixup for SOF_DAI_MEDIATEK_AFE Date: Mon, 31 Jul 2023 16:32:40 -0500 Message-Id: <20230731213242.434594-5-pierre-louis.bossart@linux.intel.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230731213242.434594-1-pierre-louis.bossart@linux.intel.com> References: <20230731213242.434594-1-pierre-louis.bossart@linux.intel.com> MIME-Version: 1.0 Message-ID-Hash: XOSVFADHZMC2JJOJDNJS7OAJ5VNKWDGC X-Message-ID-Hash: XOSVFADHZMC2JJOJDNJS7OAJ5VNKWDGC X-MailFrom: pierre-louis.bossart@linux.intel.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-alsa-devel.alsa-project.org-0; header-match-alsa-devel.alsa-project.org-1; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.8 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Trevor Wu For MediaTek AFE, DAI DMA can support different bitwidths compared to the BE DAI. Therefore, it is preferable to obtain the BE frame format from the DAI_CONFIG. Reviewed-by: Yaochun Hung Reviewed-by: Daniel Baluta Signed-off-by: Trevor Wu Signed-off-by: Pierre-Louis Bossart --- sound/soc/sof/ipc3-pcm.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/sound/soc/sof/ipc3-pcm.c b/sound/soc/sof/ipc3-pcm.c index 304faf6425ab..cb58ee8c158a 100644 --- a/sound/soc/sof/ipc3-pcm.c +++ b/sound/soc/sof/ipc3-pcm.c @@ -309,6 +309,23 @@ static int sof_ipc3_pcm_dai_link_fixup(struct snd_soc_pcm_runtime *rtd, channels->min = private->dai_config->afe.channels; channels->max = private->dai_config->afe.channels; + snd_mask_none(fmt); + + switch (private->dai_config->afe.format) { + case SOF_IPC_FRAME_S16_LE: + snd_mask_set_format(fmt, SNDRV_PCM_FORMAT_S16_LE); + break; + case SOF_IPC_FRAME_S24_4LE: + snd_mask_set_format(fmt, SNDRV_PCM_FORMAT_S24_LE); + break; + case SOF_IPC_FRAME_S32_LE: + snd_mask_set_format(fmt, SNDRV_PCM_FORMAT_S32_LE); + break; + default: + dev_err(component->dev, "Not available format!\n"); + return -EINVAL; + } + dev_dbg(component->dev, "rate_min: %d rate_max: %d\n", rate->min, rate->max); dev_dbg(component->dev, "channels_min: %d channels_max: %d\n", channels->min, channels->max); From patchwork Mon Jul 31 21:32:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pierre-Louis Bossart X-Patchwork-Id: 708786 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id EC098C04A94 for ; Mon, 31 Jul 2023 21:36:13 +0000 (UTC) Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id D21AD828; Mon, 31 Jul 2023 23:35:21 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz D21AD828 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1690839371; bh=/G6qEZR7l6CuFZLwRfa/+iMq+7jtKFHIeF5aGbGrc1Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Archive:List-Help:List-Owner:List-Post:List-Subscribe: List-Unsubscribe:From; b=UUlne14ezGkzIzOS5zYaRmXFiZnel4cHsSvxHl1aZA5PFV3OSDdEtg9VfQDYb7tSr tmPoZxlzdkD/RC43TfUb2is6eGKoNzDrPSq8svB2bOvEmRl5+gya0Xdd/LP3MY2dIU Mo6s+cK1JtpmjuLTKzf8sy7WrbdzgbIVp/iOeZNQ= Received: by alsa1.perex.cz (Postfix, from userid 50401) id 88C03F8055B; Mon, 31 Jul 2023 23:34:56 +0200 (CEST) Received: from mailman-core.alsa-project.org (mailman-core.alsa-project.org [10.254.200.10]) by alsa1.perex.cz (Postfix) with ESMTP id B7F9CF80578; Mon, 31 Jul 2023 23:34:55 +0200 (CEST) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 328EEF80549; Mon, 31 Jul 2023 23:34:51 +0200 (CEST) Received: from mgamail.intel.com (unknown [134.134.136.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id AC741F80153 for ; Mon, 31 Jul 2023 23:33:09 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz AC741F80153 Authentication-Results: alsa1.perex.cz; dkim=pass (2048-bit key, unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=VCp7TX7H DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1690839190; x=1722375190; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=/G6qEZR7l6CuFZLwRfa/+iMq+7jtKFHIeF5aGbGrc1Y=; b=VCp7TX7HjJrtrdOHSaojZZRmTwAb7sNBKoYviKo68MC1g1lb59lbAjDN Qa7YLVThHtywSRV+qbRNItlXceEZj1mlci8QwDtf96KZyXn9y8uP7rA5E Rr7hwJTLrqt93rjN3V1m+/YSDxSBeJlSFgEn+h00yHQHRqfOop54vnusV +EqnLPaVbAqpPLqHvZzmlRgtAbi1M7vMqZ1FwUCsEz4EpLlfXbepbl+zC 7HUiO+wtepyxR8KavjPuuILbNHAeVe8gl6ux6DYBXhk/3YQCkvbW98lc9 rhKJgJskNlWoZVVXt8/uP0osrMpicoha76sc+6NvkQhCfhhI74zPC2nDW w==; X-IronPort-AV: E=McAfee;i="6600,9927,10788"; a="435447533" X-IronPort-AV: E=Sophos;i="6.01,245,1684825200"; d="scan'208";a="435447533" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Jul 2023 14:33:08 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10788"; a="731708912" X-IronPort-AV: E=Sophos;i="6.01,245,1684825200"; d="scan'208";a="731708912" Received: from youngnic-mobl1.amr.corp.intel.com (HELO pbossart-mobl3.intel.com) ([10.209.180.66]) by fmsmga007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Jul 2023 14:33:07 -0700 From: Pierre-Louis Bossart To: alsa-devel@alsa-project.org Cc: tiwai@suse.de, broonie@kernel.org, Curtis Malainey , Bard Liao , Pierre-Louis Bossart Subject: [PATCH 5/6] ASoC: SOF: Deprecate invalid enums in IPC3 Date: Mon, 31 Jul 2023 16:32:41 -0500 Message-Id: <20230731213242.434594-6-pierre-louis.bossart@linux.intel.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230731213242.434594-1-pierre-louis.bossart@linux.intel.com> References: <20230731213242.434594-1-pierre-louis.bossart@linux.intel.com> MIME-Version: 1.0 Message-ID-Hash: MSRMNBPUTUTNJMFECNW4OE3RRF4IA53L X-Message-ID-Hash: MSRMNBPUTUTNJMFECNW4OE3RRF4IA53L X-MailFrom: pierre-louis.bossart@linux.intel.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-alsa-devel.alsa-project.org-0; header-match-alsa-devel.alsa-project.org-1; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.8 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Curtis Malainey The switch component was never completed and sat half empty for over 3 years. It was recently deleted. For modern components this would require not change in the kernel but since this was a legacy allocation from the enum days of IPC3 we should mark the respective enum as deprecated. The splitter component was never even got a source file in the firmware. Therefore also delete it since this is not needed. Reviewed-by: Bard Liao Signed-off-by: Curtis Malainey Signed-off-by: Pierre-Louis Bossart --- include/sound/sof/topology.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/sound/sof/topology.h b/include/sound/sof/topology.h index 88560281d420..906e2f327ad2 100644 --- a/include/sound/sof/topology.h +++ b/include/sound/sof/topology.h @@ -26,9 +26,9 @@ enum sof_comp_type { SOF_COMP_MIXER, SOF_COMP_MUX, SOF_COMP_SRC, - SOF_COMP_SPLITTER, + SOF_COMP_DEPRECATED0, /* Formerly SOF_COMP_SPLITTER */ SOF_COMP_TONE, - SOF_COMP_SWITCH, + SOF_COMP_DEPRECATED1, /* Formerly SOF_COMP_SWITCH */ SOF_COMP_BUFFER, SOF_COMP_EQ_IIR, SOF_COMP_EQ_FIR, From patchwork Mon Jul 31 21:32:42 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pierre-Louis Bossart X-Patchwork-Id: 708443 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 89EB7C001DE for ; Mon, 31 Jul 2023 21:35:58 +0000 (UTC) Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id 1313486E; Mon, 31 Jul 2023 23:35:06 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 1313486E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1690839356; bh=o5+u+aXtqWZYYh0DiPq7Vb3s8bYdtiMpfZN9dpGMVIg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Archive:List-Help:List-Owner:List-Post:List-Subscribe: List-Unsubscribe:From; b=UYLmuT9kjAUA5v7z0wBosIKLXQh6bmpnt5wD30PcBnj1otX0HEhNZB02DMH1W5VTx 4sk7e7KPjDLcSPqMlN2OYPgtc+z78eAChFcmqS44+P9sMdUNl0rilXcyVEN1OkFejR kFcBSOY0ftJxwqF7T4SY7ffvLSIsL2fN/QhVsG8Q= Received: by alsa1.perex.cz (Postfix, from userid 50401) id 70AA7F80571; Mon, 31 Jul 2023 23:34:53 +0200 (CEST) Received: from mailman-core.alsa-project.org (mailman-core.alsa-project.org [10.254.200.10]) by alsa1.perex.cz (Postfix) with ESMTP id D9F25F80553; Mon, 31 Jul 2023 23:34:52 +0200 (CEST) Received: by alsa1.perex.cz (Postfix, from userid 50401) id E226AF801D5; Mon, 31 Jul 2023 23:34:47 +0200 (CEST) Received: from mgamail.intel.com (unknown [134.134.136.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 035BEF80425 for ; Mon, 31 Jul 2023 23:33:09 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 035BEF80425 Authentication-Results: alsa1.perex.cz; dkim=pass (2048-bit key, unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=kdGd5aq1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1690839191; x=1722375191; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=o5+u+aXtqWZYYh0DiPq7Vb3s8bYdtiMpfZN9dpGMVIg=; b=kdGd5aq1uVfR605sVB9CQ7xlmmybdzeRa2cnIwGo8QS7xym7XF1gq77q B+FQMQHuyElnSksKYi2npuccgYY7FZdYhdfnP0/bNhe2fDyK4vMJrMn0O 7x6Vc+QPWhvnZ8hzhWZE7gLjfBylTgYEbkYRKJs5vJ0j0SeqWGmmpFeO5 d3oq929UmaRurrN+6cFMmG99IZQ62QJ2SNY67zUAxYcml309y7HptcXSs hZU55oomzzWXjUza9RgA12kiI5cVkxxDWpWl5NVvlY7EMC+i83rF195md zgqWhW4FExlOcJ66dcoZ/T/ixW8SjKnB384kcOveJMONt/FWLmPG457hf w==; X-IronPort-AV: E=McAfee;i="6600,9927,10788"; a="435447541" X-IronPort-AV: E=Sophos;i="6.01,245,1684825200"; d="scan'208";a="435447541" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Jul 2023 14:33:09 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10788"; a="731708915" X-IronPort-AV: E=Sophos;i="6.01,245,1684825200"; d="scan'208";a="731708915" Received: from youngnic-mobl1.amr.corp.intel.com (HELO pbossart-mobl3.intel.com) ([10.209.180.66]) by fmsmga007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Jul 2023 14:33:08 -0700 From: Pierre-Louis Bossart To: alsa-devel@alsa-project.org Cc: tiwai@suse.de, broonie@kernel.org, Trevor Wu , Yaochun Hung , Kuan-Hsun Cheng Subject: [PATCH 6/6] ASoC: SOF: mediatek: mt8186 modify dram type as non-cache Date: Mon, 31 Jul 2023 16:32:42 -0500 Message-Id: <20230731213242.434594-7-pierre-louis.bossart@linux.intel.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230731213242.434594-1-pierre-louis.bossart@linux.intel.com> References: <20230731213242.434594-1-pierre-louis.bossart@linux.intel.com> MIME-Version: 1.0 Message-ID-Hash: 4FYWEJVAR2S3R32GTDHH2UAKXDJF3DCD X-Message-ID-Hash: 4FYWEJVAR2S3R32GTDHH2UAKXDJF3DCD X-MailFrom: pierre-louis.bossart@linux.intel.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-alsa-devel.alsa-project.org-0; header-match-alsa-devel.alsa-project.org-1; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.8 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Trevor Wu To prevent incorrect access between the host and DSP sides, we need to modify DRAM as a non-cache memory type. Additionally, we can retrieve the size of shared DMA from the device tree. Signed-off-by: Trevor Wu Reviewed-by: Yaochun Hung Reviewed-by: Kuan-Hsun Cheng --- sound/soc/sof/mediatek/mt8186/mt8186.c | 40 +++++++++++++++----------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/sound/soc/sof/mediatek/mt8186/mt8186.c b/sound/soc/sof/mediatek/mt8186/mt8186.c index 3e0ea0e109e2..f587edf9e0a7 100644 --- a/sound/soc/sof/mediatek/mt8186/mt8186.c +++ b/sound/soc/sof/mediatek/mt8186/mt8186.c @@ -111,6 +111,14 @@ static int platform_parse_resource(struct platform_device *pdev, void *data) dev_dbg(dev, "DMA %pR\n", &res); + adsp->pa_shared_dram = (phys_addr_t)res.start; + adsp->shared_size = resource_size(&res); + if (adsp->pa_shared_dram & DRAM_REMAP_MASK) { + dev_err(dev, "adsp shared dma memory(%#x) is not 4K-aligned\n", + (u32)adsp->pa_shared_dram); + return -EINVAL; + } + ret = of_reserved_mem_device_init(dev); if (ret) { dev_err(dev, "of_reserved_mem_device_init failed\n"); @@ -244,23 +252,18 @@ static int adsp_shared_base_ioremap(struct platform_device *pdev, void *data) { struct device *dev = &pdev->dev; struct mtk_adsp_chip_info *adsp = data; - u32 shared_size; /* remap shared-dram base to be non-cachable */ - shared_size = TOTAL_SIZE_SHARED_DRAM_FROM_TAIL; - adsp->pa_shared_dram = adsp->pa_dram + adsp->dramsize - shared_size; - if (adsp->va_dram) { - adsp->shared_dram = adsp->va_dram + DSP_DRAM_SIZE - shared_size; - } else { - adsp->shared_dram = devm_ioremap(dev, adsp->pa_shared_dram, - shared_size); - if (!adsp->shared_dram) { - dev_err(dev, "ioremap failed for shared DRAM\n"); - return -ENOMEM; - } + adsp->shared_dram = devm_ioremap(dev, adsp->pa_shared_dram, + adsp->shared_size); + if (!adsp->shared_dram) { + dev_err(dev, "failed to ioremap base %pa size %#x\n", + adsp->shared_dram, adsp->shared_size); + return -ENOMEM; } - dev_dbg(dev, "shared-dram vbase=%p, phy addr :%pa, size=%#x\n", - adsp->shared_dram, &adsp->pa_shared_dram, shared_size); + + dev_dbg(dev, "shared-dram vbase=%p, phy addr :%pa, size=%#x\n", + adsp->shared_dram, &adsp->pa_shared_dram, adsp->shared_size); return 0; } @@ -307,9 +310,12 @@ static int mt8186_dsp_probe(struct snd_sof_dev *sdev) return -ENOMEM; } - sdev->bar[SOF_FW_BLK_TYPE_SRAM] = devm_ioremap_wc(sdev->dev, - priv->adsp->pa_dram, - priv->adsp->dramsize); + priv->adsp->va_sram = sdev->bar[SOF_FW_BLK_TYPE_IRAM]; + + sdev->bar[SOF_FW_BLK_TYPE_SRAM] = devm_ioremap(sdev->dev, + priv->adsp->pa_dram, + priv->adsp->dramsize); + if (!sdev->bar[SOF_FW_BLK_TYPE_SRAM]) { dev_err(sdev->dev, "failed to ioremap base %pa size %#x\n", &priv->adsp->pa_dram, priv->adsp->dramsize);