[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