mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-10 06:09:23 -04:00
qcacld-3.0: Refactor BMI members from ol_softc
Group BMI members and access bmi info from hif instead of dereferencing hif context. Change-Id: I9108ec1b719ec3e62dd19cc3341cbc1c868bf5de CRs-Fixed: 967765
This commit is contained in:
parent
c4b2863aa8
commit
588ad2bc46
4 changed files with 117 additions and 91 deletions
|
|
@ -57,26 +57,30 @@ bmi_command_test(uint32_t command, uint32_t address, uint8_t *data,
|
|||
|
||||
CDF_STATUS bmi_init(struct ol_softc *scn)
|
||||
{
|
||||
struct bmi_info *info;
|
||||
|
||||
if (!scn) {
|
||||
BMI_ERR("Invalid scn Context");
|
||||
bmi_assert(0);
|
||||
return CDF_STATUS_NOT_INITIALIZED;
|
||||
}
|
||||
scn->bmi_done = false;
|
||||
|
||||
if (!scn->bmi_cmd_buff) {
|
||||
scn->bmi_cmd_buff = cdf_os_mem_alloc_consistent(scn->cdf_dev,
|
||||
MAX_BMI_CMDBUF_SZ, &scn->bmi_cmd_da, 0);
|
||||
if (!scn->bmi_cmd_buff) {
|
||||
info = hif_get_bmi_ctx(scn);
|
||||
info->bmi_done = false;
|
||||
|
||||
if (!info->bmi_cmd_buff) {
|
||||
info->bmi_cmd_buff = cdf_os_mem_alloc_consistent(scn->cdf_dev,
|
||||
MAX_BMI_CMDBUF_SZ, &info->bmi_cmd_da, 0);
|
||||
if (!info->bmi_cmd_buff) {
|
||||
BMI_ERR("No Memory for BMI Command");
|
||||
return CDF_STATUS_E_NOMEM;
|
||||
}
|
||||
}
|
||||
|
||||
if (!scn->bmi_rsp_buff) {
|
||||
scn->bmi_rsp_buff = cdf_os_mem_alloc_consistent(scn->cdf_dev,
|
||||
MAX_BMI_CMDBUF_SZ, &scn->bmi_rsp_da, 0);
|
||||
if (!scn->bmi_rsp_buff) {
|
||||
if (!info->bmi_rsp_buff) {
|
||||
info->bmi_rsp_buff = cdf_os_mem_alloc_consistent(scn->cdf_dev,
|
||||
MAX_BMI_CMDBUF_SZ, &info->bmi_rsp_da, 0);
|
||||
if (!info->bmi_rsp_buff) {
|
||||
BMI_ERR("No Memory for BMI Response");
|
||||
goto end;
|
||||
}
|
||||
|
|
@ -84,25 +88,27 @@ CDF_STATUS bmi_init(struct ol_softc *scn)
|
|||
return CDF_STATUS_SUCCESS;
|
||||
end:
|
||||
cdf_os_mem_free_consistent(scn->cdf_dev, MAX_BMI_CMDBUF_SZ,
|
||||
scn->bmi_cmd_buff, scn->bmi_cmd_da, 0);
|
||||
scn->bmi_cmd_buff = NULL;
|
||||
info->bmi_cmd_buff, info->bmi_cmd_da, 0);
|
||||
info->bmi_cmd_buff = NULL;
|
||||
return CDF_STATUS_E_NOMEM;
|
||||
}
|
||||
|
||||
void bmi_cleanup(struct ol_softc *scn)
|
||||
{
|
||||
if (scn->bmi_cmd_buff) {
|
||||
struct bmi_info *info = hif_get_bmi_ctx(scn);
|
||||
|
||||
if (info->bmi_cmd_buff) {
|
||||
cdf_os_mem_free_consistent(scn->cdf_dev, MAX_BMI_CMDBUF_SZ,
|
||||
scn->bmi_cmd_buff, scn->bmi_cmd_da, 0);
|
||||
scn->bmi_cmd_buff = NULL;
|
||||
scn->bmi_cmd_da = 0;
|
||||
info->bmi_cmd_buff, info->bmi_cmd_da, 0);
|
||||
info->bmi_cmd_buff = NULL;
|
||||
info->bmi_cmd_da = 0;
|
||||
}
|
||||
|
||||
if (scn->bmi_rsp_buff) {
|
||||
if (info->bmi_rsp_buff) {
|
||||
cdf_os_mem_free_consistent(scn->cdf_dev, MAX_BMI_CMDBUF_SZ,
|
||||
scn->bmi_rsp_buff, scn->bmi_rsp_da, 0);
|
||||
scn->bmi_rsp_buff = NULL;
|
||||
scn->bmi_rsp_da = 0;
|
||||
info->bmi_rsp_buff, info->bmi_rsp_da, 0);
|
||||
info->bmi_rsp_buff = NULL;
|
||||
info->bmi_rsp_da = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -126,11 +132,12 @@ bmi_get_target_info(struct bmi_target_info *targ_info,
|
|||
struct ol_softc *scn)
|
||||
{
|
||||
int status = 0;
|
||||
uint8_t *bmi_cmd_buff = scn->bmi_cmd_buff;
|
||||
uint8_t *bmi_rsp_buff = scn->bmi_rsp_buff;
|
||||
struct bmi_info *info = hif_get_bmi_ctx(scn);
|
||||
uint8_t *bmi_cmd_buff = info->bmi_cmd_buff;
|
||||
uint8_t *bmi_rsp_buff = info->bmi_rsp_buff;
|
||||
uint32_t cid, length;
|
||||
|
||||
if (scn->bmi_done) {
|
||||
if (info->bmi_done) {
|
||||
BMI_ERR("BMI Phase is Already Done");
|
||||
return CDF_STATUS_E_PERM;
|
||||
}
|
||||
|
|
@ -208,14 +215,15 @@ bmi_read_soc_register(uint32_t address, uint32_t *param, struct ol_softc *scn)
|
|||
uint32_t cid;
|
||||
int status;
|
||||
uint32_t offset, param_len;
|
||||
uint8_t *bmi_cmd_buff = scn->bmi_cmd_buff;
|
||||
uint8_t *bmi_rsp_buff = scn->bmi_rsp_buff;
|
||||
struct bmi_info *info = hif_get_bmi_ctx(scn);
|
||||
uint8_t *bmi_cmd_buff = info->bmi_cmd_buff;
|
||||
uint8_t *bmi_rsp_buff = info->bmi_rsp_buff;
|
||||
|
||||
bmi_assert(BMI_COMMAND_FITS(sizeof(cid) + sizeof(address)));
|
||||
cdf_mem_set(bmi_cmd_buff, 0, sizeof(cid) + sizeof(address));
|
||||
cdf_mem_set(bmi_rsp_buff, 0, sizeof(cid) + sizeof(address));
|
||||
|
||||
if (scn->bmi_done) {
|
||||
if (info->bmi_done) {
|
||||
BMI_DBG("Command disallowed");
|
||||
return CDF_STATUS_E_PERM;
|
||||
}
|
||||
|
|
@ -249,12 +257,13 @@ bmi_write_soc_register(uint32_t address, uint32_t param, struct ol_softc *scn)
|
|||
uint32_t cid;
|
||||
int status;
|
||||
uint32_t offset;
|
||||
uint8_t *bmi_cmd_buff = scn->bmi_cmd_buff;
|
||||
struct bmi_info *info = hif_get_bmi_ctx(scn);
|
||||
uint8_t *bmi_cmd_buff = info->bmi_cmd_buff;
|
||||
uint32_t size = sizeof(cid) + sizeof(address) + sizeof(param);
|
||||
bmi_assert(BMI_COMMAND_FITS(size));
|
||||
cdf_mem_set(bmi_cmd_buff, 0, size);
|
||||
|
||||
if (scn->bmi_done) {
|
||||
if (info->bmi_done) {
|
||||
BMI_DBG("Command disallowed");
|
||||
return CDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
|
@ -290,12 +299,13 @@ bmilz_data(uint8_t *buffer, uint32_t length, struct ol_softc *scn)
|
|||
uint32_t offset;
|
||||
uint32_t remaining, txlen;
|
||||
const uint32_t header = sizeof(cid) + sizeof(length);
|
||||
uint8_t *bmi_cmd_buff = scn->bmi_cmd_buff;
|
||||
struct bmi_info *info = hif_get_bmi_ctx(scn);
|
||||
uint8_t *bmi_cmd_buff = info->bmi_cmd_buff;
|
||||
|
||||
bmi_assert(BMI_COMMAND_FITS(BMI_DATASZ_MAX + header));
|
||||
cdf_mem_set(bmi_cmd_buff, 0, BMI_DATASZ_MAX + header);
|
||||
|
||||
if (scn->bmi_done) {
|
||||
if (info->bmi_done) {
|
||||
BMI_ERR("Command disallowed");
|
||||
return CDF_STATUS_E_PERM;
|
||||
}
|
||||
|
|
@ -342,13 +352,14 @@ bmi_sign_stream_start(uint32_t address,
|
|||
const uint32_t header = sizeof(cid) + sizeof(address) + sizeof(length);
|
||||
uint8_t aligned_buf[BMI_DATASZ_MAX + 4];
|
||||
uint8_t *src;
|
||||
uint8_t *bmi_cmd_buff = scn->bmi_cmd_buff;
|
||||
struct bmi_info *info = hif_get_bmi_ctx(scn);
|
||||
uint8_t *bmi_cmd_buff = info->bmi_cmd_buff;
|
||||
uint32_t remaining, txlen;
|
||||
|
||||
bmi_assert(BMI_COMMAND_FITS(BMI_DATASZ_MAX + header));
|
||||
cdf_mem_set(bmi_cmd_buff, 0, BMI_DATASZ_MAX + header);
|
||||
|
||||
if (scn->bmi_done) {
|
||||
if (info->bmi_done) {
|
||||
BMI_ERR("Command disallowed");
|
||||
return CDF_STATUS_E_PERM;
|
||||
}
|
||||
|
|
@ -402,12 +413,13 @@ bmilz_stream_start(uint32_t address, struct ol_softc *scn)
|
|||
uint32_t cid;
|
||||
int status;
|
||||
uint32_t offset;
|
||||
uint8_t *bmi_cmd_buff = scn->bmi_cmd_buff;
|
||||
struct bmi_info *info = hif_get_bmi_ctx(scn);
|
||||
uint8_t *bmi_cmd_buff = info->bmi_cmd_buff;
|
||||
|
||||
bmi_assert(BMI_COMMAND_FITS(sizeof(cid) + sizeof(address)));
|
||||
cdf_mem_set(bmi_cmd_buff, 0, sizeof(cid) + sizeof(address));
|
||||
|
||||
if (scn->bmi_done) {
|
||||
if (info->bmi_done) {
|
||||
BMI_DBG("Command disallowed");
|
||||
return CDF_STATUS_E_PERM;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,16 +37,17 @@ bmi_read_memory(uint32_t address,
|
|||
int status;
|
||||
uint32_t offset;
|
||||
uint32_t remaining, rxlen;
|
||||
uint8_t *bmi_cmd_buff = scn->bmi_cmd_buff;
|
||||
uint8_t *bmi_rsp_buff = scn->bmi_rsp_buff;
|
||||
struct bmi_info *info = hif_get_bmi_ctx(scn);
|
||||
uint8_t *bmi_cmd_buff = info->bmi_cmd_buff;
|
||||
uint8_t *bmi_rsp_buff = info->bmi_rsp_buff;
|
||||
uint32_t align;
|
||||
|
||||
if (scn->bmi_done) {
|
||||
if (info->bmi_done) {
|
||||
BMI_DBG("command disallowed");
|
||||
return CDF_STATUS_E_PERM;
|
||||
}
|
||||
|
||||
if (!scn->bmi_cmd_buff || !scn->bmi_rsp_buff) {
|
||||
if (!info->bmi_cmd_buff || !info->bmi_rsp_buff) {
|
||||
BMI_ERR("BMI Initialization hasn't done");
|
||||
return CDF_STATUS_NOT_INITIALIZED;
|
||||
}
|
||||
|
|
@ -111,9 +112,10 @@ bmi_write_memory(uint32_t address,
|
|||
const uint32_t header = sizeof(cid) + sizeof(address) + sizeof(length);
|
||||
uint8_t aligned_buffer[BMI_DATASZ_MAX];
|
||||
uint8_t *src;
|
||||
uint8_t *bmi_cmd_buff = scn->bmi_cmd_buff;
|
||||
struct bmi_info *info = hif_get_bmi_ctx(scn);
|
||||
uint8_t *bmi_cmd_buff = info->bmi_cmd_buff;
|
||||
|
||||
if (scn->bmi_done) {
|
||||
if (info->bmi_done) {
|
||||
BMI_ERR("Command disallowed");
|
||||
return CDF_STATUS_E_PERM;
|
||||
}
|
||||
|
|
@ -178,11 +180,12 @@ bmi_execute(uint32_t address, A_UINT32 *param, struct ol_softc *scn)
|
|||
int status;
|
||||
uint32_t offset;
|
||||
uint32_t param_len;
|
||||
uint8_t *bmi_cmd_buff = scn->bmi_cmd_buff;
|
||||
uint8_t *bmi_rsp_buff = scn->bmi_rsp_buff;
|
||||
struct bmi_info *info = hif_get_bmi_ctx(scn);
|
||||
uint8_t *bmi_cmd_buff = info->bmi_cmd_buff;
|
||||
uint8_t *bmi_rsp_buff = info->bmi_rsp_buff;
|
||||
uint32_t size = sizeof(cid) + sizeof(address) + sizeof(param);
|
||||
|
||||
if (scn->bmi_done) {
|
||||
if (info->bmi_done) {
|
||||
BMI_ERR("Command disallowed");
|
||||
return CDF_STATUS_E_PERM;
|
||||
}
|
||||
|
|
@ -272,6 +275,7 @@ CDF_STATUS bmi_done_local(struct ol_softc *scn)
|
|||
{
|
||||
int status;
|
||||
uint32_t cid;
|
||||
struct bmi_info *info;
|
||||
|
||||
if (!scn) {
|
||||
BMI_ERR("Invalid scn context");
|
||||
|
|
@ -279,43 +283,44 @@ CDF_STATUS bmi_done_local(struct ol_softc *scn)
|
|||
return CDF_STATUS_NOT_INITIALIZED;
|
||||
}
|
||||
|
||||
if (scn->bmi_done) {
|
||||
info = hif_get_bmi_ctx(scn);
|
||||
if (info->bmi_done) {
|
||||
BMI_DBG("bmi_done_local skipped");
|
||||
return CDF_STATUS_E_PERM;
|
||||
}
|
||||
|
||||
BMI_DBG("BMI Done: Enter (device: 0x%p)", scn);
|
||||
|
||||
scn->bmi_done = true;
|
||||
info->bmi_done = true;
|
||||
cid = BMI_DONE;
|
||||
|
||||
if (!scn->bmi_cmd_buff) {
|
||||
if (!info->bmi_cmd_buff) {
|
||||
BMI_ERR("Invalid scn BMICmdBuff");
|
||||
bmi_assert(0);
|
||||
return CDF_STATUS_NOT_INITIALIZED;
|
||||
}
|
||||
|
||||
cdf_mem_copy(scn->bmi_cmd_buff, &cid, sizeof(cid));
|
||||
cdf_mem_copy(info->bmi_cmd_buff, &cid, sizeof(cid));
|
||||
|
||||
status = hif_exchange_bmi_msg(scn, scn->bmi_cmd_buff,
|
||||
status = hif_exchange_bmi_msg(scn, info->bmi_cmd_buff,
|
||||
sizeof(cid), NULL, NULL, 0);
|
||||
if (status) {
|
||||
BMI_ERR("Failed to write to the device; status:%d", status);
|
||||
return CDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
if (scn->bmi_cmd_buff) {
|
||||
if (info->bmi_cmd_buff) {
|
||||
cdf_os_mem_free_consistent(scn->cdf_dev, MAX_BMI_CMDBUF_SZ,
|
||||
scn->bmi_cmd_buff, scn->bmi_cmd_da, 0);
|
||||
scn->bmi_cmd_buff = NULL;
|
||||
scn->bmi_cmd_da = 0;
|
||||
info->bmi_cmd_buff, info->bmi_cmd_da, 0);
|
||||
info->bmi_cmd_buff = NULL;
|
||||
info->bmi_cmd_da = 0;
|
||||
}
|
||||
|
||||
if (scn->bmi_rsp_buff) {
|
||||
if (info->bmi_rsp_buff) {
|
||||
cdf_os_mem_free_consistent(scn->cdf_dev, MAX_BMI_CMDBUF_SZ,
|
||||
scn->bmi_rsp_buff, scn->bmi_rsp_da, 0);
|
||||
scn->bmi_rsp_buff = NULL;
|
||||
scn->bmi_rsp_da = 0;
|
||||
info->bmi_rsp_buff, info->bmi_rsp_da, 0);
|
||||
info->bmi_rsp_buff = NULL;
|
||||
info->bmi_rsp_da = 0;
|
||||
}
|
||||
|
||||
return CDF_STATUS_SUCCESS;
|
||||
|
|
|
|||
|
|
@ -39,10 +39,11 @@ bmi_no_command(struct ol_softc *scn)
|
|||
int status;
|
||||
uint32_t length;
|
||||
uint8_t ret = 0;
|
||||
uint8_t *bmi_cmd_buff = scn->bmi_cmd_buff;
|
||||
uint8_t *bmi_rsp_buff = scn->bmi_rsp_buff;
|
||||
struct bmi_info *info = hif_get_bmi_ctx(scn);
|
||||
uint8_t *bmi_cmd_buff = info->bmi_cmd_buff;
|
||||
uint8_t *bmi_rsp_buff = info->bmi_rsp_buff;
|
||||
|
||||
if (scn->bmi_done) {
|
||||
if (info->bmi_done) {
|
||||
BMI_ERR("Command disallowed: BMI DONE ALREADY");
|
||||
return CDF_STATUS_E_PERM;
|
||||
}
|
||||
|
|
@ -79,10 +80,11 @@ bmi_done_local(struct ol_softc *scn)
|
|||
int status;
|
||||
uint32_t length;
|
||||
uint8_t ret = 0;
|
||||
uint8_t *bmi_cmd_buff = scn->bmi_cmd_buff;
|
||||
uint8_t *bmi_rsp_buff = scn->bmi_rsp_buff;
|
||||
struct bmi_info *info = hif_get_bmi_ctx(scn);
|
||||
uint8_t *bmi_cmd_buff = info->bmi_cmd_buff;
|
||||
uint8_t *bmi_rsp_buff = info->bmi_rsp_buff;
|
||||
|
||||
if (scn->bmi_done) {
|
||||
if (info->bmi_done) {
|
||||
BMI_ERR("Command disallowed");
|
||||
return CDF_STATUS_E_PERM;
|
||||
}
|
||||
|
|
@ -110,18 +112,18 @@ bmi_done_local(struct ol_softc *scn)
|
|||
return CDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
if (scn->bmi_cmd_buff) {
|
||||
if (info->bmi_cmd_buff) {
|
||||
cdf_os_mem_free_consistent(scn->cdf_dev, MAX_BMI_CMDBUF_SZ,
|
||||
scn->bmi_cmd_buff, scn->bmi_cmd_da, 0);
|
||||
scn->bmi_cmd_buff = NULL;
|
||||
scn->bmi_cmd_da = 0;
|
||||
info->bmi_cmd_buff, info->bmi_cmd_da, 0);
|
||||
info->bmi_cmd_buff = NULL;
|
||||
info->bmi_cmd_da = 0;
|
||||
}
|
||||
|
||||
if (scn->bmi_rsp_buff) {
|
||||
if (info->bmi_rsp_buff) {
|
||||
cdf_os_mem_free_consistent(scn->cdf_dev, MAX_BMI_CMDBUF_SZ,
|
||||
scn->bmi_rsp_buff, scn->bmi_rsp_da, 0);
|
||||
scn->bmi_rsp_buff = NULL;
|
||||
scn->bmi_rsp_da = 0;
|
||||
info->bmi_rsp_buff, info->bmi_rsp_da, 0);
|
||||
info->bmi_rsp_buff = NULL;
|
||||
info->bmi_rsp_da = 0;
|
||||
}
|
||||
|
||||
return CDF_STATUS_SUCCESS;
|
||||
|
|
@ -142,10 +144,11 @@ bmi_write_memory(uint32_t address,
|
|||
const uint32_t header = sizeof(cid) + sizeof(address) + sizeof(length);
|
||||
uint8_t aligned_buffer[BMI_DATASZ_MAX];
|
||||
uint8_t *src;
|
||||
uint8_t *bmi_cmd_buff = scn->bmi_cmd_buff;
|
||||
uint8_t *bmi_rsp_buff = scn->bmi_rsp_buff;
|
||||
struct bmi_info *info = hif_get_bmi_ctx(scn);
|
||||
uint8_t *bmi_cmd_buff = info->bmi_cmd_buff;
|
||||
uint8_t *bmi_rsp_buff = info->bmi_rsp_buff;
|
||||
|
||||
if (scn->bmi_done) {
|
||||
if (info->bmi_done) {
|
||||
BMI_ERR("Command disallowed");
|
||||
return CDF_STATUS_E_PERM;
|
||||
}
|
||||
|
|
@ -211,12 +214,13 @@ bmi_read_memory(uint32_t address, uint8_t *buffer,
|
|||
uint8_t ret = 0;
|
||||
uint32_t offset;
|
||||
uint32_t remaining, rxlen, rsp_len, total_len;
|
||||
uint8_t *bmi_cmd_buff = scn->bmi_cmd_buff;
|
||||
struct bmi_info *info = hif_get_bmi_ctx(scn);
|
||||
uint8_t *bmi_cmd_buff = info->bmi_cmd_buff;
|
||||
/* note we reuse the same buffer to receive on */
|
||||
uint8_t *bmi_rsp_buff = scn->bmi_rsp_buff;
|
||||
uint8_t *bmi_rsp_buff = info->bmi_rsp_buff;
|
||||
uint32_t size = sizeof(cid) + sizeof(address) + sizeof(length);
|
||||
|
||||
if (scn->bmi_done) {
|
||||
if (info->bmi_done) {
|
||||
BMI_ERR("Command disallowed");
|
||||
return CDF_STATUS_E_PERM;
|
||||
}
|
||||
|
|
@ -282,10 +286,11 @@ bmi_execute(uint32_t address, uint32_t *param,
|
|||
int status;
|
||||
uint32_t length;
|
||||
uint8_t ret = 0;
|
||||
uint8_t *bmi_cmd_buff = scn->bmi_cmd_buff;
|
||||
uint8_t *bmi_rsp_buff = scn->bmi_rsp_buff;
|
||||
struct bmi_info *info = hif_get_bmi_ctx(scn);
|
||||
uint8_t *bmi_cmd_buff = info->bmi_cmd_buff;
|
||||
uint8_t *bmi_rsp_buff = info->bmi_rsp_buff;
|
||||
|
||||
if (scn->bmi_done) {
|
||||
if (info->bmi_done) {
|
||||
BMI_ERR("Command disallowed");
|
||||
return CDF_STATUS_E_PERM;
|
||||
}
|
||||
|
|
@ -326,11 +331,12 @@ bmi_load_image(dma_addr_t address,
|
|||
uint32_t offset;
|
||||
uint32_t length;
|
||||
uint8_t ret = 0;
|
||||
uint8_t *bmi_cmd_buff = scn->bmi_cmd_buff;
|
||||
uint8_t *bmi_rsp_buff = scn->bmi_rsp_buff;
|
||||
struct bmi_info *info = hif_get_bmi_ctx(scn);
|
||||
uint8_t *bmi_cmd_buff = info->bmi_cmd_buff;
|
||||
uint8_t *bmi_rsp_buff = info->bmi_rsp_buff;
|
||||
uint32_t addr_h, addr_l;
|
||||
|
||||
if (scn->bmi_done) {
|
||||
if (info->bmi_done) {
|
||||
BMI_ERR("Command disallowed");
|
||||
return CDF_STATUS_E_PERM;
|
||||
}
|
||||
|
|
@ -383,6 +389,7 @@ static CDF_STATUS bmi_enable(struct ol_softc *scn)
|
|||
struct image_desc_info image_desc_info;
|
||||
CDF_STATUS status;
|
||||
struct hif_target_info *tgt_info;
|
||||
struct bmi_info *info = hif_get_bmi_ctx(scn);
|
||||
|
||||
if (!scn) {
|
||||
BMI_ERR("Invalid scn context");
|
||||
|
|
@ -392,7 +399,7 @@ static CDF_STATUS bmi_enable(struct ol_softc *scn)
|
|||
|
||||
tgt_info = hif_get_target_info_handle(scn);
|
||||
|
||||
if (scn->bmi_cmd_buff == NULL || scn->bmi_rsp_buff == NULL) {
|
||||
if (info->bmi_cmd_buff == NULL || info->bmi_rsp_buff == NULL) {
|
||||
BMI_ERR("bmi_open failed!");
|
||||
return CDF_STATUS_NOT_INITIALIZED;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -148,6 +148,7 @@ static int __ol_transfer_bin_file(struct ol_softc *scn, ATH_BIN_FILE file,
|
|||
#endif
|
||||
struct hif_target_info *tgt_info = hif_get_target_info_handle(scn);
|
||||
uint32_t target_type = tgt_info->target_type;
|
||||
struct bmi_info *bmi_ctx = hif_get_bmi_ctx(scn);
|
||||
|
||||
switch (file) {
|
||||
default:
|
||||
|
|
@ -155,7 +156,7 @@ static int __ol_transfer_bin_file(struct ol_softc *scn, ATH_BIN_FILE file,
|
|||
return -1;
|
||||
case ATH_OTP_FILE:
|
||||
#if defined(CONFIG_CNSS)
|
||||
filename = scn->fw_files.otp_data;
|
||||
filename = bmi_ctx->fw_files.otp_data;
|
||||
#else
|
||||
filename = QCA_OTP_FILE;
|
||||
#endif
|
||||
|
|
@ -166,7 +167,7 @@ static int __ol_transfer_bin_file(struct ol_softc *scn, ATH_BIN_FILE file,
|
|||
case ATH_FIRMWARE_FILE:
|
||||
if (WLAN_IS_EPPING_ENABLED(cds_get_conparam())) {
|
||||
#if defined(CONFIG_CNSS)
|
||||
filename = scn->fw_files.epping_file;
|
||||
filename = bmi_ctx->fw_files.epping_file;
|
||||
#else
|
||||
filename = QCA_FIRMWARE_EPPING_FILE;
|
||||
#endif
|
||||
|
|
@ -177,7 +178,7 @@ static int __ol_transfer_bin_file(struct ol_softc *scn, ATH_BIN_FILE file,
|
|||
#ifdef QCA_WIFI_FTM
|
||||
if (cds_get_conparam() == CDF_GLOBAL_FTM_MODE) {
|
||||
#if defined(CONFIG_CNSS)
|
||||
filename = scn->fw_files.utf_file;
|
||||
filename = bmi_ctx->fw_files.utf_file;
|
||||
#else
|
||||
filename = QCA_UTF_FIRMWARE_FILE;
|
||||
#endif
|
||||
|
|
@ -190,7 +191,7 @@ static int __ol_transfer_bin_file(struct ol_softc *scn, ATH_BIN_FILE file,
|
|||
}
|
||||
#endif
|
||||
#if defined(CONFIG_CNSS)
|
||||
filename = scn->fw_files.image_file;
|
||||
filename = bmi_ctx->fw_files.image_file;
|
||||
#else
|
||||
filename = QCA_FIRMWARE_FILE;
|
||||
#endif
|
||||
|
|
@ -205,7 +206,7 @@ static int __ol_transfer_bin_file(struct ol_softc *scn, ATH_BIN_FILE file,
|
|||
#ifdef QCA_WIFI_FTM
|
||||
if (cds_get_conparam() == CDF_GLOBAL_FTM_MODE) {
|
||||
#if defined(CONFIG_CNSS)
|
||||
filename = scn->fw_files.utf_board_data;
|
||||
filename = bmi_ctx->fw_files.utf_board_data;
|
||||
#else
|
||||
filename = QCA_BOARD_DATA_FILE;
|
||||
#endif
|
||||
|
|
@ -218,7 +219,7 @@ static int __ol_transfer_bin_file(struct ol_softc *scn, ATH_BIN_FILE file,
|
|||
}
|
||||
#endif /* QCA_WIFI_FTM */
|
||||
#if defined(CONFIG_CNSS)
|
||||
filename = scn->fw_files.board_data;
|
||||
filename = bmi_ctx->fw_files.board_data;
|
||||
#else
|
||||
filename = QCA_BOARD_DATA_FILE;
|
||||
#endif
|
||||
|
|
@ -256,8 +257,8 @@ static int __ol_transfer_bin_file(struct ol_softc *scn, ATH_BIN_FILE file,
|
|||
#if defined(QCA_WIFI_FTM) && defined(CONFIG_CNSS)
|
||||
/* Try default board data file if FTM specific
|
||||
* board data file is not present. */
|
||||
if (filename == scn->fw_files.utf_board_data) {
|
||||
filename = scn->fw_files.board_data;
|
||||
if (filename == bmi_ctx->fw_files.utf_board_data) {
|
||||
filename = bmi_ctx->fw_files.board_data;
|
||||
BMI_INFO("%s: Trying to load default %s",
|
||||
__func__, filename);
|
||||
if (request_firmware(&fw_entry, filename,
|
||||
|
|
@ -1211,9 +1212,10 @@ CDF_STATUS ol_download_firmware(struct ol_softc *scn)
|
|||
struct hif_config_info *ini_cfg = hif_get_ini_handle(scn);
|
||||
uint32_t target_type = tgt_info->target_type;
|
||||
uint32_t target_version = tgt_info->target_version;
|
||||
struct bmi_info *bmi_ctx = hif_get_bmi_ctx(scn);
|
||||
|
||||
#ifdef CONFIG_CNSS
|
||||
if (0 != cnss_get_fw_files_for_target(&scn->fw_files,
|
||||
if (0 != cnss_get_fw_files_for_target(&bmi_ctx->fw_files,
|
||||
target_type,
|
||||
target_version)) {
|
||||
BMI_ERR("%s: No FW files from CNSS driver", __func__);
|
||||
|
|
|
|||
Loading…
Reference in a new issue