[alsa-devel] [RFC 03/11] ALSA: hda - add generic function to unregister all devices on bus

Subhransu S. Prusty subhransu.s.prusty at intel.com
Sun Apr 12 14:36:10 CEST 2015


From: Jeeja KP <jeeja.kp at intel.com>

This will be used by SKL controller in driver remove
to unregister  all hda devices added during probe.

Signed-off-by: Jeeja KP <jeeja.kp at intel.com>
Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty at intel.com>
Signed-off-by: Vinod Koul <vinod.koul at intel.com>
---
 include/sound/hdaudio.h |  2 ++
 sound/hda/hdac_bus.c    | 10 ++++++++++
 2 files changed, 12 insertions(+)

diff --git a/include/sound/hdaudio.h b/include/sound/hdaudio.h
index b63cd03..247c4a7 100644
--- a/include/sound/hdaudio.h
+++ b/include/sound/hdaudio.h
@@ -268,6 +268,8 @@ void snd_hdac_bus_remove_device(struct hdac_bus *bus,
 				struct hdac_device *codec);
 int snd_hdac_bus_match_id(struct hdac_device *dev, struct hdac_driver *drv);
 
+void snd_hdac_bus_device_unregister(struct hdac_bus *bus);
+
 static inline void snd_hdac_codec_link_up(struct hdac_device *codec)
 {
 	set_bit(codec->addr, &codec->bus->codec_powered);
diff --git a/sound/hda/hdac_bus.c b/sound/hda/hdac_bus.c
index 4ecb4ec..23b6076 100644
--- a/sound/hda/hdac_bus.c
+++ b/sound/hda/hdac_bus.c
@@ -240,3 +240,13 @@ void snd_hdac_driver_unregister(struct hdac_driver *drv)
 	driver_unregister(&drv->driver);
 }
 EXPORT_SYMBOL_GPL(snd_hdac_driver_unregister);
+
+void snd_hdac_bus_device_unregister(struct hdac_bus *bus)
+{
+	struct hdac_device *hdev;
+
+	/*unregister all devices on bus */
+	list_for_each_entry(hdev, &bus->codec_list, list)
+				snd_hdac_device_unregister(hdev);
+}
+EXPORT_SYMBOL_GPL(snd_hdac_bus_device_unregister);
-- 
1.9.0



More information about the Alsa-devel mailing list