mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-16 01:04:08 +08:00
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: 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>
This commit is contained in:
parent
9cf6533e80
commit
18d43c9b88
@ -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 @@
|
|||||||
#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,
|
|||||||
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);
|
|||||||
/*
|
/*
|
||||||
* 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)
|
|||||||
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
|
||||||
|
Loading…
Reference in New Issue
Block a user