Lines Matching refs:dev

40 extern int oce_destroy_q(struct oce_dev *dev, struct oce_mbx *mbx,
44 oce_map_regs(struct oce_dev *dev) in oce_map_regs() argument
49 ASSERT(NULL != dev); in oce_map_regs()
50 ASSERT(NULL != dev->dip); in oce_map_regs()
53 ret = ddi_dev_nregs(dev->dip, &dev->num_bars); in oce_map_regs()
55 oce_log(dev, CE_WARN, MOD_CONFIG, in oce_map_regs()
62 ret = ddi_dev_regsize(dev->dip, OCE_DEV_CFG_BAR, &bar_size); in oce_map_regs()
64 oce_log(dev, CE_WARN, MOD_CONFIG, in oce_map_regs()
70 ret = ddi_regs_map_setup(dev->dip, OCE_DEV_CFG_BAR, &dev->dev_cfg_addr, in oce_map_regs()
71 0, bar_size, &reg_accattr, &dev->dev_cfg_handle); in oce_map_regs()
74 oce_log(dev, CE_WARN, MOD_CONFIG, in oce_map_regs()
81 ret = ddi_dev_regsize(dev->dip, OCE_PCI_CSR_BAR, &bar_size); in oce_map_regs()
84 oce_log(dev, CE_WARN, MOD_CONFIG, in oce_map_regs()
90 ret = ddi_regs_map_setup(dev->dip, OCE_PCI_CSR_BAR, &dev->csr_addr, in oce_map_regs()
91 0, bar_size, &reg_accattr, &dev->csr_handle); in oce_map_regs()
93 oce_log(dev, CE_WARN, MOD_CONFIG, in oce_map_regs()
96 ddi_regs_map_free(&dev->dev_cfg_handle); in oce_map_regs()
101 ret = ddi_dev_regsize(dev->dip, OCE_PCI_DB_BAR, &bar_size); in oce_map_regs()
103 oce_log(dev, CE_WARN, MOD_CONFIG, in oce_map_regs()
106 ddi_regs_map_free(&dev->csr_handle); in oce_map_regs()
107 ddi_regs_map_free(&dev->dev_cfg_handle); in oce_map_regs()
111 ret = ddi_regs_map_setup(dev->dip, OCE_PCI_DB_BAR, &dev->db_addr, in oce_map_regs()
112 0, 0, &reg_accattr, &dev->db_handle); in oce_map_regs()
114 oce_log(dev, CE_WARN, MOD_CONFIG, in oce_map_regs()
116 ddi_regs_map_free(&dev->csr_handle); in oce_map_regs()
117 ddi_regs_map_free(&dev->dev_cfg_handle); in oce_map_regs()
123 oce_unmap_regs(struct oce_dev *dev) in oce_unmap_regs() argument
126 ASSERT(NULL != dev); in oce_unmap_regs()
127 ASSERT(NULL != dev->dip); in oce_unmap_regs()
129 ddi_regs_map_free(&dev->db_handle); in oce_unmap_regs()
130 ddi_regs_map_free(&dev->csr_handle); in oce_unmap_regs()
131 ddi_regs_map_free(&dev->dev_cfg_handle); in oce_unmap_regs()
146 oce_pci_init(struct oce_dev *dev) in oce_pci_init() argument
150 ret = oce_map_regs(dev); in oce_pci_init()
155 dev->fn = OCE_PCI_FUNC(dev); in oce_pci_init()
156 if (oce_fm_check_acc_handle(dev, dev->dev_cfg_handle) != DDI_FM_OK) { in oce_pci_init()
157 ddi_fm_service_impact(dev->dip, DDI_SERVICE_DEGRADED); in oce_pci_init()
161 oce_pci_fini(dev); in oce_pci_init()
175 oce_pci_fini(struct oce_dev *dev) in oce_pci_fini() argument
177 oce_unmap_regs(dev); in oce_pci_fini()
187 oce_get_bdf(struct oce_dev *dev) in oce_get_bdf() argument
194 rc = ddi_prop_lookup_int_array(DDI_DEV_T_ANY, dev->dip, in oce_get_bdf()
199 oce_log(dev, CE_WARN, MOD_CONFIG, in oce_get_bdf()
204 dev->pci_bus = PCI_REG_BUS_G(pci_rp->pci_phys_hi); in oce_get_bdf()
205 dev->pci_device = PCI_REG_DEV_G(pci_rp->pci_phys_hi); in oce_get_bdf()
206 dev->pci_function = PCI_REG_FUNC_G(pci_rp->pci_phys_hi); in oce_get_bdf()
208 oce_log(dev, CE_NOTE, MOD_CONFIG, in oce_get_bdf()
210 length, dev->pci_bus, dev->pci_device, dev->pci_function); in oce_get_bdf()
218 oce_identify_hw(struct oce_dev *dev) in oce_identify_hw() argument
222 dev->vendor_id = pci_config_get16(dev->pci_cfg_handle, in oce_identify_hw()
224 dev->device_id = pci_config_get16(dev->pci_cfg_handle, in oce_identify_hw()
226 dev->subsys_id = pci_config_get16(dev->pci_cfg_handle, in oce_identify_hw()
228 dev->subvendor_id = pci_config_get16(dev->pci_cfg_handle, in oce_identify_hw()
231 switch (dev->device_id) { in oce_identify_hw()
234 dev->chip_rev = OC_CNA_GEN2; in oce_identify_hw()
237 dev->chip_rev = OC_CNA_GEN3; in oce_identify_hw()
240 dev->chip_rev = 0; in oce_identify_hw()
255 oce_is_reset_pci(struct oce_dev *dev) in oce_is_reset_pci() argument
259 ASSERT(dev != NULL); in oce_is_reset_pci()
260 ASSERT(dev->dip != NULL); in oce_is_reset_pci()
263 post_status.dw0 = OCE_CSR_READ32(dev, MPU_EP_SEMAPHORE); in oce_is_reset_pci()
278 oce_pci_soft_reset(struct oce_dev *dev) in oce_pci_soft_reset() argument
286 ASSERT(dev != NULL); in oce_pci_soft_reset()
289 soft_rst.dw0 = OCE_CFG_READ32(dev, PCICFG_SOFT_RESET); in oce_pci_soft_reset()
291 OCE_CFG_WRITE32(dev, PCICFG_SOFT_RESET, soft_rst.dw0); in oce_pci_soft_reset()
301 soft_rst.dw0 = OCE_CFG_READ32(dev, PCICFG_SOFT_RESET); in oce_pci_soft_reset()
307 oce_log(dev, CE_WARN, MOD_CONFIG, in oce_pci_soft_reset()
314 return (oce_POST(dev)); in oce_pci_soft_reset()
323 oce_POST(struct oce_dev *dev) in oce_POST() argument
330 post_status.dw0 = OCE_CSR_READ32(dev, MPU_EP_SEMAPHORE); in oce_POST()
331 if (oce_fm_check_acc_handle(dev, dev->csr_handle) != DDI_FM_OK) { in oce_POST()
332 ddi_fm_service_impact(dev->dip, DDI_SERVICE_DEGRADED); in oce_POST()
338 OCE_CSR_WRITE32(dev, MPU_EP_SEMAPHORE, post_status.dw0); in oce_POST()
339 if (oce_fm_check_acc_handle(dev, dev->csr_handle) != in oce_POST()
341 ddi_fm_service_impact(dev->dip, DDI_SERVICE_DEGRADED); in oce_POST()
354 post_status.dw0 = OCE_CSR_READ32(dev, MPU_EP_SEMAPHORE); in oce_POST()
355 if (oce_fm_check_acc_handle(dev, dev->csr_handle) != in oce_POST()
357 ddi_fm_service_impact(dev->dip, DDI_SERVICE_DEGRADED); in oce_POST()
361 oce_log(dev, CE_WARN, MOD_CONFIG, in oce_POST()
393 oce_create_nw_interface(struct oce_dev *dev) in oce_create_nw_interface() argument
399 if (dev->rss_enable) { in oce_create_nw_interface()
405 ret = oce_if_create(dev, capab_flags, capab_en_flags, in oce_create_nw_interface()
406 0, &dev->mac_addr[0], (uint32_t *)&dev->if_id); in oce_create_nw_interface()
408 oce_log(dev, CE_WARN, MOD_CONFIG, in oce_create_nw_interface()
412 atomic_inc_32(&dev->nifs); in oce_create_nw_interface()
414 dev->if_cap_flags = capab_en_flags; in oce_create_nw_interface()
417 ret = oce_config_vlan(dev, (uint8_t)dev->if_id, NULL, 0, in oce_create_nw_interface()
420 oce_log(dev, CE_WARN, MOD_CONFIG, in oce_create_nw_interface()
422 oce_delete_nw_interface(dev); in oce_create_nw_interface()
428 ret = oce_set_flow_control(dev, dev->flow_control); in oce_create_nw_interface()
430 oce_log(dev, CE_NOTE, MOD_CONFIG, in oce_create_nw_interface()
433 ret = oce_set_promiscuous(dev, dev->promisc); in oce_create_nw_interface()
436 oce_log(dev, CE_NOTE, MOD_CONFIG, in oce_create_nw_interface()
444 oce_delete_nw_interface(struct oce_dev *dev) { in oce_delete_nw_interface() argument
447 if (dev->nifs > 0) { in oce_delete_nw_interface()
448 (void) oce_if_del(dev, dev->if_id); in oce_delete_nw_interface()
449 atomic_dec_32(&dev->nifs); in oce_delete_nw_interface()
454 oce_create_itbl(struct oce_dev *dev, char *itbl) in oce_create_itbl() argument
457 struct oce_rq **rss_queuep = &dev->rq[1]; in oce_create_itbl()
458 int nrss = dev->nrqs - 1; in oce_create_itbl()
466 oce_setup_adapter(struct oce_dev *dev) in oce_setup_adapter() argument
473 oce_chip_di(dev); in oce_setup_adapter()
475 ret = oce_create_nw_interface(dev); in oce_setup_adapter()
479 ret = oce_create_queues(dev); in oce_setup_adapter()
481 oce_delete_nw_interface(dev); in oce_setup_adapter()
484 if (dev->rss_enable) { in oce_setup_adapter()
485 (void) oce_create_itbl(dev, itbl); in oce_setup_adapter()
487 ret = oce_config_rss(dev, dev->if_id, hkey, itbl, OCE_ITBL_SIZE, in oce_setup_adapter()
490 oce_log(dev, CE_NOTE, MOD_CONFIG, "%s", in oce_setup_adapter()
492 oce_delete_queues(dev); in oce_setup_adapter()
493 oce_delete_nw_interface(dev); in oce_setup_adapter()
497 ret = oce_setup_handlers(dev); in oce_setup_adapter()
499 oce_log(dev, CE_NOTE, MOD_CONFIG, "%s", in oce_setup_adapter()
501 oce_delete_queues(dev); in oce_setup_adapter()
502 oce_delete_nw_interface(dev); in oce_setup_adapter()
509 oce_unsetup_adapter(struct oce_dev *dev) in oce_unsetup_adapter() argument
511 oce_remove_handler(dev); in oce_unsetup_adapter()
512 if (dev->rss_enable) { in oce_unsetup_adapter()
517 ret = oce_config_rss(dev, dev->if_id, hkey, itbl, OCE_ITBL_SIZE, in oce_unsetup_adapter()
521 oce_log(dev, CE_NOTE, MOD_CONFIG, "%s", in oce_unsetup_adapter()
525 oce_delete_queues(dev); in oce_unsetup_adapter()
526 oce_delete_nw_interface(dev); in oce_unsetup_adapter()
530 oce_hw_init(struct oce_dev *dev) in oce_hw_init() argument
535 ret = oce_POST(dev); in oce_hw_init()
537 oce_log(dev, CE_WARN, MOD_CONFIG, "%s", in oce_hw_init()
543 dev->bmbx = oce_alloc_dma_buffer(dev, in oce_hw_init()
545 if (dev->bmbx == NULL) { in oce_hw_init()
546 oce_log(dev, CE_WARN, MOD_CONFIG, in oce_hw_init()
552 ret = oce_reset_fun(dev); in oce_hw_init()
554 oce_log(dev, CE_WARN, MOD_CONFIG, "%s", in oce_hw_init()
560 ret = oce_mbox_init(dev); in oce_hw_init()
562 oce_log(dev, CE_WARN, MOD_CONFIG, in oce_hw_init()
568 ret = oce_get_fw_version(dev); in oce_hw_init()
570 oce_log(dev, CE_WARN, MOD_CONFIG, in oce_hw_init()
576 ret = oce_get_fw_config(dev); in oce_hw_init()
578 oce_log(dev, CE_WARN, MOD_CONFIG, in oce_hw_init()
584 ret = oce_read_mac_addr(dev, 0, 1, in oce_hw_init()
587 oce_log(dev, CE_WARN, MOD_CONFIG, in oce_hw_init()
591 bcopy(&mac_addr.mac_addr[0], &dev->mac_addr[0], ETHERADDRL); in oce_hw_init()
594 oce_hw_fini(dev); in oce_hw_init()
598 oce_hw_fini(struct oce_dev *dev) in oce_hw_fini() argument
600 if (dev->bmbx != NULL) { in oce_hw_fini()
601 oce_free_dma_buffer(dev, dev->bmbx); in oce_hw_fini()
602 dev->bmbx = NULL; in oce_hw_fini()