Lines Matching refs:nesdev

146 	struct nes_device *nesdev;  in nes_inetaddr_event()  local
154 list_for_each_entry(nesdev, &nes_dev_list, list) { in nes_inetaddr_event()
156 nesdev, nesdev->netdev[0]->name); in nes_inetaddr_event()
157 netdev = nesdev->netdev[0]; in nes_inetaddr_event()
173 nes_write_indexed(nesdev, in nes_inetaddr_event()
174 NES_IDX_DST_IP_ADDR+(0x10*PCI_FUNC(nesdev->pcidev->devfn)), 0); in nes_inetaddr_event()
200 nes_write_indexed(nesdev, in nes_inetaddr_event()
201 NES_IDX_DST_IP_ADDR+(0x10*PCI_FUNC(nesdev->pcidev->devfn)), in nes_inetaddr_event()
227 struct nes_device *nesdev; in nes_net_event() local
233 list_for_each_entry(nesdev, &nes_dev_list, list) { in nes_net_event()
235 netdev = nesdev->netdev[0]; in nes_net_event()
276 static void nes_cqp_rem_ref_callback(struct nes_device *nesdev, struct nes_cqp_request *cqp_request) in nes_cqp_rem_ref_callback() argument
280 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_cqp_rem_ref_callback()
287 pci_free_consistent(nesdev->pcidev, nesqp->qp_mem_size, in nes_cqp_rem_ref_callback()
292 pci_free_consistent(nesdev->pcidev, 256, nesqp->pbl_vbase, nesqp->pbl_pbase); in nes_cqp_rem_ref_callback()
296 pci_free_consistent(nesdev->pcidev, nesqp->qp_mem_size, in nes_cqp_rem_ref_callback()
314 struct nes_device *nesdev = nesvnic->nesdev; in nes_rem_ref() local
329 nes_destroy_pau_qp(nesdev, nesqp); in nes_rem_ref()
332 cqp_request = nes_get_cqp_request(nesdev); in nes_rem_ref()
343 nes_fill_init_cqp_wqe(cqp_wqe, nesdev); in nes_rem_ref()
354 nes_post_cqp_request(nesdev, cqp_request); in nes_rem_ref()
365 struct nes_device *nesdev = nesvnic->nesdev; in nes_get_qp() local
366 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_get_qp()
389 struct nes_device *nesdev = (struct nes_device *)dev_id; in nes_interrupt() local
397 if (nesdev->msi_enabled) { in nes_interrupt()
401 if (unlikely(nesdev->nesadapter->hw_rev == NE020_REV)) { in nes_interrupt()
404 int_mask = nes_read32(nesdev->regs + NES_INT_MASK); in nes_interrupt()
407 int_stat = nes_read32(nesdev->regs + NES_INT_STAT); in nes_interrupt()
408 int_req = nesdev->int_req; in nes_interrupt()
416 timer_stat = nes_read32(nesdev->regs + NES_TIMER_STAT); in nes_interrupt()
417 if ((timer_stat & nesdev->timer_int_req) != 0) { in nes_interrupt()
423 intf_int_stat = nes_read32(nesdev->regs+NES_INTF_INT_STAT); in nes_interrupt()
424 if ((intf_int_stat & nesdev->intf_int_req) != 0) { in nes_interrupt()
430 nes_write32(nesdev->regs+NES_INT_MASK, int_mask & (~0x80000000)); in nes_interrupt()
431 int_mask = nes_read32(nesdev->regs+NES_INT_MASK); in nes_interrupt()
433 nesdev->int_stat = int_stat; in nes_interrupt()
434 nesdev->napi_isr_ran = 1; in nes_interrupt()
439 handled = nes_read32(nesdev->regs+NES_INT_PENDING); in nes_interrupt()
445 if (nes_napi_isr(nesdev) == 0) { in nes_interrupt()
446 tasklet_schedule(&nesdev->dpc_tasklet); in nes_interrupt()
462 struct nes_device *nesdev = NULL; in nes_probe() local
528 nesdev = kzalloc(sizeof(struct nes_device), GFP_KERNEL); in nes_probe()
529 if (!nesdev) { in nes_probe()
535 nes_debug(NES_DBG_INIT, "Allocated nes device at %p\n", nesdev); in nes_probe()
536 nesdev->pcidev = pcidev; in nes_probe()
537 pci_set_drvdata(pcidev, nesdev); in nes_probe()
542 spin_lock_init(&nesdev->indexed_regs_lock); in nes_probe()
552 nesdev->regs = mmio_regs; in nes_probe()
553 nesdev->index_reg = 0x50 + (PCI_FUNC(pcidev->devfn)*8) + mmio_regs; in nes_probe()
556 nes_write32(nesdev->regs+NES_INT_MASK, 0x7fffffff); in nes_probe()
559 if (!pci_enable_msi(nesdev->pcidev)) { in nes_probe()
560 nesdev->msi_enabled = 1; in nes_probe()
572 nesdev->csr_start = pci_resource_start(nesdev->pcidev, BAR_0); in nes_probe()
573 nesdev->doorbell_region = pci_resource_start(nesdev->pcidev, BAR_1); in nes_probe()
576 nesdev->nesadapter = nes_init_adapter(nesdev, hw_rev); in nes_probe()
577 if (!nesdev->nesadapter) { in nes_probe()
582 nesdev->nesadapter->et_rx_coalesce_usecs_irq = interrupt_mod_interval; in nes_probe()
583 nesdev->nesadapter->wqm_quanta = wqm_quanta; in nes_probe()
587 nesdev->base_doorbell_index = 1; in nes_probe()
588 nesdev->doorbell_start = nesdev->nesadapter->doorbell_start; in nes_probe()
589 if (nesdev->nesadapter->phy_type[0] == NES_PHY_TYPE_PUMA_1G) { in nes_probe()
590 switch (PCI_FUNC(nesdev->pcidev->devfn) % in nes_probe()
591 nesdev->nesadapter->port_count) { in nes_probe()
593 nesdev->mac_index = 2; in nes_probe()
596 nesdev->mac_index = 1; in nes_probe()
599 nesdev->mac_index = 3; in nes_probe()
603 nesdev->mac_index = 0; in nes_probe()
606 nesdev->mac_index = PCI_FUNC(nesdev->pcidev->devfn) % in nes_probe()
607 nesdev->nesadapter->port_count; in nes_probe()
611 ((nesdev->nesadapter->phy_type[0] == NES_PHY_TYPE_GLADIUS) && in nes_probe()
622 tasklet_init(&nesdev->dpc_tasklet, nes_dpc, (unsigned long)nesdev); in nes_probe()
625 if (nes_init_cqp(nesdev)) { in nes_probe()
631 nes_write32(nesdev->regs+NES_CQE_ALLOC, NES_CQE_ALLOC_NOTIFY_NEXT | in nes_probe()
632 PCI_FUNC(nesdev->pcidev->devfn)); in nes_probe()
633 nes_read32(nesdev->regs+NES_CQE_ALLOC); in nes_probe()
636 nesdev->int_req = (0x101 << PCI_FUNC(nesdev->pcidev->devfn)) | in nes_probe()
637 (1 << (PCI_FUNC(nesdev->pcidev->devfn)+16)); in nes_probe()
638 if (PCI_FUNC(nesdev->pcidev->devfn) < 4) { in nes_probe()
639 nesdev->int_req |= (1 << (PCI_FUNC(nesdev->mac_index)+24)); in nes_probe()
643 if (PCI_FUNC(nesdev->pcidev->devfn) == 0) { in nes_probe()
645 nesdev->intf_int_req = NES_INTF_INT_PCIERR | NES_INTF_INT_CRITERR; in nes_probe()
646 nesdev->int_req |= NES_INT_INTF; in nes_probe()
648 nesdev->intf_int_req = 0; in nes_probe()
650 nesdev->intf_int_req |= (1 << (PCI_FUNC(nesdev->pcidev->devfn)+16)); in nes_probe()
651 nes_write_indexed(nesdev, NES_IDX_DEBUG_ERROR_MASKS0, 0); in nes_probe()
652 nes_write_indexed(nesdev, NES_IDX_DEBUG_ERROR_MASKS1, 0); in nes_probe()
653 nes_write_indexed(nesdev, NES_IDX_DEBUG_ERROR_MASKS2, 0x00001265); in nes_probe()
654 nes_write_indexed(nesdev, NES_IDX_DEBUG_ERROR_MASKS4, 0x18021804); in nes_probe()
656 nes_write_indexed(nesdev, NES_IDX_DEBUG_ERROR_MASKS3, 0x17801790); in nes_probe()
659 nesdev->timer_int_req = 0x101 << PCI_FUNC(nesdev->pcidev->devfn); in nes_probe()
660 nesdev->nesadapter->timer_int_req |= nesdev->timer_int_req; in nes_probe()
662 PCI_FUNC(nesdev->pcidev->devfn), in nes_probe()
663 nesdev->timer_int_req, nesdev->nesadapter->timer_int_req); in nes_probe()
665 nes_write32(nesdev->regs+NES_INTF_INT_MASK, ~(nesdev->intf_int_req)); in nes_probe()
667 list_add_tail(&nesdev->list, &nes_dev_list); in nes_probe()
670 ret = request_irq(pcidev->irq, nes_interrupt, IRQF_SHARED, DRV_NAME, nesdev); in nes_probe()
677 nes_write32(nesdev->regs+NES_INT_MASK, ~nesdev->int_req); in nes_probe()
696 INIT_DELAYED_WORK(&nesdev->work, nes_recheck_link_status); in nes_probe()
699 netdev = nes_netdev_init(nesdev, mmio_regs); in nes_probe()
715 nesdev->netdev_count++; in nes_probe()
716 nesdev->nesadapter->netdev_count++; in nes_probe()
724 while (nesdev->netdev_count > 0) { in nes_probe()
725 nesdev->netdev_count--; in nes_probe()
726 nesdev->nesadapter->netdev_count--; in nes_probe()
728 unregister_netdev(nesdev->netdev[nesdev->netdev_count]); in nes_probe()
729 nes_netdev_destroy(nesdev->netdev[nesdev->netdev_count]); in nes_probe()
733 nesdev->netdev_count, nesdev->nesadapter->netdev_count); in nes_probe()
742 list_del(&nesdev->list); in nes_probe()
743 nes_destroy_cqp(nesdev); in nes_probe()
747 free_irq(pcidev->irq, nesdev); in nes_probe()
748 if (nesdev->msi_enabled) { in nes_probe()
753 tasklet_kill(&nesdev->dpc_tasklet); in nes_probe()
755 nes_destroy_adapter(nesdev->nesadapter); in nes_probe()
759 iounmap(nesdev->regs); in nes_probe()
763 kfree(nesdev); in nes_probe()
781 struct nes_device *nesdev = pci_get_drvdata(pcidev); in nes_remove() local
786 if (nesdev->netdev_count) { in nes_remove()
787 netdev = nesdev->netdev[netdev_index]; in nes_remove()
793 nesdev->netdev[netdev_index] = NULL; in nes_remove()
794 nesdev->netdev_count--; in nes_remove()
795 nesdev->nesadapter->netdev_count--; in nes_remove()
807 list_del(&nesdev->list); in nes_remove()
808 nes_destroy_cqp(nesdev); in nes_remove()
810 free_irq(pcidev->irq, nesdev); in nes_remove()
811 tasklet_kill(&nesdev->dpc_tasklet); in nes_remove()
813 spin_lock_irqsave(&nesdev->nesadapter->phy_lock, flags); in nes_remove()
814 if (nesdev->link_recheck) { in nes_remove()
815 spin_unlock_irqrestore(&nesdev->nesadapter->phy_lock, flags); in nes_remove()
816 cancel_delayed_work_sync(&nesdev->work); in nes_remove()
818 spin_unlock_irqrestore(&nesdev->nesadapter->phy_lock, flags); in nes_remove()
822 nes_destroy_adapter(nesdev->nesadapter); in nes_remove()
824 if (nesdev->msi_enabled) { in nes_remove()
828 iounmap(nesdev->regs); in nes_remove()
829 kfree(nesdev); in nes_remove()
850 struct nes_device *nesdev; in nes_show_adapter() local
852 list_for_each_entry(nesdev, &nes_dev_list, list) { in nes_show_adapter()
854 devfn = nesdev->pcidev->devfn; in nes_show_adapter()
855 bus_number = nesdev->pcidev->bus->number; in nes_show_adapter()
877 struct nes_device *nesdev; in nes_show_ee_cmd() local
879 list_for_each_entry(nesdev, &nes_dev_list, list) { in nes_show_ee_cmd()
881 eeprom_cmd = nes_read32(nesdev->regs + NES_EEPROM_COMMAND); in nes_show_ee_cmd()
895 struct nes_device *nesdev; in nes_store_ee_cmd() local
899 list_for_each_entry(nesdev, &nes_dev_list, list) { in nes_store_ee_cmd()
901 nes_write32(nesdev->regs + NES_EEPROM_COMMAND, val); in nes_store_ee_cmd()
914 struct nes_device *nesdev; in nes_show_ee_data() local
916 list_for_each_entry(nesdev, &nes_dev_list, list) { in nes_show_ee_data()
918 eeprom_data = nes_read32(nesdev->regs + NES_EEPROM_DATA); in nes_show_ee_data()
933 struct nes_device *nesdev; in nes_store_ee_data() local
937 list_for_each_entry(nesdev, &nes_dev_list, list) { in nes_store_ee_data()
939 nes_write32(nesdev->regs + NES_EEPROM_DATA, val); in nes_store_ee_data()
952 struct nes_device *nesdev; in nes_show_flash_cmd() local
954 list_for_each_entry(nesdev, &nes_dev_list, list) { in nes_show_flash_cmd()
956 flash_cmd = nes_read32(nesdev->regs + NES_FLASH_COMMAND); in nes_show_flash_cmd()
971 struct nes_device *nesdev; in nes_store_flash_cmd() local
975 list_for_each_entry(nesdev, &nes_dev_list, list) { in nes_store_flash_cmd()
977 nes_write32(nesdev->regs + NES_FLASH_COMMAND, val); in nes_store_flash_cmd()
990 struct nes_device *nesdev; in nes_show_flash_data() local
992 list_for_each_entry(nesdev, &nes_dev_list, list) { in nes_show_flash_data()
994 flash_data = nes_read32(nesdev->regs + NES_FLASH_DATA); in nes_show_flash_data()
1009 struct nes_device *nesdev; in nes_store_flash_data() local
1013 list_for_each_entry(nesdev, &nes_dev_list, list) { in nes_store_flash_data()
1015 nes_write32(nesdev->regs + NES_FLASH_DATA, val); in nes_store_flash_data()
1044 struct nes_device *nesdev; in nes_show_nonidx_data() local
1046 list_for_each_entry(nesdev, &nes_dev_list, list) { in nes_show_nonidx_data()
1048 nonidx_data = nes_read32(nesdev->regs + sysfs_nonidx_addr); in nes_show_nonidx_data()
1063 struct nes_device *nesdev; in nes_store_nonidx_data() local
1067 list_for_each_entry(nesdev, &nes_dev_list, list) { in nes_store_nonidx_data()
1069 nes_write32(nesdev->regs + sysfs_nonidx_addr, val); in nes_store_nonidx_data()
1098 struct nes_device *nesdev; in nes_show_idx_data() local
1100 list_for_each_entry(nesdev, &nes_dev_list, list) { in nes_show_idx_data()
1102 idx_data = nes_read_indexed(nesdev, sysfs_idx_addr); in nes_show_idx_data()
1117 struct nes_device *nesdev; in nes_store_idx_data() local
1121 list_for_each_entry(nesdev, &nes_dev_list, list) { in nes_store_idx_data()
1123 nes_write_indexed(nesdev, sysfs_idx_addr, val); in nes_store_idx_data()
1140 struct nes_device *nesdev; in nes_show_wqm_quanta() local
1142 list_for_each_entry(nesdev, &nes_dev_list, list) { in nes_show_wqm_quanta()
1144 wqm_quanta_value = nesdev->nesadapter->wqm_quanta; in nes_show_wqm_quanta()
1163 struct nes_device *nesdev; in nes_store_wqm_quanta() local
1168 list_for_each_entry(nesdev, &nes_dev_list, list) { in nes_store_wqm_quanta()
1170 nesdev->nesadapter->wqm_quanta = wqm_quanta_value; in nes_store_wqm_quanta()
1171 wqm_config1 = nes_read_indexed(nesdev, in nes_store_wqm_quanta()
1173 nes_write_indexed(nesdev, NES_IDX_WQM_CONFIG1, in nes_store_wqm_quanta()