Lines Matching refs:diag
4727 struct bfa_diag_s *diag = diag_arg; in bfa_diag_notify() local
4729 bfa_trc(diag, event); in bfa_diag_notify()
4730 bfa_trc(diag, diag->block); in bfa_diag_notify()
4731 bfa_trc(diag, diag->fwping.lock); in bfa_diag_notify()
4732 bfa_trc(diag, diag->tsensor.lock); in bfa_diag_notify()
4737 if (diag->fwping.lock) { in bfa_diag_notify()
4738 diag->fwping.status = BFA_STATUS_IOC_FAILURE; in bfa_diag_notify()
4739 diag->fwping.cbfn(diag->fwping.cbarg, in bfa_diag_notify()
4740 diag->fwping.status); in bfa_diag_notify()
4741 diag->fwping.lock = 0; in bfa_diag_notify()
4744 if (diag->tsensor.lock) { in bfa_diag_notify()
4745 diag->tsensor.status = BFA_STATUS_IOC_FAILURE; in bfa_diag_notify()
4746 diag->tsensor.cbfn(diag->tsensor.cbarg, in bfa_diag_notify()
4747 diag->tsensor.status); in bfa_diag_notify()
4748 diag->tsensor.lock = 0; in bfa_diag_notify()
4751 if (diag->block) { in bfa_diag_notify()
4752 if (diag->timer_active) { in bfa_diag_notify()
4753 bfa_timer_stop(&diag->timer); in bfa_diag_notify()
4754 diag->timer_active = 0; in bfa_diag_notify()
4757 diag->status = BFA_STATUS_IOC_FAILURE; in bfa_diag_notify()
4758 diag->cbfn(diag->cbarg, diag->status); in bfa_diag_notify()
4759 diag->block = 0; in bfa_diag_notify()
4771 struct bfa_diag_s *diag = cbarg; in bfa_diag_memtest_done() local
4772 struct bfa_ioc_s *ioc = diag->ioc; in bfa_diag_memtest_done()
4773 struct bfa_diag_memtest_result *res = diag->result; in bfa_diag_memtest_done()
4794 bfa_trc(diag, res->status); in bfa_diag_memtest_done()
4797 diag->status = BFA_STATUS_OK; in bfa_diag_memtest_done()
4799 diag->status = BFA_STATUS_MEMTEST_FAILED; in bfa_diag_memtest_done()
4806 bfa_trc(diag, res->addr); in bfa_diag_memtest_done()
4807 bfa_trc(diag, res->exp); in bfa_diag_memtest_done()
4808 bfa_trc(diag, res->act); in bfa_diag_memtest_done()
4809 bfa_trc(diag, res->err_status); in bfa_diag_memtest_done()
4810 bfa_trc(diag, res->err_status1); in bfa_diag_memtest_done()
4811 bfa_trc(diag, res->err_addr); in bfa_diag_memtest_done()
4813 diag->timer_active = 0; in bfa_diag_memtest_done()
4814 diag->cbfn(diag->cbarg, diag->status); in bfa_diag_memtest_done()
4815 diag->block = 0; in bfa_diag_memtest_done()
4826 diag_fwping_send(struct bfa_diag_s *diag) in diag_fwping_send() argument
4831 bfa_trc(diag, diag->fwping.dbuf_pa); in diag_fwping_send()
4835 *((u32 *)diag->fwping.dbuf_kva + i) = diag->fwping.data; in diag_fwping_send()
4838 fwping_req = (struct bfi_diag_fwping_req_s *)diag->fwping.mbcmd.msg; in diag_fwping_send()
4842 diag->fwping.dbuf_pa); in diag_fwping_send()
4844 fwping_req->count = cpu_to_be32(diag->fwping.count); in diag_fwping_send()
4846 fwping_req->data = diag->fwping.data; in diag_fwping_send()
4850 bfa_ioc_portid(diag->ioc)); in diag_fwping_send()
4853 bfa_ioc_mbox_queue(diag->ioc, &diag->fwping.mbcmd); in diag_fwping_send()
4857 diag_fwping_comp(struct bfa_diag_s *diag, in diag_fwping_comp() argument
4863 bfa_trc(diag, rsp_data); in diag_fwping_comp()
4864 bfa_trc(diag, rsp_dma_status); in diag_fwping_comp()
4868 pat = (diag->fwping.count & 0x1) ? ~(diag->fwping.data) : in diag_fwping_comp()
4869 diag->fwping.data; in diag_fwping_comp()
4871 if (diag->fwping.data != rsp_data) { in diag_fwping_comp()
4872 bfa_trc(diag, rsp_data); in diag_fwping_comp()
4873 diag->fwping.result->dmastatus = in diag_fwping_comp()
4875 diag->fwping.status = BFA_STATUS_DATACORRUPTED; in diag_fwping_comp()
4876 diag->fwping.cbfn(diag->fwping.cbarg, in diag_fwping_comp()
4877 diag->fwping.status); in diag_fwping_comp()
4878 diag->fwping.lock = 0; in diag_fwping_comp()
4883 if (*((u32 *)diag->fwping.dbuf_kva + i) != pat) { in diag_fwping_comp()
4884 bfa_trc(diag, i); in diag_fwping_comp()
4885 bfa_trc(diag, pat); in diag_fwping_comp()
4886 bfa_trc(diag, in diag_fwping_comp()
4887 *((u32 *)diag->fwping.dbuf_kva + i)); in diag_fwping_comp()
4888 diag->fwping.result->dmastatus = in diag_fwping_comp()
4890 diag->fwping.status = BFA_STATUS_DATACORRUPTED; in diag_fwping_comp()
4891 diag->fwping.cbfn(diag->fwping.cbarg, in diag_fwping_comp()
4892 diag->fwping.status); in diag_fwping_comp()
4893 diag->fwping.lock = 0; in diag_fwping_comp()
4897 diag->fwping.result->dmastatus = BFA_STATUS_OK; in diag_fwping_comp()
4898 diag->fwping.status = BFA_STATUS_OK; in diag_fwping_comp()
4899 diag->fwping.cbfn(diag->fwping.cbarg, diag->fwping.status); in diag_fwping_comp()
4900 diag->fwping.lock = 0; in diag_fwping_comp()
4902 diag->fwping.status = BFA_STATUS_HDMA_FAILED; in diag_fwping_comp()
4903 diag->fwping.cbfn(diag->fwping.cbarg, diag->fwping.status); in diag_fwping_comp()
4904 diag->fwping.lock = 0; in diag_fwping_comp()
4913 diag_tempsensor_send(struct bfa_diag_s *diag) in diag_tempsensor_send() argument
4917 msg = (struct bfi_diag_ts_req_s *)diag->tsensor.mbcmd.msg; in diag_tempsensor_send()
4918 bfa_trc(diag, msg->temp); in diag_tempsensor_send()
4921 bfa_ioc_portid(diag->ioc)); in diag_tempsensor_send()
4923 bfa_ioc_mbox_queue(diag->ioc, &diag->tsensor.mbcmd); in diag_tempsensor_send()
4927 diag_tempsensor_comp(struct bfa_diag_s *diag, bfi_diag_ts_rsp_t *rsp) in diag_tempsensor_comp() argument
4929 if (!diag->tsensor.lock) { in diag_tempsensor_comp()
4931 bfa_trc(diag, diag->tsensor.lock); in diag_tempsensor_comp()
4939 diag->tsensor.temp->temp = be16_to_cpu(rsp->temp); in diag_tempsensor_comp()
4940 diag->tsensor.temp->ts_junc = rsp->ts_junc; in diag_tempsensor_comp()
4941 diag->tsensor.temp->ts_brd = rsp->ts_brd; in diag_tempsensor_comp()
4945 diag->tsensor.temp->status = rsp->status; in diag_tempsensor_comp()
4947 diag->tsensor.temp->brd_temp = in diag_tempsensor_comp()
4950 diag->tsensor.temp->brd_temp = 0; in diag_tempsensor_comp()
4953 bfa_trc(diag, rsp->status); in diag_tempsensor_comp()
4954 bfa_trc(diag, rsp->ts_junc); in diag_tempsensor_comp()
4955 bfa_trc(diag, rsp->temp); in diag_tempsensor_comp()
4956 bfa_trc(diag, rsp->ts_brd); in diag_tempsensor_comp()
4957 bfa_trc(diag, rsp->brd_temp); in diag_tempsensor_comp()
4960 diag->tsensor.status = BFA_STATUS_OK; in diag_tempsensor_comp()
4961 diag->tsensor.cbfn(diag->tsensor.cbarg, diag->tsensor.status); in diag_tempsensor_comp()
4962 diag->tsensor.lock = 0; in diag_tempsensor_comp()
4969 diag_ledtest_send(struct bfa_diag_s *diag, struct bfa_diag_ledtest_s *ledtest) in diag_ledtest_send() argument
4973 msg = (struct bfi_diag_ledtest_req_s *)diag->ledtest.mbcmd.msg; in diag_ledtest_send()
4976 bfa_ioc_portid(diag->ioc)); in diag_ledtest_send()
4988 bfa_trc(diag, ledtest->freq); in diag_ledtest_send()
4992 msg->portid = bfa_ioc_portid(diag->ioc); in diag_ledtest_send()
4997 bfa_ioc_mbox_queue(diag->ioc, &diag->ledtest.mbcmd); in diag_ledtest_send()
5001 diag_ledtest_comp(struct bfa_diag_s *diag, struct bfi_diag_ledtest_rsp_s *msg) in diag_ledtest_comp() argument
5003 bfa_trc(diag, diag->ledtest.lock); in diag_ledtest_comp()
5004 diag->ledtest.lock = BFA_FALSE; in diag_ledtest_comp()
5012 diag_portbeacon_send(struct bfa_diag_s *diag, bfa_boolean_t beacon, u32 sec) in diag_portbeacon_send() argument
5016 msg = (struct bfi_diag_portbeacon_req_s *)diag->beacon.mbcmd.msg; in diag_portbeacon_send()
5019 bfa_ioc_portid(diag->ioc)); in diag_portbeacon_send()
5023 bfa_ioc_mbox_queue(diag->ioc, &diag->beacon.mbcmd); in diag_portbeacon_send()
5027 diag_portbeacon_comp(struct bfa_diag_s *diag) in diag_portbeacon_comp() argument
5029 bfa_trc(diag, diag->beacon.state); in diag_portbeacon_comp()
5030 diag->beacon.state = BFA_FALSE; in diag_portbeacon_comp()
5031 if (diag->cbfn_beacon) in diag_portbeacon_comp()
5032 diag->cbfn_beacon(diag->dev, BFA_FALSE, diag->beacon.link_e2e); in diag_portbeacon_comp()
5041 struct bfa_diag_s *diag = diagarg; in bfa_diag_intr() local
5045 diag_portbeacon_comp(diag); in bfa_diag_intr()
5048 diag_fwping_comp(diag, (struct bfi_diag_fwping_rsp_s *) msg); in bfa_diag_intr()
5051 diag_tempsensor_comp(diag, (bfi_diag_ts_rsp_t *) msg); in bfa_diag_intr()
5054 diag_ledtest_comp(diag, (struct bfi_diag_ledtest_rsp_s *) msg); in bfa_diag_intr()
5057 bfa_trc(diag, msg->mh.msg_id); in bfa_diag_intr()
5075 bfa_diag_memtest(struct bfa_diag_s *diag, struct bfa_diag_memtest_s *memtest, in bfa_diag_memtest() argument
5081 bfa_trc(diag, pattern); in bfa_diag_memtest()
5083 if (!bfa_ioc_adapter_is_disabled(diag->ioc)) in bfa_diag_memtest()
5087 if (diag->block) { in bfa_diag_memtest()
5088 bfa_trc(diag, diag->block); in bfa_diag_memtest()
5091 diag->block = 1; in bfa_diag_memtest()
5093 diag->result = result; in bfa_diag_memtest()
5094 diag->cbfn = cbfn; in bfa_diag_memtest()
5095 diag->cbarg = cbarg; in bfa_diag_memtest()
5098 bfa_ioc_boot(diag->ioc, BFI_FWBOOT_TYPE_MEMTEST, BFI_FWBOOT_ENV_OS); in bfa_diag_memtest()
5100 memtest_tov = (bfa_ioc_asic_gen(diag->ioc) == BFI_ASIC_GEN_CT2) ? in bfa_diag_memtest()
5102 bfa_timer_begin(diag->ioc->timer_mod, &diag->timer, in bfa_diag_memtest()
5103 bfa_diag_memtest_done, diag, memtest_tov); in bfa_diag_memtest()
5104 diag->timer_active = 1; in bfa_diag_memtest()
5121 bfa_diag_fwping(struct bfa_diag_s *diag, u32 cnt, u32 data, in bfa_diag_fwping() argument
5125 bfa_trc(diag, cnt); in bfa_diag_fwping()
5126 bfa_trc(diag, data); in bfa_diag_fwping()
5128 if (!bfa_ioc_is_operational(diag->ioc)) in bfa_diag_fwping()
5131 if (bfa_asic_id_ct2(bfa_ioc_devid((diag->ioc))) && in bfa_diag_fwping()
5132 ((diag->ioc)->clscode == BFI_PCIFN_CLASS_ETH)) in bfa_diag_fwping()
5136 if (diag->block || diag->fwping.lock) { in bfa_diag_fwping()
5137 bfa_trc(diag, diag->block); in bfa_diag_fwping()
5138 bfa_trc(diag, diag->fwping.lock); in bfa_diag_fwping()
5143 diag->fwping.lock = 1; in bfa_diag_fwping()
5144 diag->fwping.cbfn = cbfn; in bfa_diag_fwping()
5145 diag->fwping.cbarg = cbarg; in bfa_diag_fwping()
5146 diag->fwping.result = result; in bfa_diag_fwping()
5147 diag->fwping.data = data; in bfa_diag_fwping()
5148 diag->fwping.count = cnt; in bfa_diag_fwping()
5151 diag->fwping.result->data = 0; in bfa_diag_fwping()
5152 diag->fwping.result->status = BFA_STATUS_OK; in bfa_diag_fwping()
5155 diag_fwping_send(diag); in bfa_diag_fwping()
5170 bfa_diag_tsensor_query(struct bfa_diag_s *diag, in bfa_diag_tsensor_query() argument
5175 if (diag->block || diag->tsensor.lock) { in bfa_diag_tsensor_query()
5176 bfa_trc(diag, diag->block); in bfa_diag_tsensor_query()
5177 bfa_trc(diag, diag->tsensor.lock); in bfa_diag_tsensor_query()
5181 if (!bfa_ioc_is_operational(diag->ioc)) in bfa_diag_tsensor_query()
5185 diag->tsensor.lock = 1; in bfa_diag_tsensor_query()
5186 diag->tsensor.temp = result; in bfa_diag_tsensor_query()
5187 diag->tsensor.cbfn = cbfn; in bfa_diag_tsensor_query()
5188 diag->tsensor.cbarg = cbarg; in bfa_diag_tsensor_query()
5189 diag->tsensor.status = BFA_STATUS_OK; in bfa_diag_tsensor_query()
5192 diag_tempsensor_send(diag); in bfa_diag_tsensor_query()
5206 bfa_diag_ledtest(struct bfa_diag_s *diag, struct bfa_diag_ledtest_s *ledtest) in bfa_diag_ledtest() argument
5208 bfa_trc(diag, ledtest->cmd); in bfa_diag_ledtest()
5210 if (!bfa_ioc_is_operational(diag->ioc)) in bfa_diag_ledtest()
5213 if (diag->beacon.state) in bfa_diag_ledtest()
5216 if (diag->ledtest.lock) in bfa_diag_ledtest()
5220 diag->ledtest.lock = BFA_TRUE; in bfa_diag_ledtest()
5221 diag_ledtest_send(diag, ledtest); in bfa_diag_ledtest()
5237 bfa_diag_beacon_port(struct bfa_diag_s *diag, bfa_boolean_t beacon, in bfa_diag_beacon_port() argument
5240 bfa_trc(diag, beacon); in bfa_diag_beacon_port()
5241 bfa_trc(diag, link_e2e_beacon); in bfa_diag_beacon_port()
5242 bfa_trc(diag, sec); in bfa_diag_beacon_port()
5244 if (!bfa_ioc_is_operational(diag->ioc)) in bfa_diag_beacon_port()
5247 if (diag->ledtest.lock) in bfa_diag_beacon_port()
5250 if (diag->beacon.state && beacon) /* beacon alread on */ in bfa_diag_beacon_port()
5253 diag->beacon.state = beacon; in bfa_diag_beacon_port()
5254 diag->beacon.link_e2e = link_e2e_beacon; in bfa_diag_beacon_port()
5255 if (diag->cbfn_beacon) in bfa_diag_beacon_port()
5256 diag->cbfn_beacon(diag->dev, beacon, link_e2e_beacon); in bfa_diag_beacon_port()
5259 diag_portbeacon_send(diag, beacon, sec); in bfa_diag_beacon_port()
5277 bfa_diag_attach(struct bfa_diag_s *diag, struct bfa_ioc_s *ioc, void *dev, in bfa_diag_attach() argument
5280 diag->dev = dev; in bfa_diag_attach()
5281 diag->ioc = ioc; in bfa_diag_attach()
5282 diag->trcmod = trcmod; in bfa_diag_attach()
5284 diag->block = 0; in bfa_diag_attach()
5285 diag->cbfn = NULL; in bfa_diag_attach()
5286 diag->cbarg = NULL; in bfa_diag_attach()
5287 diag->result = NULL; in bfa_diag_attach()
5288 diag->cbfn_beacon = cbfn_beacon; in bfa_diag_attach()
5290 bfa_ioc_mbox_regisr(diag->ioc, BFI_MC_DIAG, bfa_diag_intr, diag); in bfa_diag_attach()
5291 bfa_q_qe_init(&diag->ioc_notify); in bfa_diag_attach()
5292 bfa_ioc_notify_init(&diag->ioc_notify, bfa_diag_notify, diag); in bfa_diag_attach()
5293 list_add_tail(&diag->ioc_notify.qe, &diag->ioc->notify_q); in bfa_diag_attach()
5297 bfa_diag_memclaim(struct bfa_diag_s *diag, u8 *dm_kva, u64 dm_pa) in bfa_diag_memclaim() argument
5299 diag->fwping.dbuf_kva = dm_kva; in bfa_diag_memclaim()
5300 diag->fwping.dbuf_pa = dm_pa; in bfa_diag_memclaim()
5301 memset(diag->fwping.dbuf_kva, 0, BFI_DIAG_DMA_BUF_SZ); in bfa_diag_memclaim()