Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8732881c59 |
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user