[alsa-devel] [PATCH] hda: Add digital beep generator support for Realtek codecs.

Takashi Iwai tiwai at suse.de
Wed Feb 4 16:19:23 CET 2009


At Thu, 5 Feb 2009 00:00:58 +0900,
Kusanagi Kouichi wrote:
> 
> A digital beep generator can be used via input layer.
> 
> Signed-off-by: Kusanagi Kouichi <slash at ma.neweb.ne.jp>

Thanks, applied now.


Takashi

> ---
>  sound/pci/hda/hda_beep.h      |    2 +-
>  sound/pci/hda/patch_realtek.c |   62 +++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 63 insertions(+), 1 deletions(-)
> 
> diff --git a/sound/pci/hda/hda_beep.h b/sound/pci/hda/hda_beep.h
> index b9679f0..51bf6a5 100644
> --- a/sound/pci/hda/hda_beep.h
> +++ b/sound/pci/hda/hda_beep.h
> @@ -39,7 +39,7 @@ struct hda_beep {
>  int snd_hda_attach_beep_device(struct hda_codec *codec, int nid);
>  void snd_hda_detach_beep_device(struct hda_codec *codec);
>  #else
> -#define snd_hda_attach_beep_device(...)
> +#define snd_hda_attach_beep_device(...)		0
>  #define snd_hda_detach_beep_device(...)
>  #endif
>  #endif
> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> index 7884a4e..956b327 100644
> --- a/sound/pci/hda/patch_realtek.c
> +++ b/sound/pci/hda/patch_realtek.c
> @@ -30,6 +30,7 @@
>  #include <sound/core.h>
>  #include "hda_codec.h"
>  #include "hda_local.h"
> +#include "hda_beep.h"
>  
>  #define ALC880_FRONT_EVENT		0x01
>  #define ALC880_DCVOL_EVENT		0x02
> @@ -3160,6 +3161,7 @@ static void alc_free(struct hda_codec *codec)
>  
>  	alc_free_kctls(codec);
>  	kfree(spec);
> +	snd_hda_detach_beep_device(codec);
>  	codec->spec = NULL; /* to be sure */
>  }
>  
> @@ -4328,6 +4330,12 @@ static int patch_alc880(struct hda_codec *codec)
>  		}
>  	}
>  
> +	err = snd_hda_attach_beep_device(codec, 0x1);
> +	if (err < 0) {
> +		alc_free(codec);
> +		return err;
> +	}
> +
>  	if (board_config != ALC880_AUTO)
>  		setup_preset(spec, &alc880_presets[board_config]);
>  
> @@ -5855,6 +5863,12 @@ static int patch_alc260(struct hda_codec *codec)
>  		}
>  	}
>  
> +	err = snd_hda_attach_beep_device(codec, 0x1);
> +	if (err < 0) {
> +		alc_free(codec);
> +		return err;
> +	}
> +
>  	if (board_config != ALC260_AUTO)
>  		setup_preset(spec, &alc260_presets[board_config]);
>  
> @@ -7050,6 +7064,12 @@ static int patch_alc882(struct hda_codec *codec)
>  		}
>  	}
>  
> +	err = snd_hda_attach_beep_device(codec, 0x1);
> +	if (err < 0) {
> +		alc_free(codec);
> +		return err;
> +	}
> +
>  	if (board_config != ALC882_AUTO)
>  		setup_preset(spec, &alc882_presets[board_config]);
>  
> @@ -9024,6 +9044,12 @@ static int patch_alc883(struct hda_codec *codec)
>  		}
>  	}
>  
> +	err = snd_hda_attach_beep_device(codec, 0x1);
> +	if (err < 0) {
> +		alc_free(codec);
> +		return err;
> +	}
> +
>  	if (board_config != ALC883_AUTO)
>  		setup_preset(spec, &alc883_presets[board_config]);
>  
> @@ -10844,6 +10870,12 @@ static int patch_alc262(struct hda_codec *codec)
>  		}
>  	}
>  
> +	err = snd_hda_attach_beep_device(codec, 0x1);
> +	if (err < 0) {
> +		alc_free(codec);
> +		return err;
> +	}
> +
>  	if (board_config != ALC262_AUTO)
>  		setup_preset(spec, &alc262_presets[board_config]);
>  
> @@ -11896,6 +11928,12 @@ static int patch_alc268(struct hda_codec *codec)
>  		}
>  	}
>  
> +	err = snd_hda_attach_beep_device(codec, 0x1);
> +	if (err < 0) {
> +		alc_free(codec);
> +		return err;
> +	}
> +
>  	if (board_config != ALC268_AUTO)
>  		setup_preset(spec, &alc268_presets[board_config]);
>  
> @@ -12730,6 +12768,12 @@ static int patch_alc269(struct hda_codec *codec)
>  		}
>  	}
>  
> +	err = snd_hda_attach_beep_device(codec, 0x1);
> +	if (err < 0) {
> +		alc_free(codec);
> +		return err;
> +	}
> +
>  	if (board_config != ALC269_AUTO)
>  		setup_preset(spec, &alc269_presets[board_config]);
>  
> @@ -13823,6 +13867,12 @@ static int patch_alc861(struct hda_codec *codec)
>  		}
>  	}
>  
> +	err = snd_hda_attach_beep_device(codec, 0x23);
> +	if (err < 0) {
> +		alc_free(codec);
> +		return err;
> +	}
> +
>  	if (board_config != ALC861_AUTO)
>  		setup_preset(spec, &alc861_presets[board_config]);
>  
> @@ -14769,6 +14819,12 @@ static int patch_alc861vd(struct hda_codec *codec)
>  		}
>  	}
>  
> +	err = snd_hda_attach_beep_device(codec, 0x23);
> +	if (err < 0) {
> +		alc_free(codec);
> +		return err;
> +	}
> +
>  	if (board_config != ALC861VD_AUTO)
>  		setup_preset(spec, &alc861vd_presets[board_config]);
>  
> @@ -16578,6 +16634,12 @@ static int patch_alc662(struct hda_codec *codec)
>  		}
>  	}
>  
> +	err = snd_hda_attach_beep_device(codec, 0x1);
> +	if (err < 0) {
> +		alc_free(codec);
> +		return err;
> +	}
> +
>  	if (board_config != ALC662_AUTO)
>  		setup_preset(spec, &alc662_presets[board_config]);
>  
> -- 
> 1.5.6.5
> 
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> 


More information about the Alsa-devel mailing list