[alsa-devel] [RFC 05/11] ALSA: hda - exported link_reset enter/exit
Takashi Iwai
tiwai at suse.de
Mon Apr 13 14:04:32 CEST 2015
At Sun, 12 Apr 2015 18:06:12 +0530,
Subhransu S. Prusty wrote:
>
> 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
OK, I can fold them to my patchset.
Takashi
> 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