• Home
  • Raw
  • Download

Lines Matching refs:fru

6223 	struct bfa_fru_s *fru = cbarg;  in bfa_fru_notify()  local
6225 bfa_trc(fru, event); in bfa_fru_notify()
6230 if (fru->op_busy) { in bfa_fru_notify()
6231 fru->status = BFA_STATUS_IOC_FAILURE; in bfa_fru_notify()
6232 fru->cbfn(fru->cbarg, fru->status); in bfa_fru_notify()
6233 fru->op_busy = 0; in bfa_fru_notify()
6250 struct bfa_fru_s *fru = cbarg; in bfa_fru_write_send() local
6252 (struct bfi_fru_write_req_s *) fru->mb.msg; in bfa_fru_write_send()
6255 msg->offset = cpu_to_be32(fru->addr_off + fru->offset); in bfa_fru_write_send()
6256 len = (fru->residue < BFA_FRU_DMA_BUF_SZ) ? in bfa_fru_write_send()
6257 fru->residue : BFA_FRU_DMA_BUF_SZ; in bfa_fru_write_send()
6263 msg->last = (len == fru->residue) ? 1 : 0; in bfa_fru_write_send()
6265 msg->trfr_cmpl = (len == fru->residue) ? fru->trfr_cmpl : 0; in bfa_fru_write_send()
6266 bfi_h2i_set(msg->mh, BFI_MC_FRU, msg_type, bfa_ioc_portid(fru->ioc)); in bfa_fru_write_send()
6267 bfa_alen_set(&msg->alen, len, fru->dbuf_pa); in bfa_fru_write_send()
6269 memcpy(fru->dbuf_kva, fru->ubuf + fru->offset, len); in bfa_fru_write_send()
6270 bfa_ioc_mbox_queue(fru->ioc, &fru->mb); in bfa_fru_write_send()
6272 fru->residue -= len; in bfa_fru_write_send()
6273 fru->offset += len; in bfa_fru_write_send()
6284 struct bfa_fru_s *fru = cbarg; in bfa_fru_read_send() local
6286 (struct bfi_fru_read_req_s *) fru->mb.msg; in bfa_fru_read_send()
6289 msg->offset = cpu_to_be32(fru->addr_off + fru->offset); in bfa_fru_read_send()
6290 len = (fru->residue < BFA_FRU_DMA_BUF_SZ) ? in bfa_fru_read_send()
6291 fru->residue : BFA_FRU_DMA_BUF_SZ; in bfa_fru_read_send()
6293 bfi_h2i_set(msg->mh, BFI_MC_FRU, msg_type, bfa_ioc_portid(fru->ioc)); in bfa_fru_read_send()
6294 bfa_alen_set(&msg->alen, len, fru->dbuf_pa); in bfa_fru_read_send()
6295 bfa_ioc_mbox_queue(fru->ioc, &fru->mb); in bfa_fru_read_send()
6323 bfa_fru_attach(struct bfa_fru_s *fru, struct bfa_ioc_s *ioc, void *dev, in bfa_fru_attach() argument
6326 fru->ioc = ioc; in bfa_fru_attach()
6327 fru->trcmod = trcmod; in bfa_fru_attach()
6328 fru->cbfn = NULL; in bfa_fru_attach()
6329 fru->cbarg = NULL; in bfa_fru_attach()
6330 fru->op_busy = 0; in bfa_fru_attach()
6332 bfa_ioc_mbox_regisr(fru->ioc, BFI_MC_FRU, bfa_fru_intr, fru); in bfa_fru_attach()
6333 bfa_q_qe_init(&fru->ioc_notify); in bfa_fru_attach()
6334 bfa_ioc_notify_init(&fru->ioc_notify, bfa_fru_notify, fru); in bfa_fru_attach()
6335 list_add_tail(&fru->ioc_notify.qe, &fru->ioc->notify_q); in bfa_fru_attach()
6339 fru->dbuf_kva = NULL; in bfa_fru_attach()
6340 fru->dbuf_pa = 0; in bfa_fru_attach()
6353 bfa_fru_memclaim(struct bfa_fru_s *fru, u8 *dm_kva, u64 dm_pa, in bfa_fru_memclaim() argument
6359 fru->dbuf_kva = dm_kva; in bfa_fru_memclaim()
6360 fru->dbuf_pa = dm_pa; in bfa_fru_memclaim()
6361 memset(fru->dbuf_kva, 0, BFA_FRU_DMA_BUF_SZ); in bfa_fru_memclaim()
6379 bfa_fruvpd_update(struct bfa_fru_s *fru, void *buf, u32 len, u32 offset, in bfa_fruvpd_update() argument
6382 bfa_trc(fru, BFI_FRUVPD_H2I_WRITE_REQ); in bfa_fruvpd_update()
6383 bfa_trc(fru, len); in bfa_fruvpd_update()
6384 bfa_trc(fru, offset); in bfa_fruvpd_update()
6386 if (fru->ioc->asic_gen != BFI_ASIC_GEN_CT2 && in bfa_fruvpd_update()
6387 fru->ioc->attr->card_type != BFA_MFG_TYPE_CHINOOK2) in bfa_fruvpd_update()
6390 if (fru->ioc->attr->card_type != BFA_MFG_TYPE_CHINOOK) in bfa_fruvpd_update()
6393 if (!bfa_ioc_is_operational(fru->ioc)) in bfa_fruvpd_update()
6396 if (fru->op_busy) { in bfa_fruvpd_update()
6397 bfa_trc(fru, fru->op_busy); in bfa_fruvpd_update()
6401 fru->op_busy = 1; in bfa_fruvpd_update()
6403 fru->cbfn = cbfn; in bfa_fruvpd_update()
6404 fru->cbarg = cbarg; in bfa_fruvpd_update()
6405 fru->residue = len; in bfa_fruvpd_update()
6406 fru->offset = 0; in bfa_fruvpd_update()
6407 fru->addr_off = offset; in bfa_fruvpd_update()
6408 fru->ubuf = buf; in bfa_fruvpd_update()
6409 fru->trfr_cmpl = trfr_cmpl; in bfa_fruvpd_update()
6411 bfa_fru_write_send(fru, BFI_FRUVPD_H2I_WRITE_REQ); in bfa_fruvpd_update()
6429 bfa_fruvpd_read(struct bfa_fru_s *fru, void *buf, u32 len, u32 offset, in bfa_fruvpd_read() argument
6432 bfa_trc(fru, BFI_FRUVPD_H2I_READ_REQ); in bfa_fruvpd_read()
6433 bfa_trc(fru, len); in bfa_fruvpd_read()
6434 bfa_trc(fru, offset); in bfa_fruvpd_read()
6436 if (fru->ioc->asic_gen != BFI_ASIC_GEN_CT2) in bfa_fruvpd_read()
6439 if (fru->ioc->attr->card_type != BFA_MFG_TYPE_CHINOOK && in bfa_fruvpd_read()
6440 fru->ioc->attr->card_type != BFA_MFG_TYPE_CHINOOK2) in bfa_fruvpd_read()
6443 if (!bfa_ioc_is_operational(fru->ioc)) in bfa_fruvpd_read()
6446 if (fru->op_busy) { in bfa_fruvpd_read()
6447 bfa_trc(fru, fru->op_busy); in bfa_fruvpd_read()
6451 fru->op_busy = 1; in bfa_fruvpd_read()
6453 fru->cbfn = cbfn; in bfa_fruvpd_read()
6454 fru->cbarg = cbarg; in bfa_fruvpd_read()
6455 fru->residue = len; in bfa_fruvpd_read()
6456 fru->offset = 0; in bfa_fruvpd_read()
6457 fru->addr_off = offset; in bfa_fruvpd_read()
6458 fru->ubuf = buf; in bfa_fruvpd_read()
6459 bfa_fru_read_send(fru, BFI_FRUVPD_H2I_READ_REQ); in bfa_fruvpd_read()
6473 bfa_fruvpd_get_max_size(struct bfa_fru_s *fru, u32 *max_size) in bfa_fruvpd_get_max_size() argument
6475 if (fru->ioc->asic_gen != BFI_ASIC_GEN_CT2) in bfa_fruvpd_get_max_size()
6478 if (!bfa_ioc_is_operational(fru->ioc)) in bfa_fruvpd_get_max_size()
6481 if (fru->ioc->attr->card_type == BFA_MFG_TYPE_CHINOOK || in bfa_fruvpd_get_max_size()
6482 fru->ioc->attr->card_type == BFA_MFG_TYPE_CHINOOK2) in bfa_fruvpd_get_max_size()
6501 bfa_tfru_write(struct bfa_fru_s *fru, void *buf, u32 len, u32 offset, in bfa_tfru_write() argument
6504 bfa_trc(fru, BFI_TFRU_H2I_WRITE_REQ); in bfa_tfru_write()
6505 bfa_trc(fru, len); in bfa_tfru_write()
6506 bfa_trc(fru, offset); in bfa_tfru_write()
6507 bfa_trc(fru, *((u8 *) buf)); in bfa_tfru_write()
6509 if (fru->ioc->asic_gen != BFI_ASIC_GEN_CT2) in bfa_tfru_write()
6512 if (!bfa_ioc_is_operational(fru->ioc)) in bfa_tfru_write()
6515 if (fru->op_busy) { in bfa_tfru_write()
6516 bfa_trc(fru, fru->op_busy); in bfa_tfru_write()
6520 fru->op_busy = 1; in bfa_tfru_write()
6522 fru->cbfn = cbfn; in bfa_tfru_write()
6523 fru->cbarg = cbarg; in bfa_tfru_write()
6524 fru->residue = len; in bfa_tfru_write()
6525 fru->offset = 0; in bfa_tfru_write()
6526 fru->addr_off = offset; in bfa_tfru_write()
6527 fru->ubuf = buf; in bfa_tfru_write()
6529 bfa_fru_write_send(fru, BFI_TFRU_H2I_WRITE_REQ); in bfa_tfru_write()
6547 bfa_tfru_read(struct bfa_fru_s *fru, void *buf, u32 len, u32 offset, in bfa_tfru_read() argument
6550 bfa_trc(fru, BFI_TFRU_H2I_READ_REQ); in bfa_tfru_read()
6551 bfa_trc(fru, len); in bfa_tfru_read()
6552 bfa_trc(fru, offset); in bfa_tfru_read()
6554 if (fru->ioc->asic_gen != BFI_ASIC_GEN_CT2) in bfa_tfru_read()
6557 if (!bfa_ioc_is_operational(fru->ioc)) in bfa_tfru_read()
6560 if (fru->op_busy) { in bfa_tfru_read()
6561 bfa_trc(fru, fru->op_busy); in bfa_tfru_read()
6565 fru->op_busy = 1; in bfa_tfru_read()
6567 fru->cbfn = cbfn; in bfa_tfru_read()
6568 fru->cbarg = cbarg; in bfa_tfru_read()
6569 fru->residue = len; in bfa_tfru_read()
6570 fru->offset = 0; in bfa_tfru_read()
6571 fru->addr_off = offset; in bfa_tfru_read()
6572 fru->ubuf = buf; in bfa_tfru_read()
6573 bfa_fru_read_send(fru, BFI_TFRU_H2I_READ_REQ); in bfa_tfru_read()
6587 struct bfa_fru_s *fru = fruarg; in bfa_fru_intr() local
6591 bfa_trc(fru, msg->mh.msg_id); in bfa_fru_intr()
6593 if (!fru->op_busy) { in bfa_fru_intr()
6597 bfa_trc(fru, 0x9999); in bfa_fru_intr()
6605 bfa_trc(fru, status); in bfa_fru_intr()
6607 if (status != BFA_STATUS_OK || fru->residue == 0) { in bfa_fru_intr()
6608 fru->status = status; in bfa_fru_intr()
6609 fru->op_busy = 0; in bfa_fru_intr()
6610 if (fru->cbfn) in bfa_fru_intr()
6611 fru->cbfn(fru->cbarg, fru->status); in bfa_fru_intr()
6613 bfa_trc(fru, fru->offset); in bfa_fru_intr()
6615 bfa_fru_write_send(fru, in bfa_fru_intr()
6618 bfa_fru_write_send(fru, in bfa_fru_intr()
6625 bfa_trc(fru, status); in bfa_fru_intr()
6628 fru->status = status; in bfa_fru_intr()
6629 fru->op_busy = 0; in bfa_fru_intr()
6630 if (fru->cbfn) in bfa_fru_intr()
6631 fru->cbfn(fru->cbarg, fru->status); in bfa_fru_intr()
6635 bfa_trc(fru, fru->offset); in bfa_fru_intr()
6636 bfa_trc(fru, len); in bfa_fru_intr()
6638 memcpy(fru->ubuf + fru->offset, fru->dbuf_kva, len); in bfa_fru_intr()
6639 fru->residue -= len; in bfa_fru_intr()
6640 fru->offset += len; in bfa_fru_intr()
6642 if (fru->residue == 0) { in bfa_fru_intr()
6643 fru->status = status; in bfa_fru_intr()
6644 fru->op_busy = 0; in bfa_fru_intr()
6645 if (fru->cbfn) in bfa_fru_intr()
6646 fru->cbfn(fru->cbarg, fru->status); in bfa_fru_intr()
6649 bfa_fru_read_send(fru, in bfa_fru_intr()
6652 bfa_fru_read_send(fru, in bfa_fru_intr()