ALSA: hda - Move a part of hda_codec stuff into hdac_device
Now some codes and functionalities of hda_codec struct are moved to hdac_device struct. A few basic attributes like the codec address, vendor ID number, FG numbers, etc are moved to hdac_device, and they are accessed like codec->core.addr. The basic verb exec functions are moved, too. Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
39
sound/pci/hda/local.h
Normal file
39
sound/pci/hda/local.h
Normal file
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
*/
|
||||
|
||||
#ifndef __HDAC_LOCAL_H
|
||||
#define __HDAC_LOCAL_H
|
||||
|
||||
int hdac_read_parm(struct hdac_device *codec, hda_nid_t nid, int parm);
|
||||
|
||||
#define get_wcaps(codec, nid) \
|
||||
hdac_read_parm(codec, nid, AC_PAR_AUDIO_WIDGET_CAP)
|
||||
/* get the widget type from widget capability bits */
|
||||
static inline int get_wcaps_type(unsigned int wcaps)
|
||||
{
|
||||
if (!wcaps)
|
||||
return -1; /* invalid type */
|
||||
return (wcaps & AC_WCAP_TYPE) >> AC_WCAP_TYPE_SHIFT;
|
||||
}
|
||||
|
||||
#define get_pin_caps(codec, nid) \
|
||||
hdac_read_parm(codec, nid, AC_PAR_PIN_CAP)
|
||||
|
||||
static inline
|
||||
unsigned int get_pin_cfg(struct hdac_device *codec, hda_nid_t nid)
|
||||
{
|
||||
unsigned int val;
|
||||
|
||||
if (snd_hdac_read(codec, nid, AC_VERB_GET_CONFIG_DEFAULT, 0, &val))
|
||||
return -1;
|
||||
return val;
|
||||
}
|
||||
|
||||
#define get_amp_caps(codec, nid, dir) \
|
||||
hdac_read_parm(codec, nid, (dir) == HDA_OUTPUT ? \
|
||||
AC_PAR_AMP_OUT_CAP : AC_PAR_AMP_IN_CAP)
|
||||
|
||||
#define get_power_caps(codec, nid) \
|
||||
hdac_read_parm(codec, nid, AC_PAR_POWER_STATE)
|
||||
|
||||
#endif /* __HDAC_LOCAL_H */
|
Reference in New Issue
Block a user