+struct snd_soc_component *snd_soc_lookup_component(struct device *dev,
+ const char *driver_name)
+{
+ struct snd_soc_component *component;
+ struct snd_soc_component *ret;
+
+ ret = NULL;
+ mutex_lock(&client_mutex);
+ for_each_component(component) {
+ if (dev != component->dev)
+ continue;
+
+ if (driver_name &&
+ (driver_name != component->driver->name) &&
+ (strcmp(component->driver->name, driver_name) != 0))
+ continue;
+
+ ret = component;
+ break;
The mix of continue and break in the same loop is odd.
can this be done with break only, e.g. (check the logic)
for_each_component(component) {
if (dev == component->dev &&
(!driver_name ||
(driver_name == component->driver->name) ||
(strcmp(component->driver->name, driver_name) == 0))
ret = component;
break;
}
+ mutex_unlock(&client_mutex);
+
+ return ret;
usually 'return ret' is for an error code. It's odd to use it for a pointer.
+}
+EXPORT_SYMBOL_GPL(snd_soc_lookup_component);
+
struct snd_pcm_substream *snd_soc_get_dai_substream(struct snd_soc_card *card,
const char *dai_link, int stream)
{
@@ -2889,32 +2915,6 @@ void snd_soc_unregister_component(struct device *dev)
}
EXPORT_SYMBOL_GPL(snd_soc_unregister_component);
-struct snd_soc_component *snd_soc_lookup_component(struct device *dev,
- const char *driver_name)
-{
- struct snd_soc_component *component;
- struct snd_soc_component *ret;
-
- ret = NULL;
- mutex_lock(&client_mutex);
- for_each_component(component) {
- if (dev != component->dev)
- continue;
-
- if (driver_name &&
- (driver_name != component->driver->name) &&
- (strcmp(component->driver->name, driver_name) != 0))
- continue;
-
- ret = component;
- break;
- }
- mutex_unlock(&client_mutex);
-
- return ret;
-}
-EXPORT_SYMBOL_GPL(snd_soc_lookup_component);
-
/* Retrieve a card's name from device tree */
int snd_soc_of_parse_card_name(struct snd_soc_card *card,
const char *propname)
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel