fru 109 drivers/scsi/aic7xxx/aiclib.h uint8_t fru; fru 167 drivers/scsi/bfa/bfa_core.c struct bfa_fru_s *fru = BFA_FRU(bfa); fru 170 drivers/scsi/bfa/bfa_core.c bfa_fru_attach(fru, &bfa->ioc, bfa, bfa->trcmod, mincfg); fru 171 drivers/scsi/bfa/bfa_core.c bfa_fru_memclaim(fru, fru_dma->kva_curp, fru_dma->dma_curp, mincfg); fru 6195 drivers/scsi/bfa/bfa_ioc.c struct bfa_fru_s *fru = cbarg; fru 6197 drivers/scsi/bfa/bfa_ioc.c bfa_trc(fru, event); fru 6202 drivers/scsi/bfa/bfa_ioc.c if (fru->op_busy) { fru 6203 drivers/scsi/bfa/bfa_ioc.c fru->status = BFA_STATUS_IOC_FAILURE; fru 6204 drivers/scsi/bfa/bfa_ioc.c fru->cbfn(fru->cbarg, fru->status); fru 6205 drivers/scsi/bfa/bfa_ioc.c fru->op_busy = 0; fru 6222 drivers/scsi/bfa/bfa_ioc.c struct bfa_fru_s *fru = cbarg; fru 6224 drivers/scsi/bfa/bfa_ioc.c (struct bfi_fru_write_req_s *) fru->mb.msg; fru 6227 drivers/scsi/bfa/bfa_ioc.c msg->offset = cpu_to_be32(fru->addr_off + fru->offset); fru 6228 drivers/scsi/bfa/bfa_ioc.c len = (fru->residue < BFA_FRU_DMA_BUF_SZ) ? fru 6229 drivers/scsi/bfa/bfa_ioc.c fru->residue : BFA_FRU_DMA_BUF_SZ; fru 6235 drivers/scsi/bfa/bfa_ioc.c msg->last = (len == fru->residue) ? 1 : 0; fru 6237 drivers/scsi/bfa/bfa_ioc.c msg->trfr_cmpl = (len == fru->residue) ? fru->trfr_cmpl : 0; fru 6238 drivers/scsi/bfa/bfa_ioc.c bfi_h2i_set(msg->mh, BFI_MC_FRU, msg_type, bfa_ioc_portid(fru->ioc)); fru 6239 drivers/scsi/bfa/bfa_ioc.c bfa_alen_set(&msg->alen, len, fru->dbuf_pa); fru 6241 drivers/scsi/bfa/bfa_ioc.c memcpy(fru->dbuf_kva, fru->ubuf + fru->offset, len); fru 6242 drivers/scsi/bfa/bfa_ioc.c bfa_ioc_mbox_queue(fru->ioc, &fru->mb); fru 6244 drivers/scsi/bfa/bfa_ioc.c fru->residue -= len; fru 6245 drivers/scsi/bfa/bfa_ioc.c fru->offset += len; fru 6256 drivers/scsi/bfa/bfa_ioc.c struct bfa_fru_s *fru = cbarg; fru 6258 drivers/scsi/bfa/bfa_ioc.c (struct bfi_fru_read_req_s *) fru->mb.msg; fru 6261 drivers/scsi/bfa/bfa_ioc.c msg->offset = cpu_to_be32(fru->addr_off + fru->offset); fru 6262 drivers/scsi/bfa/bfa_ioc.c len = (fru->residue < BFA_FRU_DMA_BUF_SZ) ? fru 6263 drivers/scsi/bfa/bfa_ioc.c fru->residue : BFA_FRU_DMA_BUF_SZ; fru 6265 drivers/scsi/bfa/bfa_ioc.c bfi_h2i_set(msg->mh, BFI_MC_FRU, msg_type, bfa_ioc_portid(fru->ioc)); fru 6266 drivers/scsi/bfa/bfa_ioc.c bfa_alen_set(&msg->alen, len, fru->dbuf_pa); fru 6267 drivers/scsi/bfa/bfa_ioc.c bfa_ioc_mbox_queue(fru->ioc, &fru->mb); fru 6295 drivers/scsi/bfa/bfa_ioc.c bfa_fru_attach(struct bfa_fru_s *fru, struct bfa_ioc_s *ioc, void *dev, fru 6298 drivers/scsi/bfa/bfa_ioc.c fru->ioc = ioc; fru 6299 drivers/scsi/bfa/bfa_ioc.c fru->trcmod = trcmod; fru 6300 drivers/scsi/bfa/bfa_ioc.c fru->cbfn = NULL; fru 6301 drivers/scsi/bfa/bfa_ioc.c fru->cbarg = NULL; fru 6302 drivers/scsi/bfa/bfa_ioc.c fru->op_busy = 0; fru 6304 drivers/scsi/bfa/bfa_ioc.c bfa_ioc_mbox_regisr(fru->ioc, BFI_MC_FRU, bfa_fru_intr, fru); fru 6305 drivers/scsi/bfa/bfa_ioc.c bfa_q_qe_init(&fru->ioc_notify); fru 6306 drivers/scsi/bfa/bfa_ioc.c bfa_ioc_notify_init(&fru->ioc_notify, bfa_fru_notify, fru); fru 6307 drivers/scsi/bfa/bfa_ioc.c list_add_tail(&fru->ioc_notify.qe, &fru->ioc->notify_q); fru 6311 drivers/scsi/bfa/bfa_ioc.c fru->dbuf_kva = NULL; fru 6312 drivers/scsi/bfa/bfa_ioc.c fru->dbuf_pa = 0; fru 6325 drivers/scsi/bfa/bfa_ioc.c bfa_fru_memclaim(struct bfa_fru_s *fru, u8 *dm_kva, u64 dm_pa, fru 6331 drivers/scsi/bfa/bfa_ioc.c fru->dbuf_kva = dm_kva; fru 6332 drivers/scsi/bfa/bfa_ioc.c fru->dbuf_pa = dm_pa; fru 6333 drivers/scsi/bfa/bfa_ioc.c memset(fru->dbuf_kva, 0, BFA_FRU_DMA_BUF_SZ); fru 6351 drivers/scsi/bfa/bfa_ioc.c bfa_fruvpd_update(struct bfa_fru_s *fru, void *buf, u32 len, u32 offset, fru 6354 drivers/scsi/bfa/bfa_ioc.c bfa_trc(fru, BFI_FRUVPD_H2I_WRITE_REQ); fru 6355 drivers/scsi/bfa/bfa_ioc.c bfa_trc(fru, len); fru 6356 drivers/scsi/bfa/bfa_ioc.c bfa_trc(fru, offset); fru 6358 drivers/scsi/bfa/bfa_ioc.c if (fru->ioc->asic_gen != BFI_ASIC_GEN_CT2 && fru 6359 drivers/scsi/bfa/bfa_ioc.c fru->ioc->attr->card_type != BFA_MFG_TYPE_CHINOOK2) fru 6362 drivers/scsi/bfa/bfa_ioc.c if (fru->ioc->attr->card_type != BFA_MFG_TYPE_CHINOOK) fru 6365 drivers/scsi/bfa/bfa_ioc.c if (!bfa_ioc_is_operational(fru->ioc)) fru 6368 drivers/scsi/bfa/bfa_ioc.c if (fru->op_busy) { fru 6369 drivers/scsi/bfa/bfa_ioc.c bfa_trc(fru, fru->op_busy); fru 6373 drivers/scsi/bfa/bfa_ioc.c fru->op_busy = 1; fru 6375 drivers/scsi/bfa/bfa_ioc.c fru->cbfn = cbfn; fru 6376 drivers/scsi/bfa/bfa_ioc.c fru->cbarg = cbarg; fru 6377 drivers/scsi/bfa/bfa_ioc.c fru->residue = len; fru 6378 drivers/scsi/bfa/bfa_ioc.c fru->offset = 0; fru 6379 drivers/scsi/bfa/bfa_ioc.c fru->addr_off = offset; fru 6380 drivers/scsi/bfa/bfa_ioc.c fru->ubuf = buf; fru 6381 drivers/scsi/bfa/bfa_ioc.c fru->trfr_cmpl = trfr_cmpl; fru 6383 drivers/scsi/bfa/bfa_ioc.c bfa_fru_write_send(fru, BFI_FRUVPD_H2I_WRITE_REQ); fru 6401 drivers/scsi/bfa/bfa_ioc.c bfa_fruvpd_read(struct bfa_fru_s *fru, void *buf, u32 len, u32 offset, fru 6404 drivers/scsi/bfa/bfa_ioc.c bfa_trc(fru, BFI_FRUVPD_H2I_READ_REQ); fru 6405 drivers/scsi/bfa/bfa_ioc.c bfa_trc(fru, len); fru 6406 drivers/scsi/bfa/bfa_ioc.c bfa_trc(fru, offset); fru 6408 drivers/scsi/bfa/bfa_ioc.c if (fru->ioc->asic_gen != BFI_ASIC_GEN_CT2) fru 6411 drivers/scsi/bfa/bfa_ioc.c if (fru->ioc->attr->card_type != BFA_MFG_TYPE_CHINOOK && fru 6412 drivers/scsi/bfa/bfa_ioc.c fru->ioc->attr->card_type != BFA_MFG_TYPE_CHINOOK2) fru 6415 drivers/scsi/bfa/bfa_ioc.c if (!bfa_ioc_is_operational(fru->ioc)) fru 6418 drivers/scsi/bfa/bfa_ioc.c if (fru->op_busy) { fru 6419 drivers/scsi/bfa/bfa_ioc.c bfa_trc(fru, fru->op_busy); fru 6423 drivers/scsi/bfa/bfa_ioc.c fru->op_busy = 1; fru 6425 drivers/scsi/bfa/bfa_ioc.c fru->cbfn = cbfn; fru 6426 drivers/scsi/bfa/bfa_ioc.c fru->cbarg = cbarg; fru 6427 drivers/scsi/bfa/bfa_ioc.c fru->residue = len; fru 6428 drivers/scsi/bfa/bfa_ioc.c fru->offset = 0; fru 6429 drivers/scsi/bfa/bfa_ioc.c fru->addr_off = offset; fru 6430 drivers/scsi/bfa/bfa_ioc.c fru->ubuf = buf; fru 6431 drivers/scsi/bfa/bfa_ioc.c bfa_fru_read_send(fru, BFI_FRUVPD_H2I_READ_REQ); fru 6445 drivers/scsi/bfa/bfa_ioc.c bfa_fruvpd_get_max_size(struct bfa_fru_s *fru, u32 *max_size) fru 6447 drivers/scsi/bfa/bfa_ioc.c if (fru->ioc->asic_gen != BFI_ASIC_GEN_CT2) fru 6450 drivers/scsi/bfa/bfa_ioc.c if (!bfa_ioc_is_operational(fru->ioc)) fru 6453 drivers/scsi/bfa/bfa_ioc.c if (fru->ioc->attr->card_type == BFA_MFG_TYPE_CHINOOK || fru 6454 drivers/scsi/bfa/bfa_ioc.c fru->ioc->attr->card_type == BFA_MFG_TYPE_CHINOOK2) fru 6473 drivers/scsi/bfa/bfa_ioc.c bfa_tfru_write(struct bfa_fru_s *fru, void *buf, u32 len, u32 offset, fru 6476 drivers/scsi/bfa/bfa_ioc.c bfa_trc(fru, BFI_TFRU_H2I_WRITE_REQ); fru 6477 drivers/scsi/bfa/bfa_ioc.c bfa_trc(fru, len); fru 6478 drivers/scsi/bfa/bfa_ioc.c bfa_trc(fru, offset); fru 6479 drivers/scsi/bfa/bfa_ioc.c bfa_trc(fru, *((u8 *) buf)); fru 6481 drivers/scsi/bfa/bfa_ioc.c if (fru->ioc->asic_gen != BFI_ASIC_GEN_CT2) fru 6484 drivers/scsi/bfa/bfa_ioc.c if (!bfa_ioc_is_operational(fru->ioc)) fru 6487 drivers/scsi/bfa/bfa_ioc.c if (fru->op_busy) { fru 6488 drivers/scsi/bfa/bfa_ioc.c bfa_trc(fru, fru->op_busy); fru 6492 drivers/scsi/bfa/bfa_ioc.c fru->op_busy = 1; fru 6494 drivers/scsi/bfa/bfa_ioc.c fru->cbfn = cbfn; fru 6495 drivers/scsi/bfa/bfa_ioc.c fru->cbarg = cbarg; fru 6496 drivers/scsi/bfa/bfa_ioc.c fru->residue = len; fru 6497 drivers/scsi/bfa/bfa_ioc.c fru->offset = 0; fru 6498 drivers/scsi/bfa/bfa_ioc.c fru->addr_off = offset; fru 6499 drivers/scsi/bfa/bfa_ioc.c fru->ubuf = buf; fru 6501 drivers/scsi/bfa/bfa_ioc.c bfa_fru_write_send(fru, BFI_TFRU_H2I_WRITE_REQ); fru 6519 drivers/scsi/bfa/bfa_ioc.c bfa_tfru_read(struct bfa_fru_s *fru, void *buf, u32 len, u32 offset, fru 6522 drivers/scsi/bfa/bfa_ioc.c bfa_trc(fru, BFI_TFRU_H2I_READ_REQ); fru 6523 drivers/scsi/bfa/bfa_ioc.c bfa_trc(fru, len); fru 6524 drivers/scsi/bfa/bfa_ioc.c bfa_trc(fru, offset); fru 6526 drivers/scsi/bfa/bfa_ioc.c if (fru->ioc->asic_gen != BFI_ASIC_GEN_CT2) fru 6529 drivers/scsi/bfa/bfa_ioc.c if (!bfa_ioc_is_operational(fru->ioc)) fru 6532 drivers/scsi/bfa/bfa_ioc.c if (fru->op_busy) { fru 6533 drivers/scsi/bfa/bfa_ioc.c bfa_trc(fru, fru->op_busy); fru 6537 drivers/scsi/bfa/bfa_ioc.c fru->op_busy = 1; fru 6539 drivers/scsi/bfa/bfa_ioc.c fru->cbfn = cbfn; fru 6540 drivers/scsi/bfa/bfa_ioc.c fru->cbarg = cbarg; fru 6541 drivers/scsi/bfa/bfa_ioc.c fru->residue = len; fru 6542 drivers/scsi/bfa/bfa_ioc.c fru->offset = 0; fru 6543 drivers/scsi/bfa/bfa_ioc.c fru->addr_off = offset; fru 6544 drivers/scsi/bfa/bfa_ioc.c fru->ubuf = buf; fru 6545 drivers/scsi/bfa/bfa_ioc.c bfa_fru_read_send(fru, BFI_TFRU_H2I_READ_REQ); fru 6559 drivers/scsi/bfa/bfa_ioc.c struct bfa_fru_s *fru = fruarg; fru 6563 drivers/scsi/bfa/bfa_ioc.c bfa_trc(fru, msg->mh.msg_id); fru 6565 drivers/scsi/bfa/bfa_ioc.c if (!fru->op_busy) { fru 6569 drivers/scsi/bfa/bfa_ioc.c bfa_trc(fru, 0x9999); fru 6577 drivers/scsi/bfa/bfa_ioc.c bfa_trc(fru, status); fru 6579 drivers/scsi/bfa/bfa_ioc.c if (status != BFA_STATUS_OK || fru->residue == 0) { fru 6580 drivers/scsi/bfa/bfa_ioc.c fru->status = status; fru 6581 drivers/scsi/bfa/bfa_ioc.c fru->op_busy = 0; fru 6582 drivers/scsi/bfa/bfa_ioc.c if (fru->cbfn) fru 6583 drivers/scsi/bfa/bfa_ioc.c fru->cbfn(fru->cbarg, fru->status); fru 6585 drivers/scsi/bfa/bfa_ioc.c bfa_trc(fru, fru->offset); fru 6587 drivers/scsi/bfa/bfa_ioc.c bfa_fru_write_send(fru, fru 6590 drivers/scsi/bfa/bfa_ioc.c bfa_fru_write_send(fru, fru 6597 drivers/scsi/bfa/bfa_ioc.c bfa_trc(fru, status); fru 6600 drivers/scsi/bfa/bfa_ioc.c fru->status = status; fru 6601 drivers/scsi/bfa/bfa_ioc.c fru->op_busy = 0; fru 6602 drivers/scsi/bfa/bfa_ioc.c if (fru->cbfn) fru 6603 drivers/scsi/bfa/bfa_ioc.c fru->cbfn(fru->cbarg, fru->status); fru 6607 drivers/scsi/bfa/bfa_ioc.c bfa_trc(fru, fru->offset); fru 6608 drivers/scsi/bfa/bfa_ioc.c bfa_trc(fru, len); fru 6610 drivers/scsi/bfa/bfa_ioc.c memcpy(fru->ubuf + fru->offset, fru->dbuf_kva, len); fru 6611 drivers/scsi/bfa/bfa_ioc.c fru->residue -= len; fru 6612 drivers/scsi/bfa/bfa_ioc.c fru->offset += len; fru 6614 drivers/scsi/bfa/bfa_ioc.c if (fru->residue == 0) { fru 6615 drivers/scsi/bfa/bfa_ioc.c fru->status = status; fru 6616 drivers/scsi/bfa/bfa_ioc.c fru->op_busy = 0; fru 6617 drivers/scsi/bfa/bfa_ioc.c if (fru->cbfn) fru 6618 drivers/scsi/bfa/bfa_ioc.c fru->cbfn(fru->cbarg, fru->status); fru 6621 drivers/scsi/bfa/bfa_ioc.c bfa_fru_read_send(fru, fru 6624 drivers/scsi/bfa/bfa_ioc.c bfa_fru_read_send(fru, fru 736 drivers/scsi/bfa/bfa_ioc.h #define BFA_FRU(__bfa) (&(__bfa)->modules.fru) fru 739 drivers/scsi/bfa/bfa_ioc.h bfa_status_t bfa_fruvpd_update(struct bfa_fru_s *fru, fru 742 drivers/scsi/bfa/bfa_ioc.h bfa_status_t bfa_fruvpd_read(struct bfa_fru_s *fru, fru 745 drivers/scsi/bfa/bfa_ioc.h bfa_status_t bfa_fruvpd_get_max_size(struct bfa_fru_s *fru, u32 *max_size); fru 746 drivers/scsi/bfa/bfa_ioc.h bfa_status_t bfa_tfru_write(struct bfa_fru_s *fru, fru 749 drivers/scsi/bfa/bfa_ioc.h bfa_status_t bfa_tfru_read(struct bfa_fru_s *fru, fru 753 drivers/scsi/bfa/bfa_ioc.h void bfa_fru_attach(struct bfa_fru_s *fru, struct bfa_ioc_s *ioc, fru 755 drivers/scsi/bfa/bfa_ioc.h void bfa_fru_memclaim(struct bfa_fru_s *fru, fru 41 drivers/scsi/bfa/bfa_modules.h struct bfa_fru_s fru; /* fru module */