Commit 18d43c9b authored by Keyon Jie's avatar Keyon Jie Committed by Takashi Iwai

ALSA: HDA: export process_unsol_events()

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: default avatarKeyon Jie <yang.jie@linux.intel.com>
Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 9cf6533e
...@@ -387,6 +387,7 @@ void snd_hdac_bus_queue_event(struct hdac_bus *bus, u32 res, u32 res_ex); ...@@ -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); int snd_hdac_bus_add_device(struct hdac_bus *bus, struct hdac_device *codec);
void snd_hdac_bus_remove_device(struct hdac_bus *bus, void snd_hdac_bus_remove_device(struct hdac_bus *bus,
struct hdac_device *codec); 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) static inline void snd_hdac_codec_link_up(struct hdac_device *codec)
{ {
......
...@@ -9,8 +9,6 @@ ...@@ -9,8 +9,6 @@
#include <sound/hdaudio.h> #include <sound/hdaudio.h>
#include "trace.h" #include "trace.h"
static void process_unsol_events(struct work_struct *work);
static const struct hdac_bus_ops default_ops = { static const struct hdac_bus_ops default_ops = {
.command = snd_hdac_bus_send_cmd, .command = snd_hdac_bus_send_cmd,
.get_response = snd_hdac_bus_get_response, .get_response = snd_hdac_bus_get_response,
...@@ -37,7 +35,7 @@ int snd_hdac_bus_init(struct hdac_bus *bus, struct device *dev, ...@@ -37,7 +35,7 @@ int snd_hdac_bus_init(struct hdac_bus *bus, struct device *dev,
bus->io_ops = io_ops; bus->io_ops = io_ops;
INIT_LIST_HEAD(&bus->stream_list); INIT_LIST_HEAD(&bus->stream_list);
INIT_LIST_HEAD(&bus->codec_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); spin_lock_init(&bus->reg_lock);
mutex_init(&bus->cmd_mutex); mutex_init(&bus->cmd_mutex);
bus->irq = -1; bus->irq = -1;
...@@ -148,7 +146,7 @@ EXPORT_SYMBOL_GPL(snd_hdac_bus_queue_event); ...@@ -148,7 +146,7 @@ EXPORT_SYMBOL_GPL(snd_hdac_bus_queue_event);
/* /*
* process queued unsolicited events * 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_bus *bus = container_of(work, struct hdac_bus, unsol_work);
struct hdac_device *codec; struct hdac_device *codec;
...@@ -171,6 +169,7 @@ static void process_unsol_events(struct work_struct *work) ...@@ -171,6 +169,7 @@ static void process_unsol_events(struct work_struct *work)
drv->unsol_event(codec, res); drv->unsol_event(codec, res);
} }
} }
EXPORT_SYMBOL_GPL(snd_hdac_bus_process_unsol_events);
/** /**
* snd_hdac_bus_add_device - Add a codec to bus * snd_hdac_bus_add_device - Add a codec to bus
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment