[PATCH] ALSA: core - add more card sysfs entries

Takashi Iwai tiwai at suse.de
Fri Apr 9 18:38:04 CEST 2021


On Fri, 09 Apr 2021 17:55:38 +0200,
Pierre-Louis Bossart wrote:
> 
> 
> >>> Couldn't the driver probe the firmware files with some device-specific
> >>> string suffix at first?  e.g. the driver can issue request_firmware()
> >>> with $base_file-$dmi_board at first, then falls back to the generic
> >>> $base_file.  A similar method was already used in Broadcom WiFi
> >>> driver.
> >>>
> >>> Also, the driver may do request_firmware() with a fixed path for the
> >>> custom firmware at first (e.g. "intel/sof-tplg-custom"); then a system
> >>> integrator may set up a specific configuration even that doesn't match
> >>> with DMI or whatever identifier.
> >>
> >> And when we have two firmware files which differs just by functionality
> >> requested by user? Although your method will work, I won't close the
> >> possibility to configure everything in udev rather using a hard
> >> coded fw load
> >> scheme only.
> >>
> >>                         Jaroslav
> >>
> >
> > I've slept on it and now I think I see what you are trying to do.
> >
> > 1. Load FW dependent on platform/user settings
> > 2. Load appropriate topology for FW
> > 3. Have UCM for the FEs and controls exposed by driver
> >
> >
> > As for 1. I would say that FW should be loaded from one location
> > if there is some platform that requires special FW just add quirks,
> > like it is done with every other driver, and if someone wants to
> > build their own special FW, they just replace it. We can't possibly
> > support hundreds of possible FW modifications if users want them by
> > putting them in separate files. Alternatively allow override via
> > kernel parameters.
> > Overriding FW files via udev would only make sense to me if it was
> > possible to upload new FW at runtime.
> 
> No, replacing firmware files is not viable.
> 
> Let me give you a practical example. In the course of SOF development,
> we routinely copy new test firmware+topology in the location of
> distribution-managed files. It's classic that when there is a
> distribution update in the background to install the latest SOF
> release, our test files are overwritten and it's not usual for
> developers to lose time trying to figure out why the functionality
> changed. We do need to have multiple paths and NEVER override what is
> provided by the distributions. it's the moral equivalent of /usr/bin
> v. /usr/local/bin.

Use /lib/firmware/updates/*.  That precedes over the standard path
/lib/firmware/*.  (Also /lib/firmware/updates/$VERSION has even higher
priority.)


Takashi


More information about the Alsa-devel mailing list