Lines Matching refs:port
28 bfa_port_stats_swap(struct bfa_port_s *port, union bfa_port_stats_u *stats) in bfa_port_stats_swap() argument
58 bfa_port_enable_isr(struct bfa_port_s *port, bfa_status_t status) in bfa_port_enable_isr() argument
60 bfa_trc(port, status); in bfa_port_enable_isr()
61 port->endis_pending = BFA_FALSE; in bfa_port_enable_isr()
62 port->endis_cbfn(port->endis_cbarg, status); in bfa_port_enable_isr()
75 bfa_port_disable_isr(struct bfa_port_s *port, bfa_status_t status) in bfa_port_disable_isr() argument
77 bfa_trc(port, status); in bfa_port_disable_isr()
78 port->endis_pending = BFA_FALSE; in bfa_port_disable_isr()
79 port->endis_cbfn(port->endis_cbarg, status); in bfa_port_disable_isr()
92 bfa_port_get_stats_isr(struct bfa_port_s *port, bfa_status_t status) in bfa_port_get_stats_isr() argument
94 port->stats_status = status; in bfa_port_get_stats_isr()
95 port->stats_busy = BFA_FALSE; in bfa_port_get_stats_isr()
100 memcpy(port->stats, port->stats_dma.kva, in bfa_port_get_stats_isr()
102 bfa_port_stats_swap(port, port->stats); in bfa_port_get_stats_isr()
105 port->stats->fc.secs_reset = tv.tv_sec - port->stats_reset_time; in bfa_port_get_stats_isr()
108 if (port->stats_cbfn) { in bfa_port_get_stats_isr()
109 port->stats_cbfn(port->stats_cbarg, status); in bfa_port_get_stats_isr()
110 port->stats_cbfn = NULL; in bfa_port_get_stats_isr()
124 bfa_port_clear_stats_isr(struct bfa_port_s *port, bfa_status_t status) in bfa_port_clear_stats_isr() argument
128 port->stats_status = status; in bfa_port_clear_stats_isr()
129 port->stats_busy = BFA_FALSE; in bfa_port_clear_stats_isr()
135 port->stats_reset_time = tv.tv_sec; in bfa_port_clear_stats_isr()
137 if (port->stats_cbfn) { in bfa_port_clear_stats_isr()
138 port->stats_cbfn(port->stats_cbarg, status); in bfa_port_clear_stats_isr()
139 port->stats_cbfn = NULL; in bfa_port_clear_stats_isr()
154 struct bfa_port_s *port = (struct bfa_port_s *) cbarg; in bfa_port_isr() local
158 bfa_trc(port, m->mh.msg_id); in bfa_port_isr()
162 if (port->endis_pending == BFA_FALSE) in bfa_port_isr()
164 bfa_port_enable_isr(port, i2hmsg->enable_rsp.status); in bfa_port_isr()
168 if (port->endis_pending == BFA_FALSE) in bfa_port_isr()
170 bfa_port_disable_isr(port, i2hmsg->disable_rsp.status); in bfa_port_isr()
175 if (port->stats_busy == BFA_FALSE) in bfa_port_isr()
177 bfa_port_get_stats_isr(port, i2hmsg->getstats_rsp.status); in bfa_port_isr()
181 if (port->stats_busy == BFA_FALSE) in bfa_port_isr()
183 bfa_port_clear_stats_isr(port, i2hmsg->clearstats_rsp.status); in bfa_port_isr()
216 bfa_port_mem_claim(struct bfa_port_s *port, u8 *dma_kva, u64 dma_pa) in bfa_port_mem_claim() argument
218 port->stats_dma.kva = dma_kva; in bfa_port_mem_claim()
219 port->stats_dma.pa = dma_pa; in bfa_port_mem_claim()
232 bfa_port_enable(struct bfa_port_s *port, bfa_port_endis_cbfn_t cbfn, in bfa_port_enable() argument
238 if (port->pbc_disabled) { in bfa_port_enable()
239 bfa_trc(port, BFA_STATUS_PBC); in bfa_port_enable()
243 if (bfa_ioc_is_disabled(port->ioc)) { in bfa_port_enable()
244 bfa_trc(port, BFA_STATUS_IOC_DISABLED); in bfa_port_enable()
248 if (!bfa_ioc_is_operational(port->ioc)) { in bfa_port_enable()
249 bfa_trc(port, BFA_STATUS_IOC_FAILURE); in bfa_port_enable()
254 if (port->dport_enabled) { in bfa_port_enable()
255 bfa_trc(port, BFA_STATUS_DPORT_ERR); in bfa_port_enable()
259 if (port->endis_pending) { in bfa_port_enable()
260 bfa_trc(port, BFA_STATUS_DEVBUSY); in bfa_port_enable()
264 m = (struct bfi_port_generic_req_s *) port->endis_mb.msg; in bfa_port_enable()
266 port->msgtag++; in bfa_port_enable()
267 port->endis_cbfn = cbfn; in bfa_port_enable()
268 port->endis_cbarg = cbarg; in bfa_port_enable()
269 port->endis_pending = BFA_TRUE; in bfa_port_enable()
272 bfa_ioc_portid(port->ioc)); in bfa_port_enable()
273 bfa_ioc_mbox_queue(port->ioc, &port->endis_mb); in bfa_port_enable()
288 bfa_port_disable(struct bfa_port_s *port, bfa_port_endis_cbfn_t cbfn, in bfa_port_disable() argument
294 if (port->pbc_disabled) { in bfa_port_disable()
295 bfa_trc(port, BFA_STATUS_PBC); in bfa_port_disable()
299 if (bfa_ioc_is_disabled(port->ioc)) { in bfa_port_disable()
300 bfa_trc(port, BFA_STATUS_IOC_DISABLED); in bfa_port_disable()
304 if (!bfa_ioc_is_operational(port->ioc)) { in bfa_port_disable()
305 bfa_trc(port, BFA_STATUS_IOC_FAILURE); in bfa_port_disable()
310 if (port->dport_enabled) { in bfa_port_disable()
311 bfa_trc(port, BFA_STATUS_DPORT_ERR); in bfa_port_disable()
315 if (port->endis_pending) { in bfa_port_disable()
316 bfa_trc(port, BFA_STATUS_DEVBUSY); in bfa_port_disable()
320 m = (struct bfi_port_generic_req_s *) port->endis_mb.msg; in bfa_port_disable()
322 port->msgtag++; in bfa_port_disable()
323 port->endis_cbfn = cbfn; in bfa_port_disable()
324 port->endis_cbarg = cbarg; in bfa_port_disable()
325 port->endis_pending = BFA_TRUE; in bfa_port_disable()
328 bfa_ioc_portid(port->ioc)); in bfa_port_disable()
329 bfa_ioc_mbox_queue(port->ioc, &port->endis_mb); in bfa_port_disable()
344 bfa_port_get_stats(struct bfa_port_s *port, union bfa_port_stats_u *stats, in bfa_port_get_stats() argument
349 if (!bfa_ioc_is_operational(port->ioc)) { in bfa_port_get_stats()
350 bfa_trc(port, BFA_STATUS_IOC_FAILURE); in bfa_port_get_stats()
354 if (port->stats_busy) { in bfa_port_get_stats()
355 bfa_trc(port, BFA_STATUS_DEVBUSY); in bfa_port_get_stats()
359 m = (struct bfi_port_get_stats_req_s *) port->stats_mb.msg; in bfa_port_get_stats()
361 port->stats = stats; in bfa_port_get_stats()
362 port->stats_cbfn = cbfn; in bfa_port_get_stats()
363 port->stats_cbarg = cbarg; in bfa_port_get_stats()
364 port->stats_busy = BFA_TRUE; in bfa_port_get_stats()
365 bfa_dma_be_addr_set(m->dma_addr, port->stats_dma.pa); in bfa_port_get_stats()
368 bfa_ioc_portid(port->ioc)); in bfa_port_get_stats()
369 bfa_ioc_mbox_queue(port->ioc, &port->stats_mb); in bfa_port_get_stats()
383 bfa_port_clear_stats(struct bfa_port_s *port, bfa_port_stats_cbfn_t cbfn, in bfa_port_clear_stats() argument
388 if (!bfa_ioc_is_operational(port->ioc)) { in bfa_port_clear_stats()
389 bfa_trc(port, BFA_STATUS_IOC_FAILURE); in bfa_port_clear_stats()
393 if (port->stats_busy) { in bfa_port_clear_stats()
394 bfa_trc(port, BFA_STATUS_DEVBUSY); in bfa_port_clear_stats()
398 m = (struct bfi_port_generic_req_s *) port->stats_mb.msg; in bfa_port_clear_stats()
400 port->stats_cbfn = cbfn; in bfa_port_clear_stats()
401 port->stats_cbarg = cbarg; in bfa_port_clear_stats()
402 port->stats_busy = BFA_TRUE; in bfa_port_clear_stats()
405 bfa_ioc_portid(port->ioc)); in bfa_port_clear_stats()
406 bfa_ioc_mbox_queue(port->ioc, &port->stats_mb); in bfa_port_clear_stats()
424 struct bfa_port_s *port = (struct bfa_port_s *) arg; in bfa_port_notify() local
430 if (port->stats_busy) { in bfa_port_notify()
431 if (port->stats_cbfn) in bfa_port_notify()
432 port->stats_cbfn(port->stats_cbarg, in bfa_port_notify()
434 port->stats_cbfn = NULL; in bfa_port_notify()
435 port->stats_busy = BFA_FALSE; in bfa_port_notify()
439 if (port->endis_pending) { in bfa_port_notify()
440 if (port->endis_cbfn) in bfa_port_notify()
441 port->endis_cbfn(port->endis_cbarg, in bfa_port_notify()
443 port->endis_cbfn = NULL; in bfa_port_notify()
444 port->endis_pending = BFA_FALSE; in bfa_port_notify()
448 if (port->dport_enabled) in bfa_port_notify()
449 bfa_port_set_dportenabled(port, BFA_FALSE); in bfa_port_notify()
470 bfa_port_attach(struct bfa_port_s *port, struct bfa_ioc_s *ioc, in bfa_port_attach() argument
475 WARN_ON(!port); in bfa_port_attach()
477 port->dev = dev; in bfa_port_attach()
478 port->ioc = ioc; in bfa_port_attach()
479 port->trcmod = trcmod; in bfa_port_attach()
481 port->stats_busy = BFA_FALSE; in bfa_port_attach()
482 port->endis_pending = BFA_FALSE; in bfa_port_attach()
483 port->stats_cbfn = NULL; in bfa_port_attach()
484 port->endis_cbfn = NULL; in bfa_port_attach()
485 port->pbc_disabled = BFA_FALSE; in bfa_port_attach()
486 port->dport_enabled = BFA_FALSE; in bfa_port_attach()
488 bfa_ioc_mbox_regisr(port->ioc, BFI_MC_PORT, bfa_port_isr, port); in bfa_port_attach()
489 bfa_q_qe_init(&port->ioc_notify); in bfa_port_attach()
490 bfa_ioc_notify_init(&port->ioc_notify, bfa_port_notify, port); in bfa_port_attach()
491 list_add_tail(&port->ioc_notify.qe, &port->ioc->notify_q); in bfa_port_attach()
497 port->stats_reset_time = tv.tv_sec; in bfa_port_attach()
499 bfa_trc(port, 0); in bfa_port_attach()
512 bfa_port_set_dportenabled(struct bfa_port_s *port, bfa_boolean_t enabled) in bfa_port_set_dportenabled() argument
514 port->dport_enabled = enabled; in bfa_port_set_dportenabled()