Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8732881c59 | |||
| 82ba594a44 |
+1
-1
@@ -65,7 +65,7 @@ BES2600_DRV_VERSION := bes2600_0.3.5_2024.0116
|
||||
|
||||
ifeq ($(CONFIG_BES2600_CALIB_FROM_LINUX),y)
|
||||
FACTORY_CRC_CHECK ?= n
|
||||
STANDARD_FACTORY_EFUSE_FLAG ?= y
|
||||
STANDARD_FACTORY_EFUSE_FLAG ?= n
|
||||
FACTORY_PATH ?= bes2600/bes2600_factory.txt
|
||||
endif
|
||||
|
||||
|
||||
@@ -31,6 +31,18 @@
|
||||
|
||||
static DEFINE_MUTEX(factory_lock);
|
||||
|
||||
/*
|
||||
* struct device * for request_firmware() context. Set once at SDIO
|
||||
* probe via bes2600_factory_set_dev(). NULL is tolerated (falls back
|
||||
* to the udev-less firmware-class path) but loses per-device logging.
|
||||
*/
|
||||
static struct device *bes2600_factory_dev;
|
||||
|
||||
void bes2600_factory_set_dev(struct device *dev)
|
||||
{
|
||||
bes2600_factory_dev = dev;
|
||||
}
|
||||
|
||||
/*
|
||||
* It is only used for temporary storage.
|
||||
* Every time get the factory, it will read from the
|
||||
@@ -148,7 +160,7 @@ static int factory_section_read_file(char *path, void *buffer)
|
||||
|
||||
bes_devel("requesting firmware-class %s\n", path);
|
||||
|
||||
ret = request_firmware(&fw, path, NULL);
|
||||
ret = request_firmware(&fw, path, bes2600_factory_dev);
|
||||
if (ret) {
|
||||
bes_devel("BES2600: request_firmware(%s) failed: %d\n", path, ret);
|
||||
return -1;
|
||||
|
||||
@@ -199,6 +199,9 @@ enum factory_cali_status {
|
||||
/* just calibrate 11n, other protocols are automatically mapped */
|
||||
#define WIFI_RF_11N_MODE 0x15
|
||||
|
||||
/* set the struct device * used for request_firmware() context */
|
||||
void bes2600_factory_set_dev(struct device *dev);
|
||||
|
||||
/* read wifi & bt factory cali value*/
|
||||
u8* bes2600_get_factory_cali_data(u8 *file_buffer, u32 *data_len, char *path);
|
||||
void factory_little_endian_cvrt(u8 *data);
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
#include "bes2600.h"
|
||||
#include "sbus.h"
|
||||
#include "bes2600_plat.h"
|
||||
#include "bes2600_factory.h"
|
||||
#include "hwio.h"
|
||||
#include "bes_chardev.h"
|
||||
#include "bes_log.h"
|
||||
@@ -1834,6 +1835,9 @@ static int bes2600_sdio_probe(struct sdio_func *func,
|
||||
if (ret)
|
||||
goto err;
|
||||
|
||||
/* wire struct device into factory.c for request_firmware() context */
|
||||
bes2600_factory_set_dev(dev);
|
||||
|
||||
self->pdata = bes2600_get_platform_data();
|
||||
self->func = func;
|
||||
self->dev = &func->dev;
|
||||
|
||||
@@ -2236,7 +2236,5 @@ int wsm_cpu_usage_cmd(struct bes2600_common *hw_priv);
|
||||
|
||||
int wsm_wifi_status_cmd(struct bes2600_common *hw_priv, uint32_t status);
|
||||
|
||||
#if defined(STANDARD_FACTORY_EFUSE_FLAG)
|
||||
int wsm_save_factory_txt_to_mcu(struct bes2600_common *hw_priv, const u8 *data, int if_id, enum bes2600_rf_cmd_type cmd_type);
|
||||
#endif
|
||||
#endif /* BES2600_HWIO_H_INCLUDED */
|
||||
|
||||
Reference in New Issue
Block a user