From mboxrd@z Thu Jan 1 00:00:00 1970 From: han.lu@intel.com Subject: [PATCH V5 2/2] ASoC: bytcr-rt5640: register DMI names for card Date: Tue, 5 Apr 2016 12:26:34 +0800 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by alsa0.perex.cz (Postfix) with ESMTP id 4204826170F for ; Tue, 5 Apr 2016 06:25:53 +0200 (CEST) In-Reply-To: In-Reply-To: References: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org To: broonie@kernel.org, tiwai@suse.de, vinod.koul@intel.com, pierre-louis.bossart@linux.intel.com, liam.r.girdwood@linux.intel.com, alsa-devel@alsa-project.org Cc: "Lu, Han" List-Id: alsa-devel@alsa-project.org From: "Lu, Han" Register DMI names for products using bytcr-rt5640 driver, such as ASUS T100TA and Dell Venue 8 Pro 5830, for user space utils to distinguish different products. For example, previously on T100TA: $ cat /proc/asound/cards 0 [bytcrrt5640 ]: bytcr-rt5640 - bytcr-rt5640 bytcr-rt5640 $ amixer -c0 info Card hw:0 'bytcrrt5640'/'bytcr-rt5640' Mixer name : '' Components : '' Controls : 256 Simple ctrls : 228 After apply the patch: $ cat /proc/asound/cards 0 [T100TA ]: bytcr-rt5640 - T100TA T100TA;bytcr-rt5640;ASUSTek COMPUTER INC.;intel/fw_ sst_0f28.bin $ amixer -c0 info Card hw:0 'T100TA'/'T100TA;bytcr-rt5640;ASUSTek COMPUTER INC.;intel/fw_ sst_0f28.bin' Mixer name : '' Components : 'T100TA;bytcr-rt5640;ASUSTek COMPUTER INC.;intel/fw_s st_0f28.bin' Controls : 256 Simple ctrls : 228 Signed-off-by: Lu, Han diff --git a/sound/soc/intel/boards/bytcr_rt5640.c b/sound/soc/intel/boards/bytcr_rt5640.c index 032a2e7..2e083a7 100644 --- a/sound/soc/intel/boards/bytcr_rt5640.c +++ b/sound/soc/intel/boards/bytcr_rt5640.c @@ -152,6 +152,8 @@ static const struct dmi_system_id byt_rt5640_quirk_table[] = { {} }; +static struct snd_soc_card byt_rt5640_card; + static int byt_rt5640_init(struct snd_soc_pcm_runtime *runtime) { int ret; @@ -159,6 +161,17 @@ static int byt_rt5640_init(struct snd_soc_pcm_runtime *runtime) struct snd_soc_card *card = runtime->card; const struct snd_soc_dapm_route *custom_map; int num_routes; + const char *board, *vendor; + struct sst_acpi_mach *mach = byt_rt5640_card.dev->platform_data; + + /* Add board name, vendor name and firmware name for the userspace */ + board = dmi_get_system_info(DMI_PRODUCT_NAME); + vendor = dmi_get_system_info(DMI_SYS_VENDOR); + ret = snd_soc_set_card_names(card, board, vendor, mach->fw_filename); + if (ret < 0) { + dev_err(card->dev, "unable to register card names\n"); + return ret; + } card->dapm.idle_bias_off = true; -- 2.5.0