@@ -325,5 +325,7 @@ int snd_soc_component_force_enable_pin_unlocked(
/* component driver ops */
int snd_soc_component_open(struct snd_soc_component *component,
struct snd_pcm_substream *substream);
+int snd_soc_component_close(struct snd_soc_component *component,
+ struct snd_pcm_substream *substream);
#endif /* __SOC_COMPONENT_H */
@@ -295,3 +295,13 @@ int snd_soc_component_open(struct snd_soc_component *component,
return 0;
}
+
+int snd_soc_component_close(struct snd_soc_component *component,
+ struct snd_pcm_substream *substream)
+{
+ if (component->driver->ops &&
+ component->driver->ops->close)
+ return component->driver->ops->close(substream);
+
+ return 0;
+}
@@ -472,10 +472,7 @@ static int soc_pcm_components_close(struct snd_pcm_substream *substream,
if (component == last)
break;
- if (component->driver->ops &&
- component->driver->ops->close)
- component->driver->ops->close(substream);
-
+ snd_soc_component_close(component, substream);
snd_soc_component_module_put(component, 1);
}