Merge branch 'topic/adsp' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-arizona
This commit is contained in:
commit
b601b58785
3 changed files with 782 additions and 465 deletions
File diff suppressed because it is too large
Load diff
|
@ -30,7 +30,6 @@ struct wm_adsp_alg_region {
|
|||
unsigned int alg;
|
||||
int type;
|
||||
unsigned int base;
|
||||
size_t len;
|
||||
};
|
||||
|
||||
struct wm_adsp {
|
||||
|
@ -54,6 +53,7 @@ struct wm_adsp {
|
|||
int num_mems;
|
||||
|
||||
int fw;
|
||||
int fw_ver;
|
||||
bool running;
|
||||
|
||||
struct regulator *dvfs;
|
||||
|
@ -78,8 +78,8 @@ struct wm_adsp {
|
|||
extern const struct snd_kcontrol_new wm_adsp1_fw_controls[];
|
||||
extern const struct snd_kcontrol_new wm_adsp2_fw_controls[];
|
||||
|
||||
int wm_adsp1_init(struct wm_adsp *adsp);
|
||||
int wm_adsp2_init(struct wm_adsp *adsp, bool dvfs);
|
||||
int wm_adsp1_init(struct wm_adsp *dsp);
|
||||
int wm_adsp2_init(struct wm_adsp *dsp, bool dvfs);
|
||||
int wm_adsp1_event(struct snd_soc_dapm_widget *w,
|
||||
struct snd_kcontrol *kcontrol, int event);
|
||||
int wm_adsp2_early_event(struct snd_soc_dapm_widget *w,
|
||||
|
|
|
@ -15,6 +15,17 @@
|
|||
|
||||
#include <linux/types.h>
|
||||
|
||||
#define WMFW_MAX_ALG_NAME 256
|
||||
#define WMFW_MAX_ALG_DESCR_NAME 256
|
||||
|
||||
#define WMFW_MAX_COEFF_NAME 256
|
||||
#define WMFW_MAX_COEFF_DESCR_NAME 256
|
||||
|
||||
#define WMFW_CTL_FLAG_SYS 0x8000
|
||||
#define WMFW_CTL_FLAG_VOLATILE 0x0004
|
||||
#define WMFW_CTL_FLAG_WRITEABLE 0x0002
|
||||
#define WMFW_CTL_FLAG_READABLE 0x0001
|
||||
|
||||
struct wmfw_header {
|
||||
char magic[4];
|
||||
__le32 len;
|
||||
|
@ -61,7 +72,7 @@ struct wmfw_adsp1_id_hdr {
|
|||
struct wmfw_id_hdr fw;
|
||||
__be32 zm;
|
||||
__be32 dm;
|
||||
__be32 algs;
|
||||
__be32 n_algs;
|
||||
} __packed;
|
||||
|
||||
struct wmfw_adsp2_id_hdr {
|
||||
|
@ -69,7 +80,7 @@ struct wmfw_adsp2_id_hdr {
|
|||
__be32 zm;
|
||||
__be32 xm;
|
||||
__be32 ym;
|
||||
__be32 algs;
|
||||
__be32 n_algs;
|
||||
} __packed;
|
||||
|
||||
struct wmfw_alg_hdr {
|
||||
|
@ -90,6 +101,28 @@ struct wmfw_adsp2_alg_hdr {
|
|||
__be32 ym;
|
||||
} __packed;
|
||||
|
||||
struct wmfw_adsp_alg_data {
|
||||
__le32 id;
|
||||
u8 name[WMFW_MAX_ALG_NAME];
|
||||
u8 descr[WMFW_MAX_ALG_DESCR_NAME];
|
||||
__le32 ncoeff;
|
||||
u8 data[];
|
||||
} __packed;
|
||||
|
||||
struct wmfw_adsp_coeff_data {
|
||||
struct {
|
||||
__le16 offset;
|
||||
__le16 type;
|
||||
__le32 size;
|
||||
} hdr;
|
||||
u8 name[WMFW_MAX_COEFF_NAME];
|
||||
u8 descr[WMFW_MAX_COEFF_DESCR_NAME];
|
||||
__le16 ctl_type;
|
||||
__le16 flags;
|
||||
__le32 len;
|
||||
u8 data[];
|
||||
} __packed;
|
||||
|
||||
struct wmfw_coeff_hdr {
|
||||
u8 magic[4];
|
||||
__le32 len;
|
||||
|
@ -117,9 +150,10 @@ struct wmfw_coeff_item {
|
|||
#define WMFW_ADSP1 1
|
||||
#define WMFW_ADSP2 2
|
||||
|
||||
#define WMFW_ABSOLUTE 0xf0
|
||||
#define WMFW_NAME_TEXT 0xfe
|
||||
#define WMFW_INFO_TEXT 0xff
|
||||
#define WMFW_ABSOLUTE 0xf0
|
||||
#define WMFW_ALGORITHM_DATA 0xf2
|
||||
#define WMFW_NAME_TEXT 0xfe
|
||||
#define WMFW_INFO_TEXT 0xff
|
||||
|
||||
#define WMFW_ADSP1_PM 2
|
||||
#define WMFW_ADSP1_DM 3
|
||||
|
|
Loading…
Reference in a new issue