Lines Matching refs:phy

5320 bfa_phy_present(struct bfa_phy_s *phy)  in bfa_phy_present()  argument
5322 return (phy->ioc->attr->card_type == BFA_MFG_TYPE_LIGHTNING); in bfa_phy_present()
5328 struct bfa_phy_s *phy = cbarg; in bfa_phy_notify() local
5330 bfa_trc(phy, event); in bfa_phy_notify()
5335 if (phy->op_busy) { in bfa_phy_notify()
5336 phy->status = BFA_STATUS_IOC_FAILURE; in bfa_phy_notify()
5337 phy->cbfn(phy->cbarg, phy->status); in bfa_phy_notify()
5338 phy->op_busy = 0; in bfa_phy_notify()
5355 struct bfa_phy_s *phy = cbarg; in bfa_phy_query_send() local
5357 (struct bfi_phy_query_req_s *) phy->mb.msg; in bfa_phy_query_send()
5359 msg->instance = phy->instance; in bfa_phy_query_send()
5361 bfa_ioc_portid(phy->ioc)); in bfa_phy_query_send()
5362 bfa_alen_set(&msg->alen, sizeof(struct bfa_phy_attr_s), phy->dbuf_pa); in bfa_phy_query_send()
5363 bfa_ioc_mbox_queue(phy->ioc, &phy->mb); in bfa_phy_query_send()
5374 struct bfa_phy_s *phy = cbarg; in bfa_phy_write_send() local
5376 (struct bfi_phy_write_req_s *) phy->mb.msg; in bfa_phy_write_send()
5381 msg->instance = phy->instance; in bfa_phy_write_send()
5382 msg->offset = cpu_to_be32(phy->addr_off + phy->offset); in bfa_phy_write_send()
5383 len = (phy->residue < BFA_PHY_DMA_BUF_SZ) ? in bfa_phy_write_send()
5384 phy->residue : BFA_PHY_DMA_BUF_SZ; in bfa_phy_write_send()
5388 msg->last = (len == phy->residue) ? 1 : 0; in bfa_phy_write_send()
5391 bfa_ioc_portid(phy->ioc)); in bfa_phy_write_send()
5392 bfa_alen_set(&msg->alen, len, phy->dbuf_pa); in bfa_phy_write_send()
5394 buf = (u16 *) (phy->ubuf + phy->offset); in bfa_phy_write_send()
5395 dbuf = (u16 *)phy->dbuf_kva; in bfa_phy_write_send()
5400 bfa_ioc_mbox_queue(phy->ioc, &phy->mb); in bfa_phy_write_send()
5402 phy->residue -= len; in bfa_phy_write_send()
5403 phy->offset += len; in bfa_phy_write_send()
5414 struct bfa_phy_s *phy = cbarg; in bfa_phy_read_send() local
5416 (struct bfi_phy_read_req_s *) phy->mb.msg; in bfa_phy_read_send()
5419 msg->instance = phy->instance; in bfa_phy_read_send()
5420 msg->offset = cpu_to_be32(phy->addr_off + phy->offset); in bfa_phy_read_send()
5421 len = (phy->residue < BFA_PHY_DMA_BUF_SZ) ? in bfa_phy_read_send()
5422 phy->residue : BFA_PHY_DMA_BUF_SZ; in bfa_phy_read_send()
5425 bfa_ioc_portid(phy->ioc)); in bfa_phy_read_send()
5426 bfa_alen_set(&msg->alen, len, phy->dbuf_pa); in bfa_phy_read_send()
5427 bfa_ioc_mbox_queue(phy->ioc, &phy->mb); in bfa_phy_read_send()
5438 struct bfa_phy_s *phy = cbarg; in bfa_phy_stats_send() local
5440 (struct bfi_phy_stats_req_s *) phy->mb.msg; in bfa_phy_stats_send()
5442 msg->instance = phy->instance; in bfa_phy_stats_send()
5444 bfa_ioc_portid(phy->ioc)); in bfa_phy_stats_send()
5445 bfa_alen_set(&msg->alen, sizeof(struct bfa_phy_stats_s), phy->dbuf_pa); in bfa_phy_stats_send()
5446 bfa_ioc_mbox_queue(phy->ioc, &phy->mb); in bfa_phy_stats_send()
5474 bfa_phy_attach(struct bfa_phy_s *phy, struct bfa_ioc_s *ioc, void *dev, in bfa_phy_attach() argument
5477 phy->ioc = ioc; in bfa_phy_attach()
5478 phy->trcmod = trcmod; in bfa_phy_attach()
5479 phy->cbfn = NULL; in bfa_phy_attach()
5480 phy->cbarg = NULL; in bfa_phy_attach()
5481 phy->op_busy = 0; in bfa_phy_attach()
5483 bfa_ioc_mbox_regisr(phy->ioc, BFI_MC_PHY, bfa_phy_intr, phy); in bfa_phy_attach()
5484 bfa_q_qe_init(&phy->ioc_notify); in bfa_phy_attach()
5485 bfa_ioc_notify_init(&phy->ioc_notify, bfa_phy_notify, phy); in bfa_phy_attach()
5486 list_add_tail(&phy->ioc_notify.qe, &phy->ioc->notify_q); in bfa_phy_attach()
5490 phy->dbuf_kva = NULL; in bfa_phy_attach()
5491 phy->dbuf_pa = 0; in bfa_phy_attach()
5504 bfa_phy_memclaim(struct bfa_phy_s *phy, u8 *dm_kva, u64 dm_pa, in bfa_phy_memclaim() argument
5510 phy->dbuf_kva = dm_kva; in bfa_phy_memclaim()
5511 phy->dbuf_pa = dm_pa; in bfa_phy_memclaim()
5512 memset(phy->dbuf_kva, 0, BFA_PHY_DMA_BUF_SZ); in bfa_phy_memclaim()
5537 bfa_phy_get_attr(struct bfa_phy_s *phy, u8 instance, in bfa_phy_get_attr() argument
5540 bfa_trc(phy, BFI_PHY_H2I_QUERY_REQ); in bfa_phy_get_attr()
5541 bfa_trc(phy, instance); in bfa_phy_get_attr()
5543 if (!bfa_phy_present(phy)) in bfa_phy_get_attr()
5546 if (!bfa_ioc_is_operational(phy->ioc)) in bfa_phy_get_attr()
5549 if (phy->op_busy || bfa_phy_busy(phy->ioc)) { in bfa_phy_get_attr()
5550 bfa_trc(phy, phy->op_busy); in bfa_phy_get_attr()
5554 phy->op_busy = 1; in bfa_phy_get_attr()
5555 phy->cbfn = cbfn; in bfa_phy_get_attr()
5556 phy->cbarg = cbarg; in bfa_phy_get_attr()
5557 phy->instance = instance; in bfa_phy_get_attr()
5558 phy->ubuf = (uint8_t *) attr; in bfa_phy_get_attr()
5559 bfa_phy_query_send(phy); in bfa_phy_get_attr()
5576 bfa_phy_get_stats(struct bfa_phy_s *phy, u8 instance, in bfa_phy_get_stats() argument
5580 bfa_trc(phy, BFI_PHY_H2I_STATS_REQ); in bfa_phy_get_stats()
5581 bfa_trc(phy, instance); in bfa_phy_get_stats()
5583 if (!bfa_phy_present(phy)) in bfa_phy_get_stats()
5586 if (!bfa_ioc_is_operational(phy->ioc)) in bfa_phy_get_stats()
5589 if (phy->op_busy || bfa_phy_busy(phy->ioc)) { in bfa_phy_get_stats()
5590 bfa_trc(phy, phy->op_busy); in bfa_phy_get_stats()
5594 phy->op_busy = 1; in bfa_phy_get_stats()
5595 phy->cbfn = cbfn; in bfa_phy_get_stats()
5596 phy->cbarg = cbarg; in bfa_phy_get_stats()
5597 phy->instance = instance; in bfa_phy_get_stats()
5598 phy->ubuf = (u8 *) stats; in bfa_phy_get_stats()
5599 bfa_phy_stats_send(phy); in bfa_phy_get_stats()
5618 bfa_phy_update(struct bfa_phy_s *phy, u8 instance, in bfa_phy_update() argument
5622 bfa_trc(phy, BFI_PHY_H2I_WRITE_REQ); in bfa_phy_update()
5623 bfa_trc(phy, instance); in bfa_phy_update()
5624 bfa_trc(phy, len); in bfa_phy_update()
5625 bfa_trc(phy, offset); in bfa_phy_update()
5627 if (!bfa_phy_present(phy)) in bfa_phy_update()
5630 if (!bfa_ioc_is_operational(phy->ioc)) in bfa_phy_update()
5637 if (phy->op_busy || bfa_phy_busy(phy->ioc)) { in bfa_phy_update()
5638 bfa_trc(phy, phy->op_busy); in bfa_phy_update()
5642 phy->op_busy = 1; in bfa_phy_update()
5643 phy->cbfn = cbfn; in bfa_phy_update()
5644 phy->cbarg = cbarg; in bfa_phy_update()
5645 phy->instance = instance; in bfa_phy_update()
5646 phy->residue = len; in bfa_phy_update()
5647 phy->offset = 0; in bfa_phy_update()
5648 phy->addr_off = offset; in bfa_phy_update()
5649 phy->ubuf = buf; in bfa_phy_update()
5651 bfa_phy_write_send(phy); in bfa_phy_update()
5669 bfa_phy_read(struct bfa_phy_s *phy, u8 instance, in bfa_phy_read() argument
5673 bfa_trc(phy, BFI_PHY_H2I_READ_REQ); in bfa_phy_read()
5674 bfa_trc(phy, instance); in bfa_phy_read()
5675 bfa_trc(phy, len); in bfa_phy_read()
5676 bfa_trc(phy, offset); in bfa_phy_read()
5678 if (!bfa_phy_present(phy)) in bfa_phy_read()
5681 if (!bfa_ioc_is_operational(phy->ioc)) in bfa_phy_read()
5688 if (phy->op_busy || bfa_phy_busy(phy->ioc)) { in bfa_phy_read()
5689 bfa_trc(phy, phy->op_busy); in bfa_phy_read()
5693 phy->op_busy = 1; in bfa_phy_read()
5694 phy->cbfn = cbfn; in bfa_phy_read()
5695 phy->cbarg = cbarg; in bfa_phy_read()
5696 phy->instance = instance; in bfa_phy_read()
5697 phy->residue = len; in bfa_phy_read()
5698 phy->offset = 0; in bfa_phy_read()
5699 phy->addr_off = offset; in bfa_phy_read()
5700 phy->ubuf = buf; in bfa_phy_read()
5701 bfa_phy_read_send(phy); in bfa_phy_read()
5715 struct bfa_phy_s *phy = phyarg; in bfa_phy_intr() local
5727 bfa_trc(phy, msg->mh.msg_id); in bfa_phy_intr()
5729 if (!phy->op_busy) { in bfa_phy_intr()
5731 bfa_trc(phy, 0x9999); in bfa_phy_intr()
5738 bfa_trc(phy, status); in bfa_phy_intr()
5742 (struct bfa_phy_attr_s *) phy->ubuf; in bfa_phy_intr()
5743 bfa_phy_ntoh32((u32 *)attr, (u32 *)phy->dbuf_kva, in bfa_phy_intr()
5745 bfa_trc(phy, attr->status); in bfa_phy_intr()
5746 bfa_trc(phy, attr->length); in bfa_phy_intr()
5749 phy->status = status; in bfa_phy_intr()
5750 phy->op_busy = 0; in bfa_phy_intr()
5751 if (phy->cbfn) in bfa_phy_intr()
5752 phy->cbfn(phy->cbarg, phy->status); in bfa_phy_intr()
5756 bfa_trc(phy, status); in bfa_phy_intr()
5760 (struct bfa_phy_stats_s *) phy->ubuf; in bfa_phy_intr()
5761 bfa_phy_ntoh32((u32 *)stats, (u32 *)phy->dbuf_kva, in bfa_phy_intr()
5763 bfa_trc(phy, stats->status); in bfa_phy_intr()
5766 phy->status = status; in bfa_phy_intr()
5767 phy->op_busy = 0; in bfa_phy_intr()
5768 if (phy->cbfn) in bfa_phy_intr()
5769 phy->cbfn(phy->cbarg, phy->status); in bfa_phy_intr()
5773 bfa_trc(phy, status); in bfa_phy_intr()
5775 if (status != BFA_STATUS_OK || phy->residue == 0) { in bfa_phy_intr()
5776 phy->status = status; in bfa_phy_intr()
5777 phy->op_busy = 0; in bfa_phy_intr()
5778 if (phy->cbfn) in bfa_phy_intr()
5779 phy->cbfn(phy->cbarg, phy->status); in bfa_phy_intr()
5781 bfa_trc(phy, phy->offset); in bfa_phy_intr()
5782 bfa_phy_write_send(phy); in bfa_phy_intr()
5787 bfa_trc(phy, status); in bfa_phy_intr()
5790 phy->status = status; in bfa_phy_intr()
5791 phy->op_busy = 0; in bfa_phy_intr()
5792 if (phy->cbfn) in bfa_phy_intr()
5793 phy->cbfn(phy->cbarg, phy->status); in bfa_phy_intr()
5796 u16 *buf = (u16 *)(phy->ubuf + phy->offset); in bfa_phy_intr()
5797 u16 *dbuf = (u16 *)phy->dbuf_kva; in bfa_phy_intr()
5800 bfa_trc(phy, phy->offset); in bfa_phy_intr()
5801 bfa_trc(phy, len); in bfa_phy_intr()
5806 phy->residue -= len; in bfa_phy_intr()
5807 phy->offset += len; in bfa_phy_intr()
5809 if (phy->residue == 0) { in bfa_phy_intr()
5810 phy->status = status; in bfa_phy_intr()
5811 phy->op_busy = 0; in bfa_phy_intr()
5812 if (phy->cbfn) in bfa_phy_intr()
5813 phy->cbfn(phy->cbarg, phy->status); in bfa_phy_intr()
5815 bfa_phy_read_send(phy); in bfa_phy_intr()