diff options
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/nhlt.c | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/src/lib/nhlt.c b/src/lib/nhlt.c index 80b3f2e1d3..90a6cd9eef 100644 --- a/src/lib/nhlt.c +++ b/src/lib/nhlt.c @@ -149,9 +149,8 @@ int nhlt_endpoint_add_formats(struct nhlt_endpoint *endp, for (i = 0; i < num_formats; i++) { struct nhlt_format *fmt; - struct cbfsf file; - struct region_device settings; void *settings_data; + size_t size; const struct nhlt_format_config *cfg = &formats[i]; fmt = nhlt_add_format(endp, cfg->num_channels, @@ -167,23 +166,16 @@ int nhlt_endpoint_add_formats(struct nhlt_endpoint *endp, continue; /* Find the settings file in CBFS and place it in format. */ - if (cbfs_boot_locate(&file, cfg->settings_file, NULL)) + settings_data = cbfs_map(cfg->settings_file, &size); + if (!settings_data) return -1; - cbfs_file_data(&settings, &file); - - settings_data = rdev_mmap_full(&settings); - - if (settings_data == NULL) - return -1; - - if (nhlt_format_append_config(fmt, settings_data, - region_device_sz(&settings))) { - rdev_munmap(&settings, settings_data); + if (nhlt_format_append_config(fmt, settings_data, size)) { + cbfs_unmap(settings_data); return -1; } - rdev_munmap(&settings, settings_data); + cbfs_unmap(settings_data); } return 0; |