1234567891011121314151617181920212223242526272829303132333435363738394041 |
- /* SPDX-License-Identifier: GPL-2.0 */
- /*
- */
- #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 */
|