diff --git a/drivers/net/wireless/scsc/reg_info.c b/drivers/net/wireless/scsc/reg_info.c index c6b2626d3..5736b02a1 100644 --- a/drivers/net/wireless/scsc/reg_info.c +++ b/drivers/net/wireless/scsc/reg_info.c @@ -8,6 +8,7 @@ #include "debug.h" #include #include +#include #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 4, 0)) MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver); @@ -76,7 +77,16 @@ int firmware_read(const struct firmware *firm, void *dest, size_t size, int *off int slsi_read_regulatory(struct slsi_dev *sdev) { #if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 4, 0)) - char *reg_file_t = "/vendor/etc/wifi/slsi_reg_database.bin"; + const char *FIRMWARE_BLOB_PATH = "/slsi_reg_database.bin"; + + // CONFIC_SCSC_CORE_FW_LOCATION must be set! + char *reg_file_t = kmalloc( + strlen(CONFIG_SCSC_CORE_FW_LOCATION) + strlen(FIRMWARE_BLOB_PATH) + 1, + GFP_KERNEL + ); + strcpy(reg_file_t, CONFIG_SCSC_CORE_FW_LOCATION); + strcat(reg_file_t, FIRMWARE_BLOB_PATH); + #else char *reg_file_t = "../etc/wifi/slsi_reg_database.bin"; #endif