ALSA: HDA: export process_unsol_events()
authorKeyon Jie <yang.jie@linux.intel.com>
Tue, 11 Dec 2018 21:30:27 +0000 (15:30 -0600)
committerTakashi Iwai <tiwai@suse.de>
Wed, 19 Dec 2018 17:07:18 +0000 (18:07 +0100)
The SOF implementation does not rely on the hdac_bus library, however
for HDMI and HDaudio codec support it does need to deal with
unsolicited events. Instead of re-inventing the wheel, export this
symbol to reuse this part of the library directly.

Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
include/sound/hdaudio.h
sound/hda/hdac_bus.c

index 940e2b28213358032c33e3eb7b09dc6015fe803a..f9b2b6330d27a1c4f0e4fadb0e20646f5b67cb2e 100644 (file)
@@ -387,6 +387,7 @@ void snd_hdac_bus_queue_event(struct hdac_bus *bus, u32 res, u32 res_ex);
 int snd_hdac_bus_add_device(struct hdac_bus *bus, struct hdac_device *codec);
 void snd_hdac_bus_remove_device(struct hdac_bus *bus,
                                struct hdac_device *codec);
+void snd_hdac_bus_process_unsol_events(struct work_struct *work);
 
 static inline void snd_hdac_codec_link_up(struct hdac_device *codec)
 {
index 714a51721a313cef9e47309662b778e5c5b3c55b..012305177f68227af7bb25890a92c1ef93690221 100644 (file)
@@ -9,8 +9,6 @@
 #include <sound/hdaudio.h>
 #include "trace.h"
 
-static void process_unsol_events(struct work_struct *work);
-
 static const struct hdac_bus_ops default_ops = {
        .command = snd_hdac_bus_send_cmd,
        .get_response = snd_hdac_bus_get_response,
@@ -37,7 +35,7 @@ int snd_hdac_bus_init(struct hdac_bus *bus, struct device *dev,
        bus->io_ops = io_ops;
        INIT_LIST_HEAD(&bus->stream_list);
        INIT_LIST_HEAD(&bus->codec_list);
-       INIT_WORK(&bus->unsol_work, process_unsol_events);
+       INIT_WORK(&bus->unsol_work, snd_hdac_bus_process_unsol_events);
        spin_lock_init(&bus->reg_lock);
        mutex_init(&bus->cmd_mutex);
        bus->irq = -1;
@@ -148,7 +146,7 @@ EXPORT_SYMBOL_GPL(snd_hdac_bus_queue_event);
 /*
  * process queued unsolicited events
  */
-static void process_unsol_events(struct work_struct *work)
+void snd_hdac_bus_process_unsol_events(struct work_struct *work)
 {
        struct hdac_bus *bus = container_of(work, struct hdac_bus, unsol_work);
        struct hdac_device *codec;
@@ -171,6 +169,7 @@ static void process_unsol_events(struct work_struct *work)
                        drv->unsol_event(codec, res);
        }
 }
+EXPORT_SYMBOL_GPL(snd_hdac_bus_process_unsol_events);
 
 /**
  * snd_hdac_bus_add_device - Add a codec to bus