From: Mengdong Lin mengdong.lin@linux.intel.com
This fix is based on Daniel Drake's suggestion: most x86 machines have a meaningfull DMI_SYS_VENDOR rather than DMI_BOARD_VENDOR.
So snd_soc_set_dmi_name will try to get vendor name from DMI_SYS_VENDOR at first, and if that's null, then use DMI_BOARD_VENDOR.
Signed-off-by: Mengdong Lin mengdong.lin@linux.intel.com
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index 525f2f3..45f0a34 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -1974,7 +1974,9 @@ int snd_soc_set_dmi_name(struct snd_soc_card *card, const char *flavour) return 0; /* long name already set by driver or from DMI */
/* make up dmi long name as: vendor.product.version.board */ - vendor = dmi_get_system_info(DMI_BOARD_VENDOR); + vendor = dmi_get_system_info(DMI_SYS_VENDOR); + if (!vendor) + vendor = dmi_get_system_info(DMI_BOARD_VENDOR); if (!vendor) { dev_warn(card->dev, "ASoC: no DMI vendor name!\n"); return 0;