Lines Matching refs:oct

218 	struct octeon_device *oct = (struct octeon_device *)pdev;  in octeon_droq_bh()  local
220 (struct octeon_device_priv *)oct->priv; in octeon_droq_bh()
224 if (!(oct->io_qmask.oq & (1UL << q_no))) in octeon_droq_bh()
226 reschedule |= octeon_droq_process_packets(oct, oct->droq[q_no], in octeon_droq_bh()
234 static int lio_wait_for_oq_pkts(struct octeon_device *oct) in lio_wait_for_oq_pkts() argument
237 (struct octeon_device_priv *)oct->priv; in lio_wait_for_oq_pkts()
245 if (!(oct->io_qmask.oq & (1UL << i))) in lio_wait_for_oq_pkts()
247 pkt_cnt += octeon_droq_check_hw_for_pkts(oct, in lio_wait_for_oq_pkts()
248 oct->droq[i]); in lio_wait_for_oq_pkts()
336 static void force_io_queues_off(struct octeon_device *oct) in force_io_queues_off() argument
338 if ((oct->chip_id == OCTEON_CN66XX) || in force_io_queues_off()
339 (oct->chip_id == OCTEON_CN68XX)) { in force_io_queues_off()
341 octeon_write_csr(oct, CN6XXX_SLI_PKT_INSTR_ENB, 0); in force_io_queues_off()
344 octeon_write_csr(oct, CN6XXX_SLI_PKT_OUT_ENB, 0); in force_io_queues_off()
354 static int wait_for_pending_requests(struct octeon_device *oct) in wait_for_pending_requests() argument
360 atomic_read(&oct->response_list in wait_for_pending_requests()
378 static inline void pcierror_quiesce_device(struct octeon_device *oct) in pcierror_quiesce_device() argument
386 force_io_queues_off(oct); in pcierror_quiesce_device()
391 if (wait_for_pending_requests(oct)) in pcierror_quiesce_device()
392 dev_err(&oct->pci_dev->dev, "There were pending requests\n"); in pcierror_quiesce_device()
398 if (!(oct->io_qmask.iq & (1UL << i))) in pcierror_quiesce_device()
400 iq = oct->instr_queue[i]; in pcierror_quiesce_device()
408 lio_process_iq_request_list(oct, iq); in pcierror_quiesce_device()
414 lio_process_ordered_list(oct, 1); in pcierror_quiesce_device()
443 static void stop_pci_io(struct octeon_device *oct) in stop_pci_io() argument
446 atomic_set(&oct->status, OCT_DEV_IN_RESET); in stop_pci_io()
448 pci_disable_device(oct->pci_dev); in stop_pci_io()
451 oct->fn_list.disable_interrupt(oct->chip); in stop_pci_io()
453 pcierror_quiesce_device(oct); in stop_pci_io()
456 free_irq(oct->pci_dev->irq, oct); in stop_pci_io()
458 if (oct->flags & LIO_FLAG_MSI_ENABLED) in stop_pci_io()
459 pci_disable_msi(oct->pci_dev); in stop_pci_io()
461 dev_dbg(&oct->pci_dev->dev, "Device state is now %s\n", in stop_pci_io()
462 lio_get_state_string(&oct->status)); in stop_pci_io()
466 cleanup_aer_uncorrect_error_status(oct->pci_dev); in stop_pci_io()
480 struct octeon_device *oct = pci_get_drvdata(pdev); in liquidio_pcie_error_detected() local
484 dev_err(&oct->pci_dev->dev, "Non-correctable non-fatal error reported:\n"); in liquidio_pcie_error_detected()
485 cleanup_aer_uncorrect_error_status(oct->pci_dev); in liquidio_pcie_error_detected()
490 dev_err(&oct->pci_dev->dev, "Non-correctable FATAL reported by PCI AER driver\n"); in liquidio_pcie_error_detected()
491 stop_pci_io(oct); in liquidio_pcie_error_detected()
905 void liquidio_schedule_droq_pkt_handlers(struct octeon_device *oct) in liquidio_schedule_droq_pkt_handlers() argument
908 (struct octeon_device_priv *)oct->priv; in liquidio_schedule_droq_pkt_handlers()
912 if (oct->int_status & OCT_DEV_INTR_PKT_DATA) { in liquidio_schedule_droq_pkt_handlers()
914 if (!(oct->droq_intr & (1 << oq_no))) in liquidio_schedule_droq_pkt_handlers()
917 droq = oct->droq[oq_no]; in liquidio_schedule_droq_pkt_handlers()
937 struct octeon_device *oct = (struct octeon_device *)dev; in liquidio_intr_handler() local
941 oct->fn_list.disable_interrupt(oct->chip); in liquidio_intr_handler()
943 ret = oct->fn_list.process_interrupt_regs(oct); in liquidio_intr_handler()
946 liquidio_schedule_droq_pkt_handlers(oct); in liquidio_intr_handler()
949 if (!(atomic_read(&oct->status) == OCT_DEV_IN_RESET)) in liquidio_intr_handler()
950 oct->fn_list.enable_interrupt(oct->chip); in liquidio_intr_handler()
961 static int octeon_setup_interrupt(struct octeon_device *oct) in octeon_setup_interrupt() argument
965 err = pci_enable_msi(oct->pci_dev); in octeon_setup_interrupt()
967 dev_warn(&oct->pci_dev->dev, "Reverting to legacy interrupts. Error: %d\n", in octeon_setup_interrupt()
970 oct->flags |= LIO_FLAG_MSI_ENABLED; in octeon_setup_interrupt()
972 irqret = request_irq(oct->pci_dev->irq, liquidio_intr_handler, in octeon_setup_interrupt()
973 IRQF_SHARED, "octeon", oct); in octeon_setup_interrupt()
975 if (oct->flags & LIO_FLAG_MSI_ENABLED) in octeon_setup_interrupt()
976 pci_disable_msi(oct->pci_dev); in octeon_setup_interrupt()
977 dev_err(&oct->pci_dev->dev, "Request IRQ failed with code: %d\n", in octeon_setup_interrupt()
1035 static void octeon_destroy_resources(struct octeon_device *oct) in octeon_destroy_resources() argument
1039 (struct octeon_device_priv *)oct->priv; in octeon_destroy_resources()
1043 switch (atomic_read(&oct->status)) { in octeon_destroy_resources()
1048 atomic_set(&oct->status, OCT_DEV_IN_RESET); in octeon_destroy_resources()
1050 oct->app_mode = CVM_DRV_INVALID_APP; in octeon_destroy_resources()
1051 dev_dbg(&oct->pci_dev->dev, "Device state is now %s\n", in octeon_destroy_resources()
1052 lio_get_state_string(&oct->status)); in octeon_destroy_resources()
1062 octeon_remove_consoles(oct); in octeon_destroy_resources()
1066 if (wait_for_pending_requests(oct)) in octeon_destroy_resources()
1067 dev_err(&oct->pci_dev->dev, "There were pending requests\n"); in octeon_destroy_resources()
1069 if (lio_wait_for_instr_fetch(oct)) in octeon_destroy_resources()
1070 dev_err(&oct->pci_dev->dev, "IQ had pending instructions\n"); in octeon_destroy_resources()
1076 oct->fn_list.disable_io_queues(oct); in octeon_destroy_resources()
1078 if (lio_wait_for_oq_pkts(oct)) in octeon_destroy_resources()
1079 dev_err(&oct->pci_dev->dev, "OQ had pending packets\n"); in octeon_destroy_resources()
1082 oct->fn_list.disable_interrupt(oct->chip); in octeon_destroy_resources()
1085 free_irq(oct->pci_dev->irq, oct); in octeon_destroy_resources()
1087 if (oct->flags & LIO_FLAG_MSI_ENABLED) in octeon_destroy_resources()
1088 pci_disable_msi(oct->pci_dev); in octeon_destroy_resources()
1091 oct->fn_list.soft_reset(oct); in octeon_destroy_resources()
1094 pci_disable_device(oct->pci_dev); in octeon_destroy_resources()
1102 if (!(oct->io_qmask.oq & (1UL << i))) in octeon_destroy_resources()
1104 octeon_delete_droq(oct, i); in octeon_destroy_resources()
1112 handshake[oct->octeon_id].init_ok = 0; in octeon_destroy_resources()
1113 complete(&handshake[oct->octeon_id].init); in octeon_destroy_resources()
1114 handshake[oct->octeon_id].started_ok = 0; in octeon_destroy_resources()
1115 complete(&handshake[oct->octeon_id].started); in octeon_destroy_resources()
1121 octeon_delete_response_list(oct); in octeon_destroy_resources()
1125 octeon_free_sc_buffer_pool(oct); in octeon_destroy_resources()
1130 if (!(oct->io_qmask.iq & (1UL << i))) in octeon_destroy_resources()
1132 octeon_delete_instr_queue(oct, i); in octeon_destroy_resources()
1137 octeon_delete_dispatch_list(oct); in octeon_destroy_resources()
1138 cancel_delayed_work_sync(&oct->nic_poll_work.work); in octeon_destroy_resources()
1142 octeon_unmap_pci_barx(oct, 0); in octeon_destroy_resources()
1143 octeon_unmap_pci_barx(oct, 1); in octeon_destroy_resources()
1185 static void liquidio_destroy_nic_device(struct octeon_device *oct, int ifidx) in liquidio_destroy_nic_device() argument
1187 struct net_device *netdev = oct->props[ifidx].netdev; in liquidio_destroy_nic_device()
1191 dev_err(&oct->pci_dev->dev, "%s No netdevice ptr for index %d\n", in liquidio_destroy_nic_device()
1198 dev_dbg(&oct->pci_dev->dev, "NIC device cleanup\n"); in liquidio_destroy_nic_device()
1212 oct->props[ifidx].netdev = NULL; in liquidio_destroy_nic_device()
1219 static int liquidio_stop_nic_module(struct octeon_device *oct) in liquidio_stop_nic_module() argument
1224 dev_dbg(&oct->pci_dev->dev, "Stopping network interfaces\n"); in liquidio_stop_nic_module()
1225 if (!oct->ifcount) { in liquidio_stop_nic_module()
1226 dev_err(&oct->pci_dev->dev, "Init for Octeon was not completed\n"); in liquidio_stop_nic_module()
1230 for (i = 0; i < oct->ifcount; i++) { in liquidio_stop_nic_module()
1231 lio = GET_LIO(oct->props[i].netdev); in liquidio_stop_nic_module()
1233 octeon_unregister_droq_ops(oct, lio->linfo.rxpciq[j]); in liquidio_stop_nic_module()
1236 for (i = 0; i < oct->ifcount; i++) in liquidio_stop_nic_module()
1237 liquidio_destroy_nic_device(oct, i); in liquidio_stop_nic_module()
1239 dev_dbg(&oct->pci_dev->dev, "Network interfaces stopped\n"); in liquidio_stop_nic_module()
1273 static int octeon_chip_specific_setup(struct octeon_device *oct) in octeon_chip_specific_setup() argument
1278 pci_read_config_dword(oct->pci_dev, 0, &dev_id); in octeon_chip_specific_setup()
1279 pci_read_config_dword(oct->pci_dev, 8, &rev_id); in octeon_chip_specific_setup()
1280 oct->rev_id = rev_id & 0xff; in octeon_chip_specific_setup()
1284 oct->chip_id = OCTEON_CN68XX; in octeon_chip_specific_setup()
1285 ret = lio_setup_cn68xx_octeon_device(oct); in octeon_chip_specific_setup()
1289 oct->chip_id = OCTEON_CN66XX; in octeon_chip_specific_setup()
1290 ret = lio_setup_cn66xx_octeon_device(oct); in octeon_chip_specific_setup()
1293 dev_err(&oct->pci_dev->dev, "Unknown device found (dev_id: %x)\n", in octeon_chip_specific_setup()
1298 dev_info(&oct->pci_dev->dev, "CN68XX PASS%d.%d %s\n", in octeon_chip_specific_setup()
1299 OCTEON_MAJOR_REV(oct), in octeon_chip_specific_setup()
1300 OCTEON_MINOR_REV(oct), in octeon_chip_specific_setup()
1301 octeon_get_conf(oct)->card_name); in octeon_chip_specific_setup()
1310 static int octeon_pci_os_setup(struct octeon_device *oct) in octeon_pci_os_setup() argument
1313 if (pci_enable_device(oct->pci_dev)) { in octeon_pci_os_setup()
1314 dev_err(&oct->pci_dev->dev, "pci_enable_device failed\n"); in octeon_pci_os_setup()
1318 if (dma_set_mask_and_coherent(&oct->pci_dev->dev, DMA_BIT_MASK(64))) { in octeon_pci_os_setup()
1319 dev_err(&oct->pci_dev->dev, "Unexpected DMA device capability\n"); in octeon_pci_os_setup()
1324 pci_set_master(oct->pci_dev); in octeon_pci_os_setup()
1474 struct octeon_device *oct = (struct octeon_device *)lio->oct_dev; in liquidio_ptp_adjfreq() local
1489 do_div(delta, oct->coproc_clock_rate); in liquidio_ptp_adjfreq()
1492 comp = lio_pci_readq(oct, CN6XXX_MIO_PTP_CLOCK_COMP); in liquidio_ptp_adjfreq()
1497 lio_pci_writeq(oct, comp, CN6XXX_MIO_PTP_CLOCK_COMP); in liquidio_ptp_adjfreq()
1532 struct octeon_device *oct = (struct octeon_device *)lio->oct_dev; in liquidio_ptp_gettime() local
1535 ns = lio_pci_readq(oct, CN6XXX_MIO_PTP_CLOCK_HI); in liquidio_ptp_gettime()
1556 struct octeon_device *oct = (struct octeon_device *)lio->oct_dev; in liquidio_ptp_settime() local
1561 lio_pci_writeq(oct, ns, CN6XXX_MIO_PTP_CLOCK_HI); in liquidio_ptp_settime()
1587 struct octeon_device *oct = (struct octeon_device *)lio->oct_dev; in oct_ptp_open() local
1607 &oct->pci_dev->dev); in oct_ptp_open()
1617 static void liquidio_ptp_init(struct octeon_device *oct) in liquidio_ptp_init() argument
1622 do_div(clock_comp, oct->coproc_clock_rate); in liquidio_ptp_init()
1623 lio_pci_writeq(oct, clock_comp, CN6XXX_MIO_PTP_CLOCK_COMP); in liquidio_ptp_init()
1626 cfg = lio_pci_readq(oct, CN6XXX_MIO_PTP_CLOCK_CFG); in liquidio_ptp_init()
1627 lio_pci_writeq(oct, cfg | 0x01, CN6XXX_MIO_PTP_CLOCK_CFG); in liquidio_ptp_init()
1636 static int load_firmware(struct octeon_device *oct) in load_firmware() argument
1645 dev_info(&oct->pci_dev->dev, "Skipping firmware load\n"); in load_firmware()
1655 octeon_get_conf(oct)->card_name, tmp_fw_type, in load_firmware()
1658 ret = request_firmware(&fw, fw_name, &oct->pci_dev->dev); in load_firmware()
1660 dev_err(&oct->pci_dev->dev, "Request firmware failed. Could not find file %s.\n.", in load_firmware()
1665 ret = octeon_download_firmware(oct, fw->data, fw->size); in load_firmware()
1680 static int octeon_setup_droq(struct octeon_device *oct, int q_no, int num_descs, in octeon_setup_droq() argument
1685 dev_dbg(&oct->pci_dev->dev, "Creating Droq: %d\n", q_no); in octeon_setup_droq()
1687 ret_val = octeon_create_droq(oct, q_no, num_descs, desc_size, app_ctx); in octeon_setup_droq()
1692 dev_dbg(&oct->pci_dev->dev, "Using default droq %d\n", q_no); in octeon_setup_droq()
1698 octeon_set_droq_pkt_op(oct, q_no, 1); in octeon_setup_droq()
1703 writel(oct->droq[q_no]->max_count, in octeon_setup_droq()
1704 oct->droq[q_no]->pkts_credit_reg); in octeon_setup_droq()
1714 static void if_cfg_callback(struct octeon_device *oct, in if_cfg_callback() argument
1725 oct = lio_get_device(ctx->octeon_id); in if_cfg_callback()
1727 dev_err(&oct->pci_dev->dev, "nic if cfg instruction failed. Status: %llx\n", in if_cfg_callback()
1773 struct octeon_device *oct = lio_get_device(octeon_id); in liquidio_push_packet() local
1778 (struct net_device *)oct->props[rh->r_dh.link].netdev; in liquidio_push_packet()
1882 struct octeon_device *oct = lio->oct_dev; in liquidio_napi_do_rx() local
1884 work_done = octeon_process_droq_poll_cmd(oct, droq->q_no, in liquidio_napi_do_rx()
1894 dev_err(&oct->pci_dev->dev, ">>>> %s work_done: %d budget: %d\n", in liquidio_napi_do_rx()
1901 octeon_process_droq_poll_cmd(oct, droq->q_no, POLL_EVENT_ENABLE_INTR, in liquidio_napi_do_rx()
2039 struct octeon_device *oct = lio->oct_dev; in setup_tx_poll_fn() local
2043 dev_err(&oct->pci_dev->dev, "unable to create cavium txq status wq\n"); in setup_tx_poll_fn()
2060 struct octeon_device *oct = lio->oct_dev; in liquidio_open() local
2081 dev_info(&oct->pci_dev->dev, "%s interface is opened\n", in liquidio_open()
2095 struct octeon_device *oct = lio->oct_dev; in liquidio_stop() local
2126 dev_info(&oct->pci_dev->dev, "%s interface is stopped\n", netdev->name); in liquidio_stop()
2137 struct octeon_device *oct = lio->oct_dev; in liquidio_link_ctrl_cmd_completion() local
2148 dev_info(&oct->pci_dev->dev, "%s MACAddr changed to 0x%llx\n", in liquidio_link_ctrl_cmd_completion()
2157 dev_info(&oct->pci_dev->dev, "%s MTU Changed from %d to %d\n", in liquidio_link_ctrl_cmd_completion()
2169 dev_info(&oct->pci_dev->dev, "%s LRO Enabled\n", netdev->name); in liquidio_link_ctrl_cmd_completion()
2173 dev_info(&oct->pci_dev->dev, "%s LRO Disabled\n", in liquidio_link_ctrl_cmd_completion()
2178 dev_info(&oct->pci_dev->dev, "%s LRO Enabled\n", netdev->name); in liquidio_link_ctrl_cmd_completion()
2182 dev_info(&oct->pci_dev->dev, "%s LRO Disabled\n", in liquidio_link_ctrl_cmd_completion()
2187 dev_info(&oct->pci_dev->dev, "%s settings changed\n", in liquidio_link_ctrl_cmd_completion()
2193 dev_err(&oct->pci_dev->dev, "%s Unknown cmd %d\n", __func__, in liquidio_link_ctrl_cmd_completion()
2238 struct octeon_device *oct = lio->oct_dev; in liquidio_set_mcast_list() local
2279 dev_err(&oct->pci_dev->dev, "DEVFLAGS change failed in core (ret: 0x%x)\n", in liquidio_set_mcast_list()
2292 struct octeon_device *oct = lio->oct_dev; in liquidio_set_mac() local
2320 dev_err(&oct->pci_dev->dev, "MAC Address change failed\n"); in liquidio_set_mac()
2337 struct octeon_device *oct; in liquidio_get_stats() local
2343 oct = lio->oct_dev; in liquidio_get_stats()
2347 iq_stats = &oct->instr_queue[iq_no]->stats; in liquidio_get_stats()
2363 oq_stats = &oct->droq[oq_no]->stats; in liquidio_get_stats()
2386 struct octeon_device *oct = lio->oct_dev; in liquidio_change_mtu() local
2397 dev_err(&oct->pci_dev->dev, "Invalid MTU: %d\n", new_mtu); in liquidio_change_mtu()
2398 dev_err(&oct->pci_dev->dev, "Valid range %d and %d\n", in liquidio_change_mtu()
2418 dev_err(&oct->pci_dev->dev, "Failed to set MTU\n"); in liquidio_change_mtu()
2505 static void handle_timestamp(struct octeon_device *oct, in handle_timestamp() argument
2518 oct = lio->oct_dev; in handle_timestamp()
2522 dev_err(&oct->pci_dev->dev, "Tx timestamp instruction failed. Status: %llx\n", in handle_timestamp()
2540 octeon_free_soft_command(oct, sc); in handle_timestamp()
2549 static inline int send_nic_timestamp_pkt(struct octeon_device *oct, in send_nic_timestamp_pkt() argument
2563 sc = octeon_alloc_soft_command_resp(oct, &ndata->cmd, in send_nic_timestamp_pkt()
2568 dev_err(&oct->pci_dev->dev, "No memory for timestamped data packet\n"); in send_nic_timestamp_pkt()
2585 retval = octeon_send_command(oct, sc->iq_no, ring_doorbell, &sc->cmd, in send_nic_timestamp_pkt()
2589 dev_err(&oct->pci_dev->dev, "timestamp data packet failed status: %x\n", in send_nic_timestamp_pkt()
2591 octeon_free_soft_command(oct, sc); in send_nic_timestamp_pkt()
2673 struct octeon_device *oct; in liquidio_xmit() local
2681 oct = lio->oct_dev; in liquidio_xmit()
2691 stats = &oct->instr_queue[iq_no]->stats; in liquidio_xmit()
2721 if (octnet_iq_is_full(oct, ndata.q_no)) { in liquidio_xmit()
2729 if (octnet_iq_is_full(oct, lio->txq)) { in liquidio_xmit()
2800 ndata.cmd.dptr = dma_map_single(&oct->pci_dev->dev, in liquidio_xmit()
2804 if (dma_mapping_error(&oct->pci_dev->dev, ndata.cmd.dptr)) { in liquidio_xmit()
2805 dev_err(&oct->pci_dev->dev, "%s DMA mapping error 1\n", in liquidio_xmit()
2835 g->sg[0].ptr[0] = dma_map_single(&oct->pci_dev->dev, in liquidio_xmit()
2839 if (dma_mapping_error(&oct->pci_dev->dev, g->sg[0].ptr[0])) { in liquidio_xmit()
2840 dev_err(&oct->pci_dev->dev, "%s DMA mapping error 2\n", in liquidio_xmit()
2852 dma_map_page(&oct->pci_dev->dev, in liquidio_xmit()
2862 ndata.cmd.dptr = dma_map_single(&oct->pci_dev->dev, in liquidio_xmit()
2865 if (dma_mapping_error(&oct->pci_dev->dev, ndata.cmd.dptr)) { in liquidio_xmit()
2866 dev_err(&oct->pci_dev->dev, "%s DMA mapping error 3\n", in liquidio_xmit()
2868 dma_unmap_single(&oct->pci_dev->dev, g->sg[0].ptr[0], in liquidio_xmit()
2893 status = send_nic_timestamp_pkt(oct, &ndata, finfo, xmit_more); in liquidio_xmit()
2895 status = octnet_send_nic_data_pkt(oct, &ndata, xmit_more); in liquidio_xmit()
2915 dma_unmap_single(&oct->pci_dev->dev, ndata.cmd.dptr, in liquidio_xmit()
2940 struct octeon_device *oct = lio->oct_dev; in liquidio_set_feature() local
2959 dev_err(&oct->pci_dev->dev, "Feature change failed in core (ret: 0x%x)\n", in liquidio_set_feature()
3085 struct octeon_device *oct = (struct octeon_device *)buf; in lio_nic_info() local
3092 (recv_pkt->rh.r_nic_info.ifidx > oct->ifcount)) { in lio_nic_info()
3093 dev_err(&oct->pci_dev->dev, "Malformed NIC_INFO, len=%d, ifidx=%d\n", in lio_nic_info()
3104 update_link_status(oct->props[ifidx].netdev, ls); in lio_nic_info()
3388 static int liquidio_init_nic_module(struct octeon_device *oct) in liquidio_init_nic_module() argument
3392 int num_nic_ports = CFG_GET_NUM_NIC_PORTS(octeon_get_conf(oct)); in liquidio_init_nic_module()
3394 dev_dbg(&oct->pci_dev->dev, "Initializing network interfaces\n"); in liquidio_init_nic_module()
3400 oct->ifcount = num_nic_ports; in liquidio_init_nic_module()
3402 memset(oct->props, 0, in liquidio_init_nic_module()
3405 retval = setup_nic_devices(oct); in liquidio_init_nic_module()
3407 dev_err(&oct->pci_dev->dev, "Setup NIC devices failed\n"); in liquidio_init_nic_module()
3411 liquidio_ptp_init(oct); in liquidio_init_nic_module()
3414 intrmod_cfg = &((struct octeon_device *)oct)->intrmod; in liquidio_init_nic_module()
3424 dev_dbg(&oct->pci_dev->dev, "Network interfaces ready\n"); in liquidio_init_nic_module()
3430 oct->ifcount = 0; in liquidio_init_nic_module()
3442 struct octeon_device *oct; in nic_starter() local
3445 oct = (struct octeon_device *)wk->ctxptr; in nic_starter()
3447 if (atomic_read(&oct->status) == OCT_DEV_RUNNING) in nic_starter()
3455 if (atomic_read(&oct->status) != OCT_DEV_CORE_OK) { in nic_starter()
3456 schedule_delayed_work(&oct->nic_poll_work.work, in nic_starter()
3461 atomic_set(&oct->status, OCT_DEV_RUNNING); in nic_starter()
3463 if (oct->app_mode && oct->app_mode == CVM_DRV_NIC_APP) { in nic_starter()
3464 dev_dbg(&oct->pci_dev->dev, "Starting NIC module\n"); in nic_starter()
3466 if (liquidio_init_nic_module(oct)) in nic_starter()
3467 dev_err(&oct->pci_dev->dev, "NIC initialization failed\n"); in nic_starter()
3469 handshake[oct->octeon_id].started_ok = 1; in nic_starter()
3471 dev_err(&oct->pci_dev->dev, in nic_starter()
3473 oct->app_mode); in nic_starter()
3476 complete(&handshake[oct->octeon_id].started); in nic_starter()