Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8732881c59 |
@@ -31,6 +31,18 @@
|
|||||||
|
|
||||||
static DEFINE_MUTEX(factory_lock);
|
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.
|
* It is only used for temporary storage.
|
||||||
* Every time get the factory, it will read from the
|
* 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);
|
bes_devel("requesting firmware-class %s\n", path);
|
||||||
|
|
||||||
ret = request_firmware(&fw, path, NULL);
|
ret = request_firmware(&fw, path, bes2600_factory_dev);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
bes_devel("BES2600: request_firmware(%s) failed: %d\n", path, ret);
|
bes_devel("BES2600: request_firmware(%s) failed: %d\n", path, ret);
|
||||||
return -1;
|
return -1;
|
||||||
|
|||||||
@@ -199,6 +199,9 @@ enum factory_cali_status {
|
|||||||
/* just calibrate 11n, other protocols are automatically mapped */
|
/* just calibrate 11n, other protocols are automatically mapped */
|
||||||
#define WIFI_RF_11N_MODE 0x15
|
#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*/
|
/* read wifi & bt factory cali value*/
|
||||||
u8* bes2600_get_factory_cali_data(u8 *file_buffer, u32 *data_len, char *path);
|
u8* bes2600_get_factory_cali_data(u8 *file_buffer, u32 *data_len, char *path);
|
||||||
void factory_little_endian_cvrt(u8 *data);
|
void factory_little_endian_cvrt(u8 *data);
|
||||||
|
|||||||
@@ -30,6 +30,7 @@
|
|||||||
#include "bes2600.h"
|
#include "bes2600.h"
|
||||||
#include "sbus.h"
|
#include "sbus.h"
|
||||||
#include "bes2600_plat.h"
|
#include "bes2600_plat.h"
|
||||||
|
#include "bes2600_factory.h"
|
||||||
#include "hwio.h"
|
#include "hwio.h"
|
||||||
#include "bes_chardev.h"
|
#include "bes_chardev.h"
|
||||||
#include "bes_log.h"
|
#include "bes_log.h"
|
||||||
@@ -1834,6 +1835,9 @@ static int bes2600_sdio_probe(struct sdio_func *func,
|
|||||||
if (ret)
|
if (ret)
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
|
/* wire struct device into factory.c for request_firmware() context */
|
||||||
|
bes2600_factory_set_dev(dev);
|
||||||
|
|
||||||
self->pdata = bes2600_get_platform_data();
|
self->pdata = bes2600_get_platform_data();
|
||||||
self->func = func;
|
self->func = func;
|
||||||
self->dev = &func->dev;
|
self->dev = &func->dev;
|
||||||
|
|||||||
Reference in New Issue
Block a user