Lines Matching defs:octeon_dev

98 static int	lio_device_init(struct octeon_device *octeon_dev);
104 static int lio_setup_nic_devices(struct octeon_device *octeon_dev);
431 * @param octeon_dev octeon device
434 lio_device_init(struct octeon_device *octeon_dev)
443 bus = pci_get_bus(octeon_dev->device);
444 dev = pci_get_slot(octeon_dev->device);
445 function = pci_get_function(octeon_dev->device);
447 atomic_store_rel_int(&octeon_dev->status, LIO_DEV_BEGIN_STATE);
450 if (pci_enable_busmaster(octeon_dev->device)) {
451 lio_dev_err(octeon_dev, "pci_enable_device failed\n");
455 atomic_store_rel_int(&octeon_dev->status, LIO_DEV_PCI_ENABLE_DONE);
458 if (lio_chip_specific_setup(octeon_dev)) {
459 lio_dev_err(octeon_dev, "Chip specific setup failed\n");
463 atomic_store_rel_int(&octeon_dev->status, LIO_DEV_PCI_MAP_DONE);
470 lio_register_device(octeon_dev, bus, dev, function, true);
473 octeon_dev->app_mode = LIO_DRV_INVALID_APP;
475 if (!lio_cn23xx_pf_fw_loaded(octeon_dev) && !fw_type_is_none()) {
478 if (octeon_dev->fn_list.soft_reset(octeon_dev))
482 if (!lio_cn23xx_pf_fw_loaded(octeon_dev))
494 if (lio_init_dispatch_list(octeon_dev))
497 lio_register_dispatch_fn(octeon_dev, LIO_OPCODE_NIC,
499 lio_core_drv_init, octeon_dev);
500 atomic_store_rel_int(&octeon_dev->status, LIO_DEV_DISPATCH_INIT_DONE);
502 ret = octeon_dev->fn_list.setup_device_regs(octeon_dev);
504 lio_dev_err(octeon_dev,
510 if (lio_setup_sc_buffer_pool(octeon_dev)) {
511 lio_dev_err(octeon_dev, "sc buffer pool allocation failed\n");
515 atomic_store_rel_int(&octeon_dev->status,
518 if (lio_allocate_ioq_vector(octeon_dev)) {
519 lio_dev_err(octeon_dev,
524 atomic_store_rel_int(&octeon_dev->status,
528 octeon_dev->instr_queue[i] =
531 if (octeon_dev->instr_queue[i] == NULL)
536 if (lio_setup_instr_queue0(octeon_dev)) {
537 lio_dev_err(octeon_dev,
542 atomic_store_rel_int(&octeon_dev->status,
550 if (lio_setup_response_list(octeon_dev)) {
551 lio_dev_err(octeon_dev, "Response list allocation failed\n");
555 atomic_store_rel_int(&octeon_dev->status, LIO_DEV_RESP_LIST_INIT_DONE);
558 octeon_dev->droq[i] = malloc(sizeof(*octeon_dev->droq[i]),
560 if (octeon_dev->droq[i] == NULL)
564 if (lio_setup_output_queue0(octeon_dev)) {
565 lio_dev_err(octeon_dev, "Output queue initialization failed\n");
569 atomic_store_rel_int(&octeon_dev->status, LIO_DEV_DROQ_INIT_DONE);
574 if (lio_setup_interrupt(octeon_dev,
575 octeon_dev->sriov_info.num_pf_rings))
579 octeon_dev->fn_list.enable_interrupt(octeon_dev, OCTEON_ALL_INTR);
581 atomic_store_rel_int(&octeon_dev->status, LIO_DEV_INTR_SET_DONE);
592 for (j = 0; j < octeon_dev->num_oqs; j++)
593 lio_write_csr32(octeon_dev,
594 octeon_dev->droq[j]->pkts_credit_reg,
595 octeon_dev->droq[j]->max_count);
598 ret = octeon_dev->fn_list.enable_io_queues(octeon_dev);
600 lio_dev_err(octeon_dev, "Failed to enable input/output queues");
604 atomic_store_rel_int(&octeon_dev->status, LIO_DEV_IO_QUEUES_DONE);
607 lio_dev_dbg(octeon_dev, "Waiting for DDR initialization...\n");
609 lio_dev_info(octeon_dev,
626 ret = lio_wait_for_ddr_init(octeon_dev, &ddr_timeout);
628 lio_dev_err(octeon_dev,
634 if (lio_wait_for_bootloader(octeon_dev, 1100)) {
635 lio_dev_err(octeon_dev, "Board not responding\n");
640 ret = lio_console_send_cmd(octeon_dev, bootcmd, 50);
642 lio_dev_dbg(octeon_dev, "Initializing consoles\n");
643 ret = lio_init_consoles(octeon_dev);
645 lio_dev_err(octeon_dev, "Could not access board consoles\n");
655 ret = lio_add_console(octeon_dev, 0, dbg_enb);
658 lio_dev_err(octeon_dev, "Could not access board console\n");
665 octeon_dev->console[0].print = lio_dbg_console_print;
668 atomic_store_rel_int(&octeon_dev->status,
671 lio_dev_dbg(octeon_dev, "Loading firmware\n");
673 ret = lio_load_firmware(octeon_dev);
675 lio_dev_err(octeon_dev, "Could not load firmware to board\n");
680 atomic_store_rel_int(&octeon_dev->status, LIO_DEV_HOST_OK);
722 * @param octeon_dev octeon device
1177 lio_tcp_lro_free(struct octeon_device *octeon_dev, struct ifnet *ifp)
1184 for (i = 0; i < octeon_dev->num_oqs; i++) {
1186 droq = octeon_dev->droq[q_no];
1195 lio_tcp_lro_init(struct octeon_device *octeon_dev, struct ifnet *ifp)
1202 for (i = 0; i < octeon_dev->num_oqs; i++) {
1204 droq = octeon_dev->droq[q_no];
1208 lio_dev_err(octeon_dev, "LRO Initialization failed ret %d\n",
1219 lio_tcp_lro_free(octeon_dev, ifp);
1225 lio_setup_nic_devices(struct octeon_device *octeon_dev)
1243 lio_register_dispatch_fn(octeon_dev, LIO_OPCODE_NIC,
1245 lio_link_info, octeon_dev);
1247 for (i = 0; i < octeon_dev->ifcount; i++) {
1251 sc = lio_alloc_soft_command(octeon_dev, data_size, resp_size,
1265 num_iqueues = octeon_dev->sriov_info.num_pf_rings;
1266 num_oqueues = octeon_dev->sriov_info.num_pf_rings;
1267 base_queue = octeon_dev->sriov_info.pf_srn;
1269 gmx_port_id = octeon_dev->pf_num;
1270 ifidx_or_pfnum = octeon_dev->pf_num;
1272 lio_dev_dbg(octeon_dev, "requesting config for interface %d, iqs %d, oqs %d\n",
1275 ctx->octeon_id = lio_get_device_id(octeon_dev);
1285 lio_prepare_soft_command(octeon_dev, sc, LIO_OPCODE_NIC,
1293 retval = lio_send_soft_command(octeon_dev, sc);
1295 lio_dev_err(octeon_dev, "iq/oq config failed status: %x\n",
1305 lio_sleep_cond(octeon_dev, &ctx->cond);
1309 lio_dev_err(octeon_dev, "iq/oq config failed\n");
1320 lio_dev_err(octeon_dev,
1327 lio_dev_dbg(octeon_dev,
1336 lio_dev_err(octeon_dev, "Device allocation failed\n");
1343 lio_dev_err(octeon_dev, "Lio allocation failed\n");
1355 props = &octeon_dev->props;
1380 lio->oct_dev = octeon_dev;
1383 lio_dev_dbg(octeon_dev, "if%d gmx: %d hw_addr: 0x%llx\n", i,
1400 if (lio_setup_io_queues(octeon_dev, i, lio->linfo.num_txpciq,
1402 lio_dev_err(octeon_dev, "I/O queues creation failed\n");
1408 lio->tx_qsize = lio_get_tx_qsize(octeon_dev, lio->txq);
1409 lio->rx_qsize = lio_get_rx_qsize(octeon_dev, lio->rxq);
1411 if (lio_setup_glists(octeon_dev, lio, num_iqueues)) {
1412 lio_dev_err(octeon_dev, "Gather list allocation failed\n");
1416 if ((lio_hwlro == 0) && lio_tcp_lro_init(octeon_dev, ifp))
1434 lio_dev_dbg(octeon_dev, "Setup NIC ifidx:%d mac:%02x%02x%02x%02x%02x%02x\n",
1460 lio_dev_dbg(octeon_dev, "NIC ifidx:%d Setup successful\n", i);
1462 lio_free_soft_command(octeon_dev, sc);
1483 lio_free_soft_command(octeon_dev, sc);
1486 lio_dev_err(octeon_dev, "NIC ifidx:%d Setup failed\n", i);
1487 lio_destroy_nic_device(octeon_dev, i);