diff options
Diffstat (limited to 'package/kernel/mac80211/patches/382-brcmfmac-use-direct-data-pointer-in-NVRAM-parser-str.patch')
-rw-r--r-- | package/kernel/mac80211/patches/382-brcmfmac-use-direct-data-pointer-in-NVRAM-parser-str.patch | 144 |
1 files changed, 0 insertions, 144 deletions
diff --git a/package/kernel/mac80211/patches/382-brcmfmac-use-direct-data-pointer-in-NVRAM-parser-str.patch b/package/kernel/mac80211/patches/382-brcmfmac-use-direct-data-pointer-in-NVRAM-parser-str.patch deleted file mode 100644 index c6e83ddd29..0000000000 --- a/package/kernel/mac80211/patches/382-brcmfmac-use-direct-data-pointer-in-NVRAM-parser-str.patch +++ /dev/null @@ -1,144 +0,0 @@ -From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com> -Date: Thu, 4 Jun 2015 22:11:07 +0200 -Subject: [PATCH] brcmfmac: use direct data pointer in NVRAM parser struct -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -As we plan to add support for platform NVRAM we should store direct -data pointer without the extra struct firmware layer. This will allow -us to support other sources with the only requirement being u8 buffer. - -Signed-off-by: Rafał Miłecki <zajec5@gmail.com> -Acked-by: Arend van Spriel <arend@broadcom.com> -Signed-off-by: Kalle Valo <kvalo@codeaurora.org> ---- - ---- a/drivers/net/wireless/brcm80211/brcmfmac/firmware.c -+++ b/drivers/net/wireless/brcm80211/brcmfmac/firmware.c -@@ -43,7 +43,7 @@ enum nvram_parser_state { - * struct nvram_parser - internal info for parser. - * - * @state: current parser state. -- * @fwnv: input buffer being parsed. -+ * @data: input buffer being parsed. - * @nvram: output buffer with parse result. - * @nvram_len: lenght of parse result. - * @line: current line. -@@ -55,7 +55,7 @@ enum nvram_parser_state { - */ - struct nvram_parser { - enum nvram_parser_state state; -- const struct firmware *fwnv; -+ const u8 *data; - u8 *nvram; - u32 nvram_len; - u32 line; -@@ -91,7 +91,7 @@ static enum nvram_parser_state brcmf_nvr - { - char c; - -- c = nvp->fwnv->data[nvp->pos]; -+ c = nvp->data[nvp->pos]; - if (c == '\n') - return COMMENT; - if (is_whitespace(c)) -@@ -115,16 +115,16 @@ static enum nvram_parser_state brcmf_nvr - enum nvram_parser_state st = nvp->state; - char c; - -- c = nvp->fwnv->data[nvp->pos]; -+ c = nvp->data[nvp->pos]; - if (c == '=') { - /* ignore RAW1 by treating as comment */ -- if (strncmp(&nvp->fwnv->data[nvp->entry], "RAW1", 4) == 0) -+ if (strncmp(&nvp->data[nvp->entry], "RAW1", 4) == 0) - st = COMMENT; - else - st = VALUE; -- if (strncmp(&nvp->fwnv->data[nvp->entry], "devpath", 7) == 0) -+ if (strncmp(&nvp->data[nvp->entry], "devpath", 7) == 0) - nvp->multi_dev_v1 = true; -- if (strncmp(&nvp->fwnv->data[nvp->entry], "pcie/", 5) == 0) -+ if (strncmp(&nvp->data[nvp->entry], "pcie/", 5) == 0) - nvp->multi_dev_v2 = true; - } else if (!is_nvram_char(c) || c == ' ') { - brcmf_dbg(INFO, "warning: ln=%d:col=%d: '=' expected, skip invalid key entry\n", -@@ -145,11 +145,11 @@ brcmf_nvram_handle_value(struct nvram_pa - char *ekv; - u32 cplen; - -- c = nvp->fwnv->data[nvp->pos]; -+ c = nvp->data[nvp->pos]; - if (!is_nvram_char(c)) { - /* key,value pair complete */ -- ekv = (u8 *)&nvp->fwnv->data[nvp->pos]; -- skv = (u8 *)&nvp->fwnv->data[nvp->entry]; -+ ekv = (u8 *)&nvp->data[nvp->pos]; -+ skv = (u8 *)&nvp->data[nvp->entry]; - cplen = ekv - skv; - if (nvp->nvram_len + cplen + 1 >= BRCMF_FW_MAX_NVRAM_SIZE) - return END; -@@ -170,7 +170,7 @@ brcmf_nvram_handle_comment(struct nvram_ - { - char *eoc, *sol; - -- sol = (char *)&nvp->fwnv->data[nvp->pos]; -+ sol = (char *)&nvp->data[nvp->pos]; - eoc = strchr(sol, '\n'); - if (!eoc) { - eoc = strchr(sol, '\0'); -@@ -201,17 +201,17 @@ static enum nvram_parser_state - }; - - static int brcmf_init_nvram_parser(struct nvram_parser *nvp, -- const struct firmware *nv) -+ const u8 *data, size_t data_len) - { - size_t size; - - memset(nvp, 0, sizeof(*nvp)); -- nvp->fwnv = nv; -+ nvp->data = data; - /* Limit size to MAX_NVRAM_SIZE, some files contain lot of comment */ -- if (nv->size > BRCMF_FW_MAX_NVRAM_SIZE) -+ if (data_len > BRCMF_FW_MAX_NVRAM_SIZE) - size = BRCMF_FW_MAX_NVRAM_SIZE; - else -- size = nv->size; -+ size = data_len; - /* Alloc for extra 0 byte + roundup by 4 + length field */ - size += 1 + 3 + sizeof(u32); - nvp->nvram = kzalloc(size, GFP_KERNEL); -@@ -362,18 +362,18 @@ fail: - * and converts newlines to NULs. Shortens buffer as needed and pads with NULs. - * End of buffer is completed with token identifying length of buffer. - */ --static void *brcmf_fw_nvram_strip(const struct firmware *nv, u32 *new_length, -- u16 domain_nr, u16 bus_nr) -+static void *brcmf_fw_nvram_strip(const u8 *data, size_t data_len, -+ u32 *new_length, u16 domain_nr, u16 bus_nr) - { - struct nvram_parser nvp; - u32 pad; - u32 token; - __le32 token_le; - -- if (brcmf_init_nvram_parser(&nvp, nv) < 0) -+ if (brcmf_init_nvram_parser(&nvp, data, data_len) < 0) - return NULL; - -- while (nvp.pos < nv->size) { -+ while (nvp.pos < data_len) { - nvp.state = nv_parser_states[nvp.state](&nvp); - if (nvp.state == END) - break; -@@ -432,7 +432,7 @@ static void brcmf_fw_request_nvram_done( - goto fail; - - if (fw) { -- nvram = brcmf_fw_nvram_strip(fw, &nvram_length, -+ nvram = brcmf_fw_nvram_strip(fw->data, fw->size, &nvram_length, - fwctx->domain_nr, fwctx->bus_nr); - release_firmware(fw); - if (!nvram && !(fwctx->flags & BRCMF_FW_REQ_NV_OPTIONAL)) |