diff options
author | Jarkko Nikula <jarkko.nikula@linux.intel.com> | 2014-06-06 04:10:11 -0400 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2014-06-21 06:39:26 -0400 |
commit | 4131eceb4a5e471f5a866ee10e680f0081376e3b (patch) | |
tree | 3743644e9b373c339fe6f3af24c5f141e59b3b45 | |
parent | 7171511eaec5bf23fb06078f59784a3a0626b38f (diff) |
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: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
-rw-r--r-- | sound/soc/intel/sst-baytrail-ipc.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/sound/soc/intel/sst-baytrail-ipc.c b/sound/soc/intel/sst-baytrail-ipc.c index d207b22ea330..67673a2c0f41 100644 --- a/sound/soc/intel/sst-baytrail-ipc.c +++ b/sound/soc/intel/sst-baytrail-ipc.c | |||
@@ -122,6 +122,26 @@ struct sst_byt_tstamp { | |||
122 | u32 channel_peak[8]; | 122 | u32 channel_peak[8]; |
123 | } __packed; | 123 | } __packed; |
124 | 124 | ||
125 | struct sst_byt_fw_version { | ||
126 | u8 build; | ||
127 | u8 minor; | ||
128 | u8 major; | ||
129 | u8 type; | ||
130 | } __packed; | ||
131 | |||
132 | struct sst_byt_fw_build_info { | ||
133 | u8 date[16]; | ||
134 | u8 time[16]; | ||
135 | } __packed; | ||
136 | |||
137 | struct sst_byt_fw_init { | ||
138 | struct sst_byt_fw_version fw_version; | ||
139 | struct sst_byt_fw_build_info build_info; | ||
140 | u16 result; | ||
141 | u8 module_id; | ||
142 | u8 debug_info; | ||
143 | } __packed; | ||
144 | |||
125 | /* driver internal IPC message structure */ | 145 | /* driver internal IPC message structure */ |
126 | struct ipc_message { | 146 | struct ipc_message { |
127 | struct list_head list; | 147 | struct list_head list; |
@@ -868,6 +888,7 @@ int sst_byt_dsp_init(struct device *dev, struct sst_pdata *pdata) | |||
868 | { | 888 | { |
869 | struct sst_byt *byt; | 889 | struct sst_byt *byt; |
870 | struct sst_fw *byt_sst_fw; | 890 | struct sst_fw *byt_sst_fw; |
891 | struct sst_byt_fw_init init; | ||
871 | int err; | 892 | int err; |
872 | 893 | ||
873 | dev_dbg(dev, "initialising Byt DSP IPC\n"); | 894 | dev_dbg(dev, "initialising Byt DSP IPC\n"); |
@@ -929,6 +950,15 @@ int sst_byt_dsp_init(struct device *dev, struct sst_pdata *pdata) | |||
929 | goto boot_err; | 950 | goto boot_err; |
930 | } | 951 | } |
931 | 952 | ||
953 | /* show firmware information */ | ||
954 | sst_dsp_inbox_read(byt->dsp, &init, sizeof(init)); | ||
955 | dev_info(byt->dev, "FW version: %02x.%02x.%02x.%02x\n", | ||
956 | init.fw_version.major, init.fw_version.minor, | ||
957 | init.fw_version.build, init.fw_version.type); | ||
958 | dev_info(byt->dev, "Build type: %x\n", init.fw_version.type); | ||
959 | dev_info(byt->dev, "Build date: %s %s\n", | ||
960 | init.build_info.date, init.build_info.time); | ||
961 | |||
932 | pdata->dsp = byt; | 962 | pdata->dsp = byt; |
933 | byt->fw = byt_sst_fw; | 963 | byt->fw = byt_sst_fw; |
934 | 964 | ||