Files
pmaports-rtwo/device/downstream/linux-samsung-a50/scsc_use_path_from_kconfig.patch
T

31 lines
1.1 KiB
Diff

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 <linux/fs.h>
#include <linux/firmware.h>
+#include <linux/string.h>
#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