[alsa-devel] [PATCH 1/2] ALSA: hda - Move the function "check_amp_caps" to hda_codec.c
Takashi Iwai
tiwai at suse.de
Tue Sep 23 15:58:12 CEST 2014
At Tue, 23 Sep 2014 10:38:17 +0200,
David Henningsson wrote:
>
> The next patch will use it, so make it visible across modules.
>
> Signed-off-by: David Henningsson <david.henningsson at canonical.com>
Applied both patches. Thanks.
Takashi
> ---
> sound/pci/hda/hda_codec.c | 20 ++++++++++++++++++++
> sound/pci/hda/hda_generic.c | 17 -----------------
> sound/pci/hda/hda_local.h | 8 ++++++++
> 3 files changed, 28 insertions(+), 17 deletions(-)
>
> diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
> index 0aa2e1e..15e0089 100644
> --- a/sound/pci/hda/hda_codec.c
> +++ b/sound/pci/hda/hda_codec.c
> @@ -2002,6 +2002,26 @@ u32 query_amp_caps(struct hda_codec *codec, hda_nid_t nid, int direction)
> EXPORT_SYMBOL_GPL(query_amp_caps);
>
> /**
> + * snd_hda_check_amp_caps - query AMP capabilities
> + * @codec: the HD-audio codec
> + * @nid: the NID to query
> + * @dir: either #HDA_INPUT or #HDA_OUTPUT
> + *
> + * Check whether the widget has the given amp capability for the direction.
> + */
> +bool snd_hda_check_amp_caps(struct hda_codec *codec, hda_nid_t nid,
> + int dir, unsigned int bits)
> +{
> + if (!nid)
> + return false;
> + if (get_wcaps(codec, nid) & (1 << (dir + 1)))
> + if (query_amp_caps(codec, nid, dir) & bits)
> + return true;
> + return false;
> +}
> +EXPORT_SYMBOL_GPL(snd_hda_check_amp_caps);
> +
> +/**
> * snd_hda_override_amp_caps - Override the AMP capabilities
> * @codec: the CODEC to clean up
> * @nid: the NID to clean up
> diff --git a/sound/pci/hda/hda_generic.c b/sound/pci/hda/hda_generic.c
> index 32a85f9..64220c0 100644
> --- a/sound/pci/hda/hda_generic.c
> +++ b/sound/pci/hda/hda_generic.c
> @@ -519,18 +519,6 @@ static unsigned int amp_val_replace_channels(unsigned int val, unsigned int chs)
> return val;
> }
>
> -/* check whether the widget has the given amp capability for the direction */
> -static bool check_amp_caps(struct hda_codec *codec, hda_nid_t nid,
> - int dir, unsigned int bits)
> -{
> - if (!nid)
> - return false;
> - if (get_wcaps(codec, nid) & (1 << (dir + 1)))
> - if (query_amp_caps(codec, nid, dir) & bits)
> - return true;
> - return false;
> -}
> -
> static bool same_amp_caps(struct hda_codec *codec, hda_nid_t nid1,
> hda_nid_t nid2, int dir)
> {
> @@ -540,11 +528,6 @@ static bool same_amp_caps(struct hda_codec *codec, hda_nid_t nid1,
> query_amp_caps(codec, nid2, dir));
> }
>
> -#define nid_has_mute(codec, nid, dir) \
> - check_amp_caps(codec, nid, dir, (AC_AMPCAP_MUTE | AC_AMPCAP_MIN_MUTE))
> -#define nid_has_volume(codec, nid, dir) \
> - check_amp_caps(codec, nid, dir, AC_AMPCAP_NUM_STEPS)
> -
> /* look for a widget suitable for assigning a mute switch in the path */
> static hda_nid_t look_for_out_mute_nid(struct hda_codec *codec,
> struct nid_path *path)
> diff --git a/sound/pci/hda/hda_local.h b/sound/pci/hda/hda_local.h
> index 8a018d4..7eb44e7 100644
> --- a/sound/pci/hda/hda_local.h
> +++ b/sound/pci/hda/hda_local.h
> @@ -603,6 +603,14 @@ int snd_hda_override_amp_caps(struct hda_codec *codec, hda_nid_t nid, int dir,
> u32 snd_hda_query_pin_caps(struct hda_codec *codec, hda_nid_t nid);
> int snd_hda_override_pin_caps(struct hda_codec *codec, hda_nid_t nid,
> unsigned int caps);
> +bool snd_hda_check_amp_caps(struct hda_codec *codec, hda_nid_t nid,
> + int dir, unsigned int bits);
> +
> +#define nid_has_mute(codec, nid, dir) \
> + snd_hda_check_amp_caps(codec, nid, dir, (AC_AMPCAP_MUTE | AC_AMPCAP_MIN_MUTE))
> +#define nid_has_volume(codec, nid, dir) \
> + snd_hda_check_amp_caps(codec, nid, dir, AC_AMPCAP_NUM_STEPS)
> +
>
> /* flags for hda_nid_item */
> #define HDA_NID_ITEM_AMP (1<<0)
> --
> 1.9.1
>
More information about the Alsa-devel
mailing list