[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