Matt Delco has uploaded this change for review. ( https://review.coreboot.org/27612
Change subject: lib/nhlt: add missing size field ......................................................................
lib/nhlt: add missing size field
coreboot doesn't provide a field that's required by some drivers. This doc is apparently offline:
https://01.org/blogs/2016/intel-smart-sound-technology-audio-dsp
but can currently be found at:
https://docplayer.net/36738126-Intel-smart-sound-technology-audio- dsp-non-hd-audio-acpi-high-level-design.html
Figure 2-1 (page 9) shows a SPECIFIC_CONFIG struct that should follow the endpoint descriptors. The struct is described in section 2.2 (page 10). It's sufficient to just provide the "CapabilitiesSize" field that's set to zero (meaning no capabilities follow).
Change-Id: Ic0480c8123225a49c23b9e6af44ee20072c57a3f Signed-off-by: Matt Delco delco@chromium.org --- M src/lib/nhlt.c 1 file changed, 2 insertions(+), 1 deletion(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/12/27612/1
diff --git a/src/lib/nhlt.c b/src/lib/nhlt.c index f6135c7..876d97d 100644 --- a/src/lib/nhlt.c +++ b/src/lib/nhlt.c @@ -276,7 +276,7 @@
size_t nhlt_current_size(struct nhlt *nhlt) { - return calc_size(nhlt) + sizeof(acpi_header_t); + return calc_size(nhlt) + sizeof(acpi_header_t) + sizeof(uint32_t); }
static void nhlt_free_resources(struct nhlt *nhlt) @@ -387,6 +387,7 @@
for (i = 0; i < nhlt->num_endpoints; i++) serialize_endpoint(&nhlt->endpoints[i], cur); + ser32(cur, 0); /* size of "Capabilities" buffer that follows (i.e., none) */ }
uintptr_t nhlt_serialize(struct nhlt *nhlt, uintptr_t acpi_addr)