
On 03/06/11 01:03, Stephen Warren wrote:
Wherever SupportedDevice can appear, also allow ConflictingDevice. Only one or the other (or neither) may be specified. When neither is specified, allow anything. Sometimes, listing ConflictingDevices may result in a shorter list than explicitly listing all SupportedDevices.
Add support for SupportedDevice and ConflictingDevice to SectionDevice. This allows representing devices which are mutually exclusive, e.g. due to a mux that switches between capturing from two different microphones, without the possibility of mixing.
Enhance is_modifier_supported to allow ignoring SupportedDevice and ConflictingDevice. This is useful when querying values from a SectionModifier; there's no reason we shouldn't be able to query values just because the current configuration would prevent enabling that device. The new is_device_supported is implemented similarly.
Enhance switch_device to remove the old device from the current device list before querying for the new device, and add it back immediately afterwards. This allows the query for the new device to ignore any conflicts caused solely by the old device.
Signed-off-by: Stephen Warren swarren@nvidia.com
Acked-by: Liam Girdwood lrg@ti.com
Depending on decisions in the thread I recently started entitled "UCM modifier names", this patch may change, e.g. name_match may not be needed, or could be simpler.
I should probably split some of this into separate patches, but I figured I'd get it out there for people to discuss first.
Code looks fine, but it maybe best to rework with the index changes discussed in your previous mail (at least so we can deprecate the index).
Liam