Lines Matching full:oct
50 struct octeon_device *oct = lio->oct_dev; in lio_set_feature() local
65 lio_dev_err(oct, "Feature change failed in core (ret: 0x%x)\n", in lio_set_feature()
77 struct octeon_device *oct; in lio_ctrl_cmd_completion() local
85 oct = lio->oct_dev; in lio_ctrl_cmd_completion()
100 lio_dev_info(oct, "MAC Address %pM is configured for VF %d\n", in lio_ctrl_cmd_completion()
103 lio_dev_info(oct, "MAC Address changed to %02x:%02x:%02x:%02x:%02x:%02x\n", in lio_ctrl_cmd_completion()
110 lio_dev_info(oct, "LED Flashing visual identification\n"); in lio_ctrl_cmd_completion()
114 lio_dev_info(oct, "LED Flashing visual identification\n"); in lio_ctrl_cmd_completion()
118 lio_dev_info(oct, "HW LRO Enabled\n"); in lio_ctrl_cmd_completion()
122 lio_dev_info(oct, "HW LRO Disabled\n"); in lio_ctrl_cmd_completion()
126 lio_dev_info(oct, "Firmware debug enabled\n"); in lio_ctrl_cmd_completion()
130 lio_dev_info(oct, "Firmware debug disabled\n"); in lio_ctrl_cmd_completion()
135 lio_dev_info(oct, "VLAN filter enabled\n"); in lio_ctrl_cmd_completion()
137 lio_dev_info(oct, "VLAN filter disabled\n"); in lio_ctrl_cmd_completion()
141 lio_dev_info(oct, "VLAN filter %d added\n", in lio_ctrl_cmd_completion()
146 lio_dev_info(oct, "VLAN filter %d removed\n", in lio_ctrl_cmd_completion()
151 lio_dev_info(oct, "Settings changed\n"); in lio_ctrl_cmd_completion()
160 lio_dev_info(oct, "RX Checksum Offload Enabled\n"); in lio_ctrl_cmd_completion()
162 lio_dev_info(oct, "RX Checksum Offload Disabled\n"); in lio_ctrl_cmd_completion()
172 lio_dev_info(oct, "TX Checksum Offload Enabled\n"); in lio_ctrl_cmd_completion()
174 lio_dev_info(oct, "TX Checksum Offload Disabled\n"); in lio_ctrl_cmd_completion()
184 lio_dev_info(oct, "VxLAN Destination UDP PORT:%d ADDED\n", in lio_ctrl_cmd_completion()
187 lio_dev_info(oct, "VxLAN Destination UDP PORT:%d DELETED\n", in lio_ctrl_cmd_completion()
193 lio_dev_info(oct, "Set RX/TX flow control parameters\n"); in lio_ctrl_cmd_completion()
198 lio_dev_info(oct, "FNV Enabled\n"); in lio_ctrl_cmd_completion()
200 lio_dev_info(oct, "FNV Disabled\n"); in lio_ctrl_cmd_completion()
205 lio_dev_info(oct, "Packet Steering Enabled\n"); in lio_ctrl_cmd_completion()
208 lio_dev_info(oct, "Packet Steering Disabled\n"); in lio_ctrl_cmd_completion()
214 lio_dev_info(oct, "Queue count updated to %d\n", in lio_ctrl_cmd_completion()
219 lio_dev_err(oct, "%s Unknown cmd %d\n", __func__, in lio_ctrl_cmd_completion()
227 * @param oct octeon device
234 lio_setup_droq(struct octeon_device *oct, int q_no, int num_descs, in lio_setup_droq() argument
239 lio_dev_dbg(oct, "Creating Droq: %d\n", q_no); in lio_setup_droq()
241 ret_val = lio_create_droq(oct, q_no, num_descs, desc_size, app_ctx); in lio_setup_droq()
246 lio_dev_dbg(oct, "Using default droq %d\n", q_no); in lio_setup_droq()
254 lio_write_csr32(oct, oct->droq[q_no]->pkts_credit_reg, in lio_setup_droq()
255 oct->droq[q_no]->max_count); in lio_setup_droq()
474 * @param oct octeon device
477 lio_schedule_droq_pkt_handlers(struct octeon_device *oct) in lio_schedule_droq_pkt_handlers() argument
482 if (oct->int_status & LIO_DEV_INTR_PKT_DATA) { in lio_schedule_droq_pkt_handlers()
483 for (oq_no = 0; oq_no < LIO_MAX_OUTPUT_QUEUES(oct); oq_no++) { in lio_schedule_droq_pkt_handlers()
484 if (!(oct->io_qmask.oq & BIT_ULL(oq_no))) in lio_schedule_droq_pkt_handlers()
487 droq = oct->droq[oq_no]; in lio_schedule_droq_pkt_handlers()
499 struct octeon_device *oct = ioq_vector->oct_dev; in lio_msix_intr_handler() local
500 struct lio_droq *droq = oct->droq[ioq_vector->droq_index]; in lio_msix_intr_handler()
503 ret = oct->fn_list.msix_interrupt_handler(ioq_vector); in lio_msix_intr_handler()
506 struct lio_instr_queue *iq = oct->instr_queue[droq->q_no]; in lio_msix_intr_handler()
509 reschedule = lio_droq_process_packets(oct, droq, oct->rx_budget); in lio_msix_intr_handler()
512 tx_done = lio_flush_iq(oct, iq, oct->tx_budget); in lio_msix_intr_handler()
514 if ((oct->props.ifp != NULL) && (iq->br != NULL)) { in lio_msix_intr_handler()
516 if (!drbr_empty(oct->props.ifp, iq->br)) in lio_msix_intr_handler()
517 lio_mq_start_locked(oct->props.ifp, in lio_msix_intr_handler()
533 struct octeon_device *oct = (struct octeon_device *)dev; in lio_intr_handler() local
536 oct->fn_list.disable_interrupt(oct, OCTEON_ALL_INTR); in lio_intr_handler()
538 oct->fn_list.process_interrupt_regs(oct); in lio_intr_handler()
540 lio_schedule_droq_pkt_handlers(oct); in lio_intr_handler()
543 if (!(atomic_load_acq_int(&oct->status) == LIO_DEV_IN_RESET)) in lio_intr_handler()
544 oct->fn_list.enable_interrupt(oct, OCTEON_ALL_INTR); in lio_intr_handler()
548 lio_setup_interrupt(struct octeon_device *oct, uint32_t num_ioqs) in lio_setup_interrupt() argument
557 if (!oct->msix_on) in lio_setup_interrupt()
560 ioq_vector = oct->ioq_vector; in lio_setup_interrupt()
563 if (oct->sriov_info.num_pf_rings != rss_getnumbuckets()) { in lio_setup_interrupt()
564 lio_dev_info(oct, "IOQ vectors (%d) are not equal number of RSS buckets (%d)\n", in lio_setup_interrupt()
565 oct->sriov_info.num_pf_rings, rss_getnumbuckets()); in lio_setup_interrupt()
569 device = oct->device; in lio_setup_interrupt()
571 oct->num_msix_irqs = num_ioqs; in lio_setup_interrupt()
573 oct->num_msix_irqs += 1; in lio_setup_interrupt()
574 num_alloc_ioq_vectors = oct->num_msix_irqs; in lio_setup_interrupt()
577 (num_alloc_ioq_vectors != oct->num_msix_irqs)) in lio_setup_interrupt()
580 num_ioq_vectors = oct->num_msix_irqs; in lio_setup_interrupt()
590 lio_dev_err(oct, in lio_setup_interrupt()
603 lio_dev_err(oct, "Failed to register intr handler"); in lio_setup_interrupt()
621 lio_dev_err(oct, "bus bind interrupt fail"); in lio_setup_interrupt()
623 lio_dev_dbg(oct, "Bound RSS bucket %d to CPU %d\n", i, cpu_id); in lio_setup_interrupt()
625 lio_dev_dbg(oct, "Bound Queue %d to CPU %d\n", i, cpu_id); in lio_setup_interrupt()
629 lio_dev_dbg(oct, "MSI-X enabled\n"); in lio_setup_interrupt()
632 oct->msix_res = bus_alloc_resource_any(device, SYS_RES_IRQ, &res_id, in lio_setup_interrupt()
634 if (oct->msix_res == NULL) { in lio_setup_interrupt()
635 lio_dev_err(oct, "Unable to allocate bus res msix for non-ioq interrupt\n"); in lio_setup_interrupt()
639 err = bus_setup_intr(device, oct->msix_res, INTR_TYPE_NET | INTR_MPSAFE, in lio_setup_interrupt()
640 NULL, lio_intr_handler, oct, &oct->tag); in lio_setup_interrupt()
643 oct->msix_res); in lio_setup_interrupt()
644 oct->msix_res = NULL; in lio_setup_interrupt()
645 lio_dev_err(oct, "Failed to register intr handler"); in lio_setup_interrupt()
649 bus_describe_intr(device, oct->msix_res, oct->tag, "aux"); in lio_setup_interrupt()
650 oct->aux_vector = res_id; in lio_setup_interrupt()
654 if (oct->tag != NULL) { in lio_setup_interrupt()
655 bus_teardown_intr(device, oct->msix_res, oct->tag); in lio_setup_interrupt()
656 oct->tag = NULL; in lio_setup_interrupt()
677 if (oct->msix_res != NULL) { in lio_setup_interrupt()
678 bus_release_resource(device, SYS_RES_IRQ, oct->aux_vector, in lio_setup_interrupt()
679 oct->msix_res); in lio_setup_interrupt()
680 oct->msix_res = NULL; in lio_setup_interrupt()
684 lio_dev_err(oct, "MSI-X disabled\n"); in lio_setup_interrupt()