Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fd72d008 authored by Wu Fengguang's avatar Wu Fengguang Committed by Takashi Iwai
Browse files

ALSA: hda: move open coded tricks into get_wcaps_channels()

parent 454e134d
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -410,6 +410,16 @@ static inline u32 get_wcaps(struct hda_codec *codec, hda_nid_t nid)
/* get the widget type from widget capability bits */
#define get_wcaps_type(wcaps) (((wcaps) & AC_WCAP_TYPE) >> AC_WCAP_TYPE_SHIFT)

static inline unsigned int get_wcaps_channels(u32 wcaps)
{
	unsigned int chans;

	chans = (wcaps & AC_WCAP_CHAN_CNT_EXT) >> 13;
	chans = ((chans << 1) | 1) + 1;

	return chans;
}

u32 query_amp_caps(struct hda_codec *codec, hda_nid_t nid, int direction);
int snd_hda_override_amp_caps(struct hda_codec *codec, hda_nid_t nid, int dir,
			      unsigned int caps);
+1 −3
Original line number Diff line number Diff line
@@ -515,9 +515,7 @@ static void print_codec_info(struct snd_info_entry *entry,
		snd_iprintf(buffer, "Node 0x%02x [%s] wcaps 0x%x:", nid,
			    get_wid_type_name(wid_type), wid_caps);
		if (wid_caps & AC_WCAP_STEREO) {
			unsigned int chans;
			chans = (wid_caps & AC_WCAP_CHAN_CNT_EXT) >> 13;
			chans = ((chans << 1) | 1) + 1;
			unsigned int chans = get_wcaps_channels(wid_caps);
			if (chans == 2)
				snd_iprintf(buffer, " Stereo");
			else
+1 −2
Original line number Diff line number Diff line
@@ -141,8 +141,7 @@ static int atihdmi_build_pcms(struct hda_codec *codec)
	/* FIXME: we must check ELD and change the PCM parameters dynamically
	 */
	chans = get_wcaps(codec, CVT_NID);
	chans = (chans & AC_WCAP_CHAN_CNT_EXT) >> 13;
	chans = ((chans << 1) | 1) + 1;
	chans = get_wcaps_channels(chans);
	info->stream[SNDRV_PCM_STREAM_PLAYBACK].channels_max = chans;

	return 0;