diff --git a/sound/soc/intel/boards/sof_board_helpers.c b/sound/soc/intel/boards/sof_board_helpers.c
index 2ea1dda446ec..d3b9c1f9b108 100644
--- a/sound/soc/intel/boards/sof_board_helpers.c
+++ b/sound/soc/intel/boards/sof_board_helpers.c
@@ -3,6 +3,7 @@
 // Copyright(c) 2023 Intel Corporation
 
 #include <sound/soc.h>
+#include "../../sof/sof-priv.h"
 #include "../common/soc-intel-quirks.h"
 #include "hda_dsp_common.h"
 #include "sof_board_helpers.h"
@@ -776,6 +777,32 @@ sof_intel_board_get_ctx(struct device *dev, unsigned long board_quirk)
 }
 EXPORT_SYMBOL_NS(sof_intel_board_get_ctx, "SND_SOC_INTEL_SOF_BOARD_HELPERS");
 
+int sof_intel_board_set_longname_from_tplg(struct platform_device *pdev,
+        struct snd_soc_card *sof_audio_card)
+{
+	struct snd_sof_dev *sdev = dev_get_drvdata(pdev->dev.parent);
+	struct snd_sof_pdata *pdata = sdev->pdata;
+	char *tplg_filename;
+	char *long_name;
+
+	tplg_filename = kstrdup(pdata->tplg_filename, GFP_KERNEL);
+	if (!tplg_filename)
+		return -ENOMEM;
+	/* Trim off .tplg suffix */
+	tplg_filename[strlen(tplg_filename) - 5] = 0;
+
+	long_name = devm_kstrdup(&pdev->dev, tplg_filename, GFP_KERNEL);
+	if (!long_name)
+		return -ENOMEM;
+
+	dev_dbg(&pdev->dev, "Setting card long_name to: %s\n", long_name);
+	sof_audio_card->long_name = long_name;
+
+	kfree(tplg_filename);
+	return 0;
+}
+EXPORT_SYMBOL_NS(sof_intel_board_set_longname_from_tplg, "SND_SOC_INTEL_SOF_BOARD_HELPERS");
+
 MODULE_DESCRIPTION("ASoC Intel SOF Machine Driver Board Helpers");
 MODULE_AUTHOR("Brent Lu <brent.lu@intel.com>");
 MODULE_LICENSE("GPL");
diff --git a/sound/soc/intel/boards/sof_board_helpers.h b/sound/soc/intel/boards/sof_board_helpers.h
index 33a9601b770c..8d24ef4e779f 100644
--- a/sound/soc/intel/boards/sof_board_helpers.h
+++ b/sound/soc/intel/boards/sof_board_helpers.h
@@ -169,5 +169,7 @@ int sof_intel_board_set_dai_link(struct device *dev, struct snd_soc_card *card,
 				 struct sof_card_private *ctx);
 struct sof_card_private *
 sof_intel_board_get_ctx(struct device *dev, unsigned long board_quirk);
+int sof_intel_board_set_longname_from_tplg(struct platform_device *pdev,
+        	struct snd_soc_card *sof_audio_card);
 
 #endif /* __SOF_INTEL_BOARD_HELPERS_H */
diff --git a/sound/soc/intel/boards/sof_cs42l42.c b/sound/soc/intel/boards/sof_cs42l42.c
index 455c5bc8c634..35c55d972ec6 100644
--- a/sound/soc/intel/boards/sof_cs42l42.c
+++ b/sound/soc/intel/boards/sof_cs42l42.c
@@ -217,6 +217,9 @@ static int sof_audio_probe(struct platform_device *pdev)
 
 	dev_dbg(&pdev->dev, "sof_cs42l42_quirk = %lx\n", sof_cs42l42_quirk);
 
+	/* Set card long name based on tplg file name */
+	sof_intel_board_set_longname_from_tplg(pdev, &sof_audio_card_cs42l42);
+
 	/* initialize ctx with board quirk */
 	ctx = sof_intel_board_get_ctx(&pdev->dev, sof_cs42l42_quirk);
 	if (!ctx)
diff --git a/sound/soc/intel/boards/sof_da7219.c b/sound/soc/intel/boards/sof_da7219.c
index 9b7082b239c1..ac7558fbdafe 100644
--- a/sound/soc/intel/boards/sof_da7219.c
+++ b/sound/soc/intel/boards/sof_da7219.c
@@ -385,6 +385,9 @@ static int audio_probe(struct platform_device *pdev)
 		}
 	}
 
+	/* Set card long name based on tplg file name */
+	sof_intel_board_set_longname_from_tplg(pdev, &card_da7219);
+
 	if (board_quirk & SOF_DA7219_MCLK_EN)
 		ctx->da7219.mclk_en = true;
 
diff --git a/sound/soc/intel/boards/sof_nau8825.c b/sound/soc/intel/boards/sof_nau8825.c
index 72ce32e2cd57..638007b15d52 100644
--- a/sound/soc/intel/boards/sof_nau8825.c
+++ b/sound/soc/intel/boards/sof_nau8825.c
@@ -243,6 +243,9 @@ static int sof_audio_probe(struct platform_device *pdev)
 
 	dev_dbg(&pdev->dev, "sof_nau8825_quirk = %lx\n", sof_nau8825_quirk);
 
+	/* Set card long name based on tplg file name */
+	sof_intel_board_set_longname_from_tplg(pdev, &sof_audio_card_nau8825);
+
 	/* initialize ctx with board quirk */
 	ctx = sof_intel_board_get_ctx(&pdev->dev, sof_nau8825_quirk);
 	if (!ctx)
diff --git a/sound/soc/intel/boards/sof_rt5682.c b/sound/soc/intel/boards/sof_rt5682.c
index 4994aaccc583..d3175ce3e46c 100644
--- a/sound/soc/intel/boards/sof_rt5682.c
+++ b/sound/soc/intel/boards/sof_rt5682.c
@@ -706,6 +706,9 @@ static int sof_audio_probe(struct platform_device *pdev)
 		}
 	}
 
+	/* Set card long name based on tplg file name */
+	sof_intel_board_set_longname_from_tplg(pdev, &sof_audio_card_rt5682);
+
 	if (sof_rt5682_quirk & SOF_RT5682_MCLK_EN) {
 		ctx->rt5682.mclk_en = true;
 
diff --git a/sound/soc/intel/boards/sof_ssp_amp.c b/sound/soc/intel/boards/sof_ssp_amp.c
index 729c0cd7c19c..e3a2aa6e522e 100644
--- a/sound/soc/intel/boards/sof_ssp_amp.c
+++ b/sound/soc/intel/boards/sof_ssp_amp.c
@@ -119,6 +119,9 @@ static int sof_ssp_amp_probe(struct platform_device *pdev)
 
 	dev_dbg(&pdev->dev, "sof_ssp_amp_quirk = %lx\n", sof_ssp_amp_quirk);
 
+	/* Set card long name based on tplg file name */
+	sof_intel_board_set_longname_from_tplg(pdev, &sof_ssp_amp_card);
+
 	/* initialize ctx with board quirk */
 	ctx = sof_intel_board_get_ctx(&pdev->dev, sof_ssp_amp_quirk);
 	if (!ctx)
