Commit b601b587 authored by Mark Brown's avatar Mark Brown

Merge branch 'topic/adsp' of...

Merge branch 'topic/adsp' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-arizona
parents c38a1ffb 10337b07
This diff is collapsed.
...@@ -30,7 +30,6 @@ struct wm_adsp_alg_region { ...@@ -30,7 +30,6 @@ struct wm_adsp_alg_region {
unsigned int alg; unsigned int alg;
int type; int type;
unsigned int base; unsigned int base;
size_t len;
}; };
struct wm_adsp { struct wm_adsp {
...@@ -54,6 +53,7 @@ struct wm_adsp { ...@@ -54,6 +53,7 @@ struct wm_adsp {
int num_mems; int num_mems;
int fw; int fw;
int fw_ver;
bool running; bool running;
struct regulator *dvfs; struct regulator *dvfs;
...@@ -78,8 +78,8 @@ struct wm_adsp { ...@@ -78,8 +78,8 @@ struct wm_adsp {
extern const struct snd_kcontrol_new wm_adsp1_fw_controls[]; extern const struct snd_kcontrol_new wm_adsp1_fw_controls[];
extern const struct snd_kcontrol_new wm_adsp2_fw_controls[]; extern const struct snd_kcontrol_new wm_adsp2_fw_controls[];
int wm_adsp1_init(struct wm_adsp *adsp); int wm_adsp1_init(struct wm_adsp *dsp);
int wm_adsp2_init(struct wm_adsp *adsp, bool dvfs); int wm_adsp2_init(struct wm_adsp *dsp, bool dvfs);
int wm_adsp1_event(struct snd_soc_dapm_widget *w, int wm_adsp1_event(struct snd_soc_dapm_widget *w,
struct snd_kcontrol *kcontrol, int event); struct snd_kcontrol *kcontrol, int event);
int wm_adsp2_early_event(struct snd_soc_dapm_widget *w, int wm_adsp2_early_event(struct snd_soc_dapm_widget *w,
......
...@@ -15,6 +15,17 @@ ...@@ -15,6 +15,17 @@
#include <linux/types.h> #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 { struct wmfw_header {
char magic[4]; char magic[4];
__le32 len; __le32 len;
...@@ -61,7 +72,7 @@ struct wmfw_adsp1_id_hdr { ...@@ -61,7 +72,7 @@ struct wmfw_adsp1_id_hdr {
struct wmfw_id_hdr fw; struct wmfw_id_hdr fw;
__be32 zm; __be32 zm;
__be32 dm; __be32 dm;
__be32 algs; __be32 n_algs;
} __packed; } __packed;
struct wmfw_adsp2_id_hdr { struct wmfw_adsp2_id_hdr {
...@@ -69,7 +80,7 @@ struct wmfw_adsp2_id_hdr { ...@@ -69,7 +80,7 @@ struct wmfw_adsp2_id_hdr {
__be32 zm; __be32 zm;
__be32 xm; __be32 xm;
__be32 ym; __be32 ym;
__be32 algs; __be32 n_algs;
} __packed; } __packed;
struct wmfw_alg_hdr { struct wmfw_alg_hdr {
...@@ -90,6 +101,28 @@ struct wmfw_adsp2_alg_hdr { ...@@ -90,6 +101,28 @@ struct wmfw_adsp2_alg_hdr {
__be32 ym; __be32 ym;
} __packed; } __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 { struct wmfw_coeff_hdr {
u8 magic[4]; u8 magic[4];
__le32 len; __le32 len;
...@@ -117,9 +150,10 @@ struct wmfw_coeff_item { ...@@ -117,9 +150,10 @@ struct wmfw_coeff_item {
#define WMFW_ADSP1 1 #define WMFW_ADSP1 1
#define WMFW_ADSP2 2 #define WMFW_ADSP2 2
#define WMFW_ABSOLUTE 0xf0 #define WMFW_ABSOLUTE 0xf0
#define WMFW_NAME_TEXT 0xfe #define WMFW_ALGORITHM_DATA 0xf2
#define WMFW_INFO_TEXT 0xff #define WMFW_NAME_TEXT 0xfe
#define WMFW_INFO_TEXT 0xff
#define WMFW_ADSP1_PM 2 #define WMFW_ADSP1_PM 2
#define WMFW_ADSP1_DM 3 #define WMFW_ADSP1_DM 3
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment