[alsa-devel] [RFC 05/11] ALSA: hda - exported link_reset enter/exit
Subhransu S. Prusty
subhransu.s.prusty at intel.com
Sun Apr 12 14:36:12 CEST 2015
From: Jeeja KP <jeeja.kp at intel.com>
Exported azx_enter_link_reset and azx_exit_link_reset
functions to be used by the SKL controller driver
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 | 3 +++
sound/hda/hdac_controller.c | 10 ++++++----
2 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/include/sound/hdaudio.h b/include/sound/hdaudio.h
index bffb2a9..4eebc31 100644
--- a/include/sound/hdaudio.h
+++ b/include/sound/hdaudio.h
@@ -286,6 +286,8 @@ int snd_hdac_bus_get_response(struct hdac_bus *bus, unsigned int addr,
void snd_hdac_bus_init_chip(struct hdac_bus *bus, bool full_reset);
void snd_hdac_bus_stop_chip(struct hdac_bus *bus);
+void snd_hdac_bus_enter_link_reset(struct hdac_bus *bus);
+void snd_hdac_bus_exit_link_reset(struct hdac_bus *bus);
void snd_hdac_bus_update_rirb(struct hdac_bus *bus);
void snd_hdac_bus_handle_stream_irq(struct hdac_bus *bus, unsigned int status,
@@ -359,6 +361,7 @@ void snd_hdac_stream_sync(struct hdac_stream *azx_dev, bool start,
unsigned int streams);
void snd_hdac_stream_timecounter_init(struct hdac_stream *azx_dev,
unsigned int streams);
+
/*DSP loader functions */
int snd_hdac_load_dsp_prepare(struct hdac_stream *azx_dev, unsigned int format,
unsigned int byte_size,
diff --git a/sound/hda/hdac_controller.c b/sound/hda/hdac_controller.c
index 5b1cd94..23aec0e 100644
--- a/sound/hda/hdac_controller.c
+++ b/sound/hda/hdac_controller.c
@@ -212,7 +212,7 @@ EXPORT_SYMBOL_GPL(snd_hdac_bus_get_response);
*/
/* enter link reset */
-static void azx_enter_link_reset(struct hdac_bus *bus)
+void snd_hdac_bus_enter_link_reset(struct hdac_bus *bus)
{
unsigned long timeout;
@@ -224,9 +224,10 @@ static void azx_enter_link_reset(struct hdac_bus *bus)
time_before(jiffies, timeout))
usleep_range(500, 1000);
}
+EXPORT_SYMBOL_GPL(snd_hdac_bus_enter_link_reset);
/* exit link reset */
-static void azx_exit_link_reset(struct hdac_bus *bus)
+void snd_hdac_bus_exit_link_reset(struct hdac_bus *bus)
{
unsigned long timeout;
@@ -236,6 +237,7 @@ static void azx_exit_link_reset(struct hdac_bus *bus)
while (!azx_readb(bus, GCTL) && time_before(jiffies, timeout))
usleep_range(500, 1000);
}
+EXPORT_SYMBOL_GPL(snd_hdac_bus_exit_link_reset);
/* reset codec link */
static int azx_reset(struct hdac_bus *bus, bool full_reset)
@@ -247,7 +249,7 @@ static int azx_reset(struct hdac_bus *bus, bool full_reset)
azx_writew(bus, STATESTS, STATESTS_INT_MASK);
/* reset controller */
- azx_enter_link_reset(bus);
+ snd_hdac_bus_enter_link_reset(bus);
/* delay for >= 100us for codec PLL to settle per spec
* Rev 0.9 section 5.5.1
@@ -255,7 +257,7 @@ static int azx_reset(struct hdac_bus *bus, bool full_reset)
usleep_range(500, 1000);
/* Bring controller out of reset */
- azx_exit_link_reset(bus);
+ snd_hdac_bus_exit_link_reset(bus);
/* Brent Chartrand said to wait >= 540us for codecs to initialize */
usleep_range(1000, 1200);
--
1.9.0
More information about the Alsa-devel
mailing list