1 /* 2 * Local helper macros and functions for HD-audio core drivers 3 */ 4 5 #ifndef __HDAC_LOCAL_H 6 #define __HDAC_LOCAL_H 7 8 #define get_wcaps(codec, nid) \ 9 snd_hdac_read_parm(codec, nid, AC_PAR_AUDIO_WIDGET_CAP) 10 11 /* get the widget type from widget capability bits */ 12 static inline int get_wcaps_type(unsigned int wcaps) 13 { 14 if (!wcaps) 15 return -1; /* invalid type */ 16 return (wcaps & AC_WCAP_TYPE) >> AC_WCAP_TYPE_SHIFT; 17 } 18 19 static inline unsigned int get_wcaps_channels(u32 wcaps) 20 { 21 unsigned int chans; 22 23 chans = (wcaps & AC_WCAP_CHAN_CNT_EXT) >> 13; 24 chans = (chans + 1) * 2; 25 26 return chans; 27 } 28 29 extern const struct attribute_group *hdac_dev_attr_groups[]; 30 int hda_widget_sysfs_init(struct hdac_device *codec); 31 void hda_widget_sysfs_exit(struct hdac_device *codec); 32 33 #endif /* __HDAC_LOCAL_H */ 34