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

Commit 4131eceb authored by Jarkko Nikula's avatar Jarkko Nikula Committed by Mark Brown
Browse files

ASoC: Intel: Show Baytrail SST DSP firmware details during init



DSP initialization complete message IPC_IA_FW_INIT_CMPLT is a large message
carrying firmware details in mailbox. Read and show those details during
init in order to be able to get that information to QA reports.

Signed-off-by: default avatarJarkko Nikula <jarkko.nikula@linux.intel.com>
Signed-off-by: default avatarMark Brown <broonie@linaro.org>
parent 7171511e
Loading
Loading
Loading
Loading
+30 −0
Original line number Diff line number Diff line
@@ -122,6 +122,26 @@ struct sst_byt_tstamp {
	u32 channel_peak[8];
} __packed;

struct sst_byt_fw_version {
	u8 build;
	u8 minor;
	u8 major;
	u8 type;
} __packed;

struct sst_byt_fw_build_info {
	u8 date[16];
	u8 time[16];
} __packed;

struct sst_byt_fw_init {
	struct sst_byt_fw_version fw_version;
	struct sst_byt_fw_build_info build_info;
	u16 result;
	u8 module_id;
	u8 debug_info;
} __packed;

/* driver internal IPC message structure */
struct ipc_message {
	struct list_head list;
@@ -868,6 +888,7 @@ int sst_byt_dsp_init(struct device *dev, struct sst_pdata *pdata)
{
	struct sst_byt *byt;
	struct sst_fw *byt_sst_fw;
	struct sst_byt_fw_init init;
	int err;

	dev_dbg(dev, "initialising Byt DSP IPC\n");
@@ -929,6 +950,15 @@ int sst_byt_dsp_init(struct device *dev, struct sst_pdata *pdata)
		goto boot_err;
	}

	/* show firmware information */
	sst_dsp_inbox_read(byt->dsp, &init, sizeof(init));
	dev_info(byt->dev, "FW version: %02x.%02x.%02x.%02x\n",
		 init.fw_version.major, init.fw_version.minor,
		 init.fw_version.build, init.fw_version.type);
	dev_info(byt->dev, "Build type: %x\n", init.fw_version.type);
	dev_info(byt->dev, "Build date: %s %s\n",
		 init.build_info.date, init.build_info.time);

	pdata->dsp = byt;
	byt->fw = byt_sst_fw;