brintos

brintos / linux-shallow public Read only

0
0
Text · 1.2 KiB · fc2aae9 Raw
46 lines · c
1// SPDX-License-Identifier: GPL-2.0-only2// This file incorporates work covered by the following copyright notice:3// Copyright (c) 2020 Intel Corporation4// Copyright (c) 2024 Advanced Micro Devices, Inc.5 6/*7 *  soc_sdw_dmic - Helpers to handle dmic from generic machine driver8 */9 10#include <sound/soc.h>11#include <sound/soc-acpi.h>12#include <sound/soc-dapm.h>13#include <sound/soc_sdw_utils.h>14 15static const struct snd_soc_dapm_widget dmic_widgets[] = {16	SND_SOC_DAPM_MIC("SoC DMIC", NULL),17};18 19static const struct snd_soc_dapm_route dmic_map[] = {20	/* digital mics */21	{"DMic", NULL, "SoC DMIC"},22};23 24int asoc_sdw_dmic_init(struct snd_soc_pcm_runtime *rtd)25{26	struct snd_soc_card *card = rtd->card;27	int ret;28 29	ret = snd_soc_dapm_new_controls(&card->dapm, dmic_widgets,30					ARRAY_SIZE(dmic_widgets));31	if (ret) {32		dev_err(card->dev, "DMic widget addition failed: %d\n", ret);33		/* Don't need to add routes if widget addition failed */34		return ret;35	}36 37	ret = snd_soc_dapm_add_routes(&card->dapm, dmic_map,38				      ARRAY_SIZE(dmic_map));39 40	if (ret)41		dev_err(card->dev, "DMic map addition failed: %d\n", ret);42 43	return ret;44}45EXPORT_SYMBOL_NS(asoc_sdw_dmic_init, SND_SOC_SDW_UTILS);46