37 |
void (*set_rate_val)(akm4xxx_t *ak, unsigned int rate); |
void (*set_rate_val)(akm4xxx_t *ak, unsigned int rate); |
38 |
}; |
}; |
39 |
|
|
40 |
|
#define AK4XXX_IMAGE_SIZE (AK4XXX_MAX_CHIPS * 16) /* 64 bytes */ |
41 |
|
|
42 |
struct snd_akm4xxx { |
struct snd_akm4xxx { |
43 |
snd_card_t *card; |
snd_card_t *card; |
44 |
unsigned int num_adcs; /* AK4524 or AK4528 ADCs */ |
unsigned int num_adcs; /* AK4524 or AK4528 ADCs */ |
45 |
unsigned int num_dacs; /* AK4524 or AK4528 DACs */ |
unsigned int num_dacs; /* AK4524 or AK4528 DACs */ |
46 |
unsigned char images[AK4XXX_MAX_CHIPS][16]; /* saved register image */ |
unsigned char images[AK4XXX_IMAGE_SIZE]; /* saved register image */ |
47 |
unsigned char ipga_gain[AK4XXX_MAX_CHIPS][2]; /* saved register image for IPGA (AK4528) */ |
unsigned char ipga_gain[AK4XXX_MAX_CHIPS][2]; /* saved register image for IPGA (AK4528) */ |
48 |
unsigned long private_value[AK4XXX_MAX_CHIPS]; /* helper for driver */ |
unsigned long private_value[AK4XXX_MAX_CHIPS]; /* helper for driver */ |
49 |
void *private_data[AK4XXX_MAX_CHIPS]; /* helper for driver */ |
void *private_data[AK4XXX_MAX_CHIPS]; /* helper for driver */ |
60 |
void snd_akm4xxx_init(akm4xxx_t *ak); |
void snd_akm4xxx_init(akm4xxx_t *ak); |
61 |
int snd_akm4xxx_build_controls(akm4xxx_t *ak); |
int snd_akm4xxx_build_controls(akm4xxx_t *ak); |
62 |
|
|
63 |
|
#define snd_akm4xxx_get(ak,chip,reg) (ak)->images[(chip) * 16 + (reg)] |
64 |
|
#define snd_akm4xxx_set(ak,chip,reg,val) ((ak)->images[(chip) * 16 + (reg)] = (val)) |
65 |
|
#define snd_akm4xxx_get_ipga(ak,chip,reg) (ak)->ipga_gain[chip][(reg)-4] |
66 |
|
#define snd_akm4xxx_set_ipga(ak,chip,reg,val) ((ak)->ipga_gain[chip][(reg)-4] = (val)) |
67 |
|
|
68 |
#endif /* __SOUND_AK4XXX_ADDA_H */ |
#endif /* __SOUND_AK4XXX_ADDA_H */ |