int snd_soc_card_probe(struct snd_soc_card *card);
int snd_soc_card_late_probe(struct snd_soc_card *card);
+int snd_soc_card_remove(struct snd_soc_card *card);
/* device driver data */
static inline void snd_soc_card_set_drvdata(struct snd_soc_card *card,
return 0;
}
+
+int snd_soc_card_remove(struct snd_soc_card *card)
+{
+ int ret = 0;
+
+ if (card->probed &&
+ card->remove)
+ ret = card->remove(card);
+
+ card->probed = 0;
+
+ return soc_card_ret(card, ret);
+}
soc_cleanup_card_debugfs(card);
/* remove the card */
- if (card->probed && card->remove)
- card->remove(card);
- card->probed = 0;
+ snd_soc_card_remove(card);
if (card->snd_card) {
snd_card_free(card->snd_card);