Lines Matching refs:wil
21 #define wil_err_fw(wil, fmt, arg...) wil_err(wil, "ERR[ FW ]" fmt, ##arg) argument
22 #define wil_dbg_fw(wil, fmt, arg...) wil_dbg(wil, "DBG[ FW ]" fmt, ##arg) argument
30 ioaddr = wmi_buffer(wil, val); \
32 wil_err_fw(wil, "bad " msg ": 0x%08x\n", \
46 static int wil_fw_verify(struct wil6210_priv *wil, const u8 *data, size_t size) in wil_fw_verify() argument
55 wil_err_fw(wil, "image size not aligned: %zu\n", size); in wil_fw_verify()
60 wil_err_fw(wil, "file too short: %zu bytes\n", size); in wil_fw_verify()
66 wil_err_fw(wil, "no file header\n"); in wil_fw_verify()
74 wil_err_fw(wil, "data length not aligned: %lu\n", (ulong)dlen); in wil_fw_verify()
78 wil_err_fw(wil, "file truncated at %zu/%lu\n", in wil_fw_verify()
83 wil_err_fw(wil, "data length too short: %lu\n", (ulong)dlen); in wil_fw_verify()
89 wil_err_fw(wil, "bad header signature: 0x%08x\n", in wil_fw_verify()
96 wil_err_fw(wil, "unsupported header version: %d\n", in wil_fw_verify()
112 wil_err_fw(wil, "checksum mismatch:" in wil_fw_verify()
121 static int fw_handle_comment(struct wil6210_priv *wil, const void *data, in fw_handle_comment() argument
129 static int fw_handle_data(struct wil6210_priv *wil, const void *data, in fw_handle_data() argument
137 wil_err_fw(wil, "data record too short: %zu\n", size); in fw_handle_data()
142 wil_dbg_fw(wil, "write [0x%08x] <== %zu bytes\n", le32_to_cpu(d->addr), in fw_handle_data()
150 static int fw_handle_fill(struct wil6210_priv *wil, const void *data, in fw_handle_fill() argument
159 wil_err_fw(wil, "bad size for fill record: %zu\n", size); in fw_handle_fill()
164 wil_err_fw(wil, "fill size too short: %zu\n", s); in fw_handle_fill()
169 wil_err_fw(wil, "fill size not aligned: %zu\n", s); in fw_handle_fill()
176 wil_dbg_fw(wil, "fill [0x%08x] <== 0x%08x, %zu bytes\n", in fw_handle_fill()
184 static int fw_handle_file_header(struct wil6210_priv *wil, const void *data, in fw_handle_file_header() argument
190 wil_err_fw(wil, "file header length incorrect: %zu\n", size); in fw_handle_file_header()
194 wil_dbg_fw(wil, "new file, ver. %d, %i bytes\n", in fw_handle_file_header()
202 static int fw_handle_direct_write(struct wil6210_priv *wil, const void *data, in fw_handle_direct_write() argument
210 wil_err_fw(wil, "record size not aligned on %zu: %zu\n", in fw_handle_direct_write()
226 wil_dbg_fw(wil, "write [0x%08x] <== 0x%08x " in fw_handle_direct_write()
236 static int gw_write(struct wil6210_priv *wil, void __iomem *gwa_addr, in gw_write() argument
250 wil_err_fw(wil, "gw timeout\n"); in gw_write()
258 static int fw_handle_gateway_data(struct wil6210_priv *wil, const void *data, in fw_handle_gateway_data() argument
271 wil_err_fw(wil, "gateway record too short: %zu\n", size); in fw_handle_gateway_data()
276 wil_err_fw(wil, "gateway record data size" in fw_handle_gateway_data()
285 wil_dbg_fw(wil, "gw write record [%3d] blocks, cmd 0x%08x\n", in fw_handle_gateway_data()
293 wil_dbg_fw(wil, "gw addresses: addr 0x%08x val 0x%08x" in fw_handle_gateway_data()
305 wil_dbg_fw(wil, " gw write[%3d] [0x%08x] <== 0x%08x\n", in fw_handle_gateway_data()
309 rc = gw_write(wil, gwa_addr, gwa_cmd, gwa_ctl, gw_cmd, a); in fw_handle_gateway_data()
317 static int fw_handle_gateway_data4(struct wil6210_priv *wil, const void *data, in fw_handle_gateway_data4() argument
330 wil_err_fw(wil, "gateway4 record too short: %zu\n", size); in fw_handle_gateway_data4()
335 wil_err_fw(wil, "gateway4 record data size" in fw_handle_gateway_data4()
344 wil_dbg_fw(wil, "gw4 write record [%3d] blocks, cmd 0x%08x\n", in fw_handle_gateway_data4()
354 wil_dbg_fw(wil, "gw4 addresses: addr 0x%08x cmd 0x%08x ctl 0x%08x\n", in fw_handle_gateway_data4()
370 wil_dbg_fw(wil, " gw4 write[%3d] [0x%08x] <==\n", i, a); in fw_handle_gateway_data4()
376 rc = gw_write(wil, gwa_addr, gwa_cmd, gwa_ctl, gw_cmd, a); in fw_handle_gateway_data4()
386 int (*handler)(struct wil6210_priv *wil, const void *data, size_t size);
399 static int wil_fw_handle_record(struct wil6210_priv *wil, int type, in wil_fw_handle_record() argument
406 return wil_fw_handlers[i].handler(wil, data, size); in wil_fw_handle_record()
409 wil_err_fw(wil, "unknown record type: %d\n", type); in wil_fw_handle_record()
421 static int wil_fw_load(struct wil6210_priv *wil, const void *data, size_t size) in wil_fw_load() argument
435 wil_err_fw(wil, "unaligned record size: %zu\n", in wil_fw_load()
439 rc = wil_fw_handle_record(wil, le16_to_cpu(hdr->type), in wil_fw_load()
445 wil_err_fw(wil, "unprocessed bytes: %zu\n", size); in wil_fw_load()
447 wil_err_fw(wil, "Stop at offset %ld" in wil_fw_load()
465 int wil_request_firmware(struct wil6210_priv *wil, const char *name) in wil_request_firmware() argument
472 rc = request_firmware(&fw, name, wil_to_dev(wil)); in wil_request_firmware()
474 wil_err_fw(wil, "Failed to load firmware %s\n", name); in wil_request_firmware()
477 wil_dbg_fw(wil, "Loading <%s>, %zu bytes\n", name, fw->size); in wil_request_firmware()
480 rc1 = wil_fw_verify(wil, d, sz); in wil_request_firmware()
485 rc = wil_fw_load(wil, d, rc1); in wil_request_firmware()