• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6.36/drivers/uwb/i1480/dfu/

Lines Matching defs:i1480

26  * common entry point in __mac_fw_upload(), which uses the i1480
33 #include "i1480-dfu.h"
62 int fw_hdr_load(struct i1480 *i1480, struct fw_hdr *hdr, unsigned hdr_cnt,
68 dev_err(i1480->dev, "fw hdr #%u/%zu: EOF reached in header at "
80 dev_err(i1480->dev, "fw hdr #%u/%zu: EOF reached in data; "
108 int fw_hdrs_load(struct i1480 *i1480, struct fw_hdr **phdr,
129 dev_err(i1480->dev, "Cannot allocate fw header "
133 result = fw_hdr_load(i1480, hdr, hdr_cnt,
157 * @i1480: Device instance
167 ssize_t i1480_fw_cmp(struct i1480 *i1480, struct fw_hdr *hdr)
176 chunk_size = size < i1480->buf_size ? size : i1480->buf_size;
177 result = i1480->read(i1480, hdr->address + src_itr, chunk_size);
179 dev_err(i1480->dev, "error reading for verification: "
183 if (memcmp(i1480->cmd_buf, bin + src_itr, result)) {
184 u8 *buf = i1480->cmd_buf;
187 dev_err(i1480->dev, "byte failed at "
213 int mac_fw_hdrs_push(struct i1480 *i1480, struct fw_hdr *hdr,
216 struct device *dev = i1480->dev;
228 result = i1480->write(i1480, hdr_itr->address, hdr_itr->bin,
237 result = i1480_fw_cmp(i1480, hdr_itr);
266 int mac_fw_upload_enable(struct i1480 *i1480)
270 u32 *buffer = (u32 *)i1480->cmd_buf;
272 if (i1480->hw_rev > 1)
274 result = i1480->read(i1480, reg, sizeof(u32));
278 result = i1480->write(i1480, reg, buffer, sizeof(u32));
283 dev_err(i1480->dev, "can't enable fw upload mode: %d\n", result);
290 int mac_fw_upload_disable(struct i1480 *i1480)
294 u32 *buffer = (u32 *)i1480->cmd_buf;
296 if (i1480->hw_rev > 1)
298 result = i1480->read(i1480, reg, sizeof(u32));
302 result = i1480->write(i1480, reg, buffer, sizeof(u32));
307 dev_err(i1480->dev, "can't disable fw upload mode: %d\n", result);
316 * @i1480: Device instance
325 int __mac_fw_upload(struct i1480 *i1480, const char *fw_name,
332 result = request_firmware(&fw, fw_name, i1480->dev);
335 result = fw_hdrs_load(i1480, &fw_hdrs, fw->data, fw->size);
337 dev_err(i1480->dev, "%s fw '%s': failed to parse firmware "
341 result = mac_fw_upload_enable(i1480);
344 result = mac_fw_hdrs_push(i1480, fw_hdrs, fw_name, fw_tag);
345 mac_fw_upload_disable(i1480);
348 dev_info(i1480->dev, "%s fw '%s': uploaded\n", fw_tag, fw_name);
350 dev_err(i1480->dev, "%s fw '%s': failed to upload (%d), "
364 int i1480_pre_fw_upload(struct i1480 *i1480)
367 result = __mac_fw_upload(i1480, i1480->pre_fw_name, "PRE");
377 * @i1480: Device's instance
388 int i1480_cmd_reset(struct i1480 *i1480)
391 struct uwb_rccb *cmd = (void *) i1480->cmd_buf;
395 } __attribute__((packed)) *reply = (void *) i1480->evt_buf;
402 result = i1480_cmd(i1480, "RESET", sizeof(*cmd), sizeof(*reply));
406 dev_err(i1480->dev, "RESET: command execution failed: %u\n",
418 int i1480_fw_is_running_q(struct i1480 *i1480)
422 u32 *val = (u32 *) i1480->cmd_buf;
426 result = i1480->read(i1480, 0x80080000, 4);
428 dev_err(i1480->dev, "Can't read 0x8008000: %d\n", result);
434 dev_err(i1480->dev, "Timed out waiting for fw to start\n");
445 * @i1480: Device instance
451 int i1480_mac_fw_upload(struct i1480 *i1480)
454 struct i1480_rceb *rcebe = (void *) i1480->evt_buf;
456 result = __mac_fw_upload(i1480, i1480->mac_fw_name, "MAC");
458 result = __mac_fw_upload(i1480, i1480->mac_fw_name_deprecate,
465 dev_warn(i1480->dev,
468 i1480->mac_fw_name_deprecate, i1480->mac_fw_name);
469 result = i1480_fw_is_running_q(i1480);
472 result = i1480->rc_setup ? i1480->rc_setup(i1480) : 0;
474 dev_err(i1480->dev, "Cannot setup after MAC fw upload: %d\n",
478 result = i1480->wait_init_done(i1480); /* wait init'on */
480 dev_err(i1480->dev, "MAC fw '%s': Initialization timed out "
481 "(%d)\n", i1480->mac_fw_name, result);
485 if (i1480->evt_result != sizeof(*rcebe)) {
486 dev_err(i1480->dev, "MAC fw '%s': initialization event returns "
488 i1480->mac_fw_name, i1480->evt_result, sizeof(*rcebe));
492 if (i1480_rceb_check(i1480, &rcebe->rceb, NULL, 0, i1480_CET_VS1,
494 dev_err(i1480->dev, "wrong initialization event 0x%02x/%04x/%02x "
501 result = i1480_cmd_reset(i1480);
503 dev_err(i1480->dev, "MAC fw '%s': MBOA reset failed (%d)\n",
504 i1480->mac_fw_name, result);