diff options
author | Cezary Rojewski <cezary.rojewski@intel.com> | 2024-02-20 12:50:29 +0100 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2024-02-20 13:19:54 +0000 |
commit | 7576e2f4d99df6efabb77f52b9539fd345233aee (patch) | |
tree | b921c664f119dcffc410c1dcc5a12bb0cce3bfc5 /sound/soc/intel/avs/avs.h | |
parent | a8f858d98f016a0209edaf1518fd45a5e5c62d47 (diff) |
ASoC: Intel: avs: Abstract IPC handling
Servicing IPCs on CNL platforms and onward differs from the existing
one. To make room for these, enrich platform descriptor with fields
representing crucial IPC registers and utilize them throughout the code.
While cleaning up device descriptors, reduce the number of code lines by
assigning 'min_fw_version' within a single line.
Reviewed-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
Link: https://msgid.link/r/20240220115035.770402-5-cezary.rojewski@intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/intel/avs/avs.h')
-rw-r--r-- | sound/soc/intel/avs/avs.h | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/sound/soc/intel/avs/avs.h b/sound/soc/intel/avs/avs.h index cda3cb7db22a..6d44981c5c61 100644 --- a/sound/soc/intel/avs/avs.h +++ b/sound/soc/intel/avs/avs.h @@ -73,6 +73,23 @@ extern const struct avs_dsp_ops avs_apl_dsp_ops; #define avs_platattr_test(adev, attr) \ ((adev)->spec->attributes & AVS_PLATATTR_##attr) +struct avs_sram_spec { + const u32 base_offset; + const u32 window_size; + const u32 rom_status_offset; +}; + +struct avs_hipc_spec { + const u32 req_offset; + const u32 req_ext_offset; + const u32 req_busy_mask; + const u32 ack_offset; + const u32 ack_done_mask; + const u32 rsp_offset; + const u32 rsp_busy_mask; + const u32 ctl_offset; +}; + /* Platform specific descriptor */ struct avs_spec { const char *name; @@ -82,9 +99,8 @@ struct avs_spec { const u32 core_init_mask; /* used during DSP boot */ const u64 attributes; /* bitmask of AVS_PLATATTR_* */ - const u32 sram_base_offset; - const u32 sram_window_size; - const u32 rom_status; + const struct avs_sram_spec *sram; + const struct avs_hipc_spec *hipc; }; struct avs_fw_entry { |