[alsa-devel] [PATCH V7 2/2] ASoC: bytcr-rt5640: register DMI names for card
han.lu at intel.com
han.lu at intel.com
Wed Apr 6 09:29:19 CEST 2016
From: "Lu, Han" <han.lu at intel.com>
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 <han.lu at intel.com>
diff --git a/sound/soc/intel/boards/bytcr_rt5640.c b/sound/soc/intel/boards/bytcr_rt5640.c
index 032a2e7..014b549 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,13 @@ 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;
+ struct sst_acpi_mach *mach = byt_rt5640_card.dev->platform_data;
+
+ ret = snd_soc_set_card_names(card, mach->fw_filename);
+ if (ret < 0) {
+ dev_err(card->dev, "unable to register card names\n");
+ return ret;
+ }
card->dapm.idle_bias_off = true;
@@ -380,12 +389,21 @@ static int snd_byt_rt5640_mc_probe(struct platform_device *pdev)
return ret_val;
}
+static int snd_byt_rt5640_mc_remove(struct platform_device *pdev)
+{
+ struct snd_soc_card *card = &byt_rt5640_card;
+
+ snd_soc_cleanup_card_names(card);
+ return 0;
+}
+
static struct platform_driver snd_byt_rt5640_mc_driver = {
.driver = {
.name = "bytcr_rt5640",
.pm = &snd_soc_pm_ops,
},
.probe = snd_byt_rt5640_mc_probe,
+ .remove = snd_byt_rt5640_mc_remove,
};
module_platform_driver(snd_byt_rt5640_mc_driver);
--
2.5.0
More information about the Alsa-devel
mailing list