Re: [PATCH 1/2] ucm: Automatically load the best config file based on the card long name

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 12/22/2016 11:35 PM, Liam Girdwood wrote:

+/* This function will find the best device-specific configuration
+file based
+ * on the sound card long name.
+ * Different devices may share the same sound driver and thus the
+same sound
+ * card name (short name), but they may still need different
+device-specific
+ * configurations. For user space to differentiate them, kernel
+drivers may
+ * include the DMI info (vendor, product and board) in the card
+long
name.
+ * And user space can define configuration file names appending
+DMI keywords
+ * to the card name, like:
+ * bytcr-rt5640.ASUS.T100
+ * bytcr-rt5651.MinnowBoard
+ *
+ * When being asked to load the configuration file for a card,
+this function
+ * will try to find the card long name from the local machine,
+and then scan
+ * all available configuration file names, search every field of
+the config
+ * file name in the card long name. The more characters match,
+the higher
+ * score the file has. Finally, the file with the highest score will be
loaded.
+ */

Id' expect this function to try and open card longname and then card
name if longname is not found. So providing we use the exact same
names as the DMI name we wont need any string formatting or scoring
(i.e. file
open("longname/longname.conf") will either succeed or fail)

Liam

I feel we cannot use the exact same names for the configuration file
and card long name. The DMI info in the card long name can be lengthy,
including '.' , SPACE, meaningless info like "Corp." and sometime
duplicated info for some OEMs.I hope developers can just extract key
words from the messy DMI info to make a simple configuration file
name, and UCM automatically do the matching and give each
configuration file a score. Then the file with highest score will be
used for the card.

Providing the DMI name does not use invalid filename characters we are ok.
Extracting key words and matching is prone to many problems and painful to
debug....

May I revise the UCM code like this? It will try to open the file with
DMI name at first. And only if that file is not available, fall back
to key words matching.

I hope to keep the possibility that user can use a simple
configuration file for a product family, without generating too many
card directories and files.


If the DMI names are too complex for directory names, then you could add
an alias file at the top level that would list the DMI name and the
shortened name i.e.

# DMI name                     # UCM directory name
"Dell blah Corp. XPS, 13 blah" "Dell XPS13 BDW"

So the alias file could be searched for the DMI name, before the legacy
name was tried.

The alias method above also allows for reuse of configs on machines that
are similar, but with different DMI names. So this would also keep the
number of configs low.

Liam

I'll try to use the alias file. But it seems we need to maintain a lot of entries in the file :-(

In addition, I found we cannot use paths with SPACE as the UCM directory name. Autoconf cannot support this. It complains although I tried \ or " to escape. We need something like "Dell.XPS13.BDW" as the UCM directory names.

Thanks
mengdong



Thanks
Mengdong


The alternative is to include the exact DMI name in a top level config file
that points to the UCM config.



Thanks
Mengdong


_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel




[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux