Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b601b587 authored by Mark Brown's avatar Mark Brown
Browse files

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
Loading
Loading
Loading
Loading
+721 −438

File changed.

Preview size limit exceeded, changes collapsed.

+3 −3
Original line number Diff line number Diff line
@@ -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,
+39 −5
Original line number Diff line number Diff line
@@ -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;
@@ -118,6 +151,7 @@ struct wmfw_coeff_item {
#define WMFW_ADSP2 2

#define WMFW_ABSOLUTE         0xf0
#define WMFW_ALGORITHM_DATA   0xf2
#define WMFW_NAME_TEXT        0xfe
#define WMFW_INFO_TEXT        0xff