[alsa-devel] [RFC 03/11] ALSA: hda - add generic function to unregister all devices on bus

Takashi Iwai tiwai at suse.de
Mon Apr 13 13:54:19 CEST 2015


At Sun, 12 Apr 2015 18:06:10 +0530,
Subhransu S. Prusty wrote:
> 
> From: Jeeja KP <jeeja.kp at intel.com>
> 
> This will be used by SKL controller in driver remove
> to unregister  all hda devices added during probe.
> 
> 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 |  2 ++
>  sound/hda/hdac_bus.c    | 10 ++++++++++
>  2 files changed, 12 insertions(+)
> 
> diff --git a/include/sound/hdaudio.h b/include/sound/hdaudio.h
> index b63cd03..247c4a7 100644
> --- a/include/sound/hdaudio.h
> +++ b/include/sound/hdaudio.h
> @@ -268,6 +268,8 @@ void snd_hdac_bus_remove_device(struct hdac_bus *bus,
>  				struct hdac_device *codec);
>  int snd_hdac_bus_match_id(struct hdac_device *dev, struct hdac_driver *drv);
>  
> +void snd_hdac_bus_device_unregister(struct hdac_bus *bus);
> +
>  static inline void snd_hdac_codec_link_up(struct hdac_device *codec)
>  {
>  	set_bit(codec->addr, &codec->bus->codec_powered);
> diff --git a/sound/hda/hdac_bus.c b/sound/hda/hdac_bus.c
> index 4ecb4ec..23b6076 100644
> --- a/sound/hda/hdac_bus.c
> +++ b/sound/hda/hdac_bus.c
> @@ -240,3 +240,13 @@ void snd_hdac_driver_unregister(struct hdac_driver *drv)
>  	driver_unregister(&drv->driver);
>  }
>  EXPORT_SYMBOL_GPL(snd_hdac_driver_unregister);
> +
> +void snd_hdac_bus_device_unregister(struct hdac_bus *bus)
> +{
> +	struct hdac_device *hdev;
> +
> +	/*unregister all devices on bus */
> +	list_for_each_entry(hdev, &bus->codec_list, list)
> +				snd_hdac_device_unregister(hdev);
> +}
> +EXPORT_SYMBOL_GPL(snd_hdac_bus_device_unregister);

Again, I don't think we need to keep this in the core code until it's
really shared among multiple drivers.


thanks,

Takashi


More information about the Alsa-devel mailing list