37#ifndef _HDAA_QUIRKS_H_
38#define _HDAA_QUIRKS_H_
40#define HDAA_GPIO_SHIFT(n) (n * 3)
41#define HDAA_GPIO_MASK(n) (0x7 << (n * 3))
42#define HDAA_GPIO_KEEP(n) (0x0 << (n * 3))
43#define HDAA_GPIO_SET(n) (0x1 << (n * 3))
44#define HDAA_GPIO_CLEAR(n) (0x2 << (n * 3))
45#define HDAA_GPIO_DISABLE(n) (0x3 << (n * 3))
46#define HDAA_GPIO_INPUT(n) (0x4 << (n * 3))
49#define HDAA_QUIRK_SOFTPCMVOL (1 << 9)
50#define HDAA_QUIRK_FIXEDRATE (1 << 10)
51#define HDAA_QUIRK_FORCESTEREO (1 << 11)
52#define HDAA_QUIRK_EAPDINV (1 << 12)
53#define HDAA_QUIRK_SENSEINV (1 << 14)
56#define HDAA_QUIRK_IVREF50 (1 << 26)
57#define HDAA_QUIRK_IVREF80 (1 << 27)
58#define HDAA_QUIRK_IVREF100 (1 << 28)
59#define HDAA_QUIRK_OVREF50 (1 << 29)
60#define HDAA_QUIRK_OVREF80 (1 << 30)
61#define HDAA_QUIRK_OVREF100 (1U << 31)
63#define HDAA_QUIRK_IVREF (HDAA_QUIRK_IVREF50 | HDAA_QUIRK_IVREF80 | \
65#define HDAA_QUIRK_OVREF (HDAA_QUIRK_OVREF50 | HDAA_QUIRK_OVREF80 | \
67#define HDAA_QUIRK_VREF (HDAA_QUIRK_IVREF | HDAA_QUIRK_OVREF)
69#define HDAA_AMP_VOL_DEFAULT (-1)
70#define HDAA_AMP_MUTE_DEFAULT (0xffffffff)
71#define HDAA_AMP_MUTE_NONE (0)
72#define HDAA_AMP_MUTE_LEFT (1 << 0)
73#define HDAA_AMP_MUTE_RIGHT (1 << 1)
74#define HDAA_AMP_MUTE_ALL (HDAA_AMP_MUTE_LEFT | HDAA_AMP_MUTE_RIGHT)
76#define HDAA_AMP_LEFT_MUTED(v) ((v) & (HDAA_AMP_MUTE_LEFT))
77#define HDAA_AMP_RIGHT_MUTED(v) (((v) & HDAA_AMP_MUTE_RIGHT) >> 1)
80#define HDAA_ADC_MONITOR (1 << 0)
82#define HDAA_IMIX_AS_DST (2 << 0)
87#define HDA_MAX_CONNS 32
88#define HDA_MAX_NAMELEN 32
177 u_char
left[SOUND_MIXER_NRDEVICES];
178 u_char
right[SOUND_MIXER_NRDEVICES];
220#define HDAA_CHN_RUNNING 0x00000001
221#define HDAA_CHN_SUSPEND 0x00000002
247 ((0 - (ctl)->offset) * ((ctl)->size + 1))
250 (((ctl)->step - (ctl)->offset) * ((ctl)->size + 1))
252#define RANGEQDB(ctl) \
253 ((ctl)->step * ((ctl)->size + 1))
255#define VAL2QDB(ctl, val) \
256 (((ctl)->size + 1) * ((int)(val) - (ctl)->offset))
258#define QDB2VAL(ctl, qdb) \
259 imax(imin((((qdb) + (ctl)->size / 2 * ((qdb) > 0 ? 1 : -1)) / \
260 ((ctl)->size + 1) + (ctl)->offset), (ctl)->step), 0)
262#define hdaa_codec_id(devinfo) \
263 (((uint32_t)hda_get_vendor_id(devinfo->dev) << 16) + \
264 hda_get_device_id(devinfo->dev))
266#define hdaa_card_id(devinfo) \
267 (((uint32_t)hda_get_subdevice_id(devinfo->dev) << 16) + \
268 hda_get_subvendor_id(devinfo->dev))
void hdaa_patch_direct(struct hdaa_devinfo *devinfo)
struct hdaa_widget * hdaa_widget_get(struct hdaa_devinfo *, nid_t)
void hdaa_patch(struct hdaa_devinfo *devinfo)
uint32_t hdaa_gpio_patch(uint32_t gpio, const char *str)
uint32_t hdaa_widget_pin_patch(uint32_t config, const char *str)
struct hdaa_pcm_devinfo * pdevinfo
int devleft[SOUND_MIXER_NRDEVICES]
struct hdaa_widget * childwidget
struct hdaa_widget * widget
int devmute[SOUND_MIXER_NRDEVICES]
int devright[SOUND_MIXER_NRDEVICES]
struct hdaa_devinfo * devinfo
uint32_t supp_stream_formats
uint32_t supp_pcm_size_rate
struct hdaa_pcm_devinfo * pdevinfo
uint32_t supp_stream_formats
uint32_t supp_pcm_size_rate
struct hdaa_audio_ctl * ctl
struct hdaa_pcm_devinfo * devs
struct hdaa_audio_as * as
struct hdaa_widget * widget
int minamp[SOUND_MIXER_NRDEVICES]
int maxamp[SOUND_MIXER_NRDEVICES]
struct hdaa_devinfo * devinfo
u_char left[SOUND_MIXER_NRDEVICES]
u_char right[SOUND_MIXER_NRDEVICES]