Lines Matching refs:nesdev
133 struct nes_device *nesdev; in nes_inetaddr_event() local
141 list_for_each_entry(nesdev, &nes_dev_list, list) { in nes_inetaddr_event()
143 nesdev, nesdev->netdev[0]->name); in nes_inetaddr_event()
144 netdev = nesdev->netdev[0]; in nes_inetaddr_event()
160 nes_write_indexed(nesdev, in nes_inetaddr_event()
161 NES_IDX_DST_IP_ADDR+(0x10*PCI_FUNC(nesdev->pcidev->devfn)), 0); in nes_inetaddr_event()
192 nes_write_indexed(nesdev, in nes_inetaddr_event()
193 NES_IDX_DST_IP_ADDR+(0x10*PCI_FUNC(nesdev->pcidev->devfn)), in nes_inetaddr_event()
219 struct nes_device *nesdev; in nes_net_event() local
225 list_for_each_entry(nesdev, &nes_dev_list, list) { in nes_net_event()
227 netdev = nesdev->netdev[0]; in nes_net_event()
268 static void nes_cqp_rem_ref_callback(struct nes_device *nesdev, struct nes_cqp_request *cqp_request) in nes_cqp_rem_ref_callback() argument
272 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_cqp_rem_ref_callback()
279 pci_free_consistent(nesdev->pcidev, nesqp->qp_mem_size, in nes_cqp_rem_ref_callback()
284 pci_free_consistent(nesdev->pcidev, 256, nesqp->pbl_vbase, nesqp->pbl_pbase); in nes_cqp_rem_ref_callback()
288 pci_free_consistent(nesdev->pcidev, nesqp->qp_mem_size, in nes_cqp_rem_ref_callback()
306 struct nes_device *nesdev = nesvnic->nesdev; in nes_rem_ref() local
321 nes_destroy_pau_qp(nesdev, nesqp); in nes_rem_ref()
324 cqp_request = nes_get_cqp_request(nesdev); in nes_rem_ref()
335 nes_fill_init_cqp_wqe(cqp_wqe, nesdev); in nes_rem_ref()
346 nes_post_cqp_request(nesdev, cqp_request); in nes_rem_ref()
357 struct nes_device *nesdev = nesvnic->nesdev; in nes_get_qp() local
358 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_get_qp()
381 struct nes_device *nesdev = (struct nes_device *)dev_id; in nes_interrupt() local
389 if (nesdev->msi_enabled) { in nes_interrupt()
393 if (unlikely(nesdev->nesadapter->hw_rev == NE020_REV)) { in nes_interrupt()
396 int_mask = nes_read32(nesdev->regs + NES_INT_MASK); in nes_interrupt()
399 int_stat = nes_read32(nesdev->regs + NES_INT_STAT); in nes_interrupt()
400 int_req = nesdev->int_req; in nes_interrupt()
408 timer_stat = nes_read32(nesdev->regs + NES_TIMER_STAT); in nes_interrupt()
409 if ((timer_stat & nesdev->timer_int_req) != 0) { in nes_interrupt()
415 intf_int_stat = nes_read32(nesdev->regs+NES_INTF_INT_STAT); in nes_interrupt()
416 if ((intf_int_stat & nesdev->intf_int_req) != 0) { in nes_interrupt()
422 nes_write32(nesdev->regs+NES_INT_MASK, int_mask & (~0x80000000)); in nes_interrupt()
423 int_mask = nes_read32(nesdev->regs+NES_INT_MASK); in nes_interrupt()
425 nesdev->int_stat = int_stat; in nes_interrupt()
426 nesdev->napi_isr_ran = 1; in nes_interrupt()
431 handled = nes_read32(nesdev->regs+NES_INT_PENDING); in nes_interrupt()
437 if (nes_napi_isr(nesdev) == 0) { in nes_interrupt()
438 tasklet_schedule(&nesdev->dpc_tasklet); in nes_interrupt()
454 struct nes_device *nesdev = NULL; in nes_probe() local
520 nesdev = kzalloc(sizeof(struct nes_device), GFP_KERNEL); in nes_probe()
521 if (!nesdev) { in nes_probe()
526 nes_debug(NES_DBG_INIT, "Allocated nes device at %p\n", nesdev); in nes_probe()
527 nesdev->pcidev = pcidev; in nes_probe()
528 pci_set_drvdata(pcidev, nesdev); in nes_probe()
533 spin_lock_init(&nesdev->indexed_regs_lock); in nes_probe()
543 nesdev->regs = mmio_regs; in nes_probe()
544 nesdev->index_reg = 0x50 + (PCI_FUNC(pcidev->devfn)*8) + mmio_regs; in nes_probe()
547 nes_write32(nesdev->regs+NES_INT_MASK, 0x7fffffff); in nes_probe()
550 if (!pci_enable_msi(nesdev->pcidev)) { in nes_probe()
551 nesdev->msi_enabled = 1; in nes_probe()
563 nesdev->csr_start = pci_resource_start(nesdev->pcidev, BAR_0); in nes_probe()
564 nesdev->doorbell_region = pci_resource_start(nesdev->pcidev, BAR_1); in nes_probe()
567 nesdev->nesadapter = nes_init_adapter(nesdev, hw_rev); in nes_probe()
568 if (!nesdev->nesadapter) { in nes_probe()
573 nesdev->nesadapter->et_rx_coalesce_usecs_irq = interrupt_mod_interval; in nes_probe()
574 nesdev->nesadapter->wqm_quanta = wqm_quanta; in nes_probe()
578 nesdev->base_doorbell_index = 1; in nes_probe()
579 nesdev->doorbell_start = nesdev->nesadapter->doorbell_start; in nes_probe()
580 if (nesdev->nesadapter->phy_type[0] == NES_PHY_TYPE_PUMA_1G) { in nes_probe()
581 switch (PCI_FUNC(nesdev->pcidev->devfn) % in nes_probe()
582 nesdev->nesadapter->port_count) { in nes_probe()
584 nesdev->mac_index = 2; in nes_probe()
587 nesdev->mac_index = 1; in nes_probe()
590 nesdev->mac_index = 3; in nes_probe()
594 nesdev->mac_index = 0; in nes_probe()
597 nesdev->mac_index = PCI_FUNC(nesdev->pcidev->devfn) % in nes_probe()
598 nesdev->nesadapter->port_count; in nes_probe()
602 ((nesdev->nesadapter->phy_type[0] == NES_PHY_TYPE_GLADIUS) && in nes_probe()
613 tasklet_init(&nesdev->dpc_tasklet, nes_dpc, (unsigned long)nesdev); in nes_probe()
616 if (nes_init_cqp(nesdev)) { in nes_probe()
622 nes_write32(nesdev->regs+NES_CQE_ALLOC, NES_CQE_ALLOC_NOTIFY_NEXT | in nes_probe()
623 PCI_FUNC(nesdev->pcidev->devfn)); in nes_probe()
624 nes_read32(nesdev->regs+NES_CQE_ALLOC); in nes_probe()
627 nesdev->int_req = (0x101 << PCI_FUNC(nesdev->pcidev->devfn)) | in nes_probe()
628 (1 << (PCI_FUNC(nesdev->pcidev->devfn)+16)); in nes_probe()
629 if (PCI_FUNC(nesdev->pcidev->devfn) < 4) { in nes_probe()
630 nesdev->int_req |= (1 << (PCI_FUNC(nesdev->mac_index)+24)); in nes_probe()
634 if (PCI_FUNC(nesdev->pcidev->devfn) == 0) { in nes_probe()
636 nesdev->intf_int_req = NES_INTF_INT_PCIERR | NES_INTF_INT_CRITERR; in nes_probe()
637 nesdev->int_req |= NES_INT_INTF; in nes_probe()
639 nesdev->intf_int_req = 0; in nes_probe()
641 nesdev->intf_int_req |= (1 << (PCI_FUNC(nesdev->pcidev->devfn)+16)); in nes_probe()
642 nes_write_indexed(nesdev, NES_IDX_DEBUG_ERROR_MASKS0, 0); in nes_probe()
643 nes_write_indexed(nesdev, NES_IDX_DEBUG_ERROR_MASKS1, 0); in nes_probe()
644 nes_write_indexed(nesdev, NES_IDX_DEBUG_ERROR_MASKS2, 0x00001265); in nes_probe()
645 nes_write_indexed(nesdev, NES_IDX_DEBUG_ERROR_MASKS4, 0x18021804); in nes_probe()
647 nes_write_indexed(nesdev, NES_IDX_DEBUG_ERROR_MASKS3, 0x17801790); in nes_probe()
650 nesdev->timer_int_req = 0x101 << PCI_FUNC(nesdev->pcidev->devfn); in nes_probe()
651 nesdev->nesadapter->timer_int_req |= nesdev->timer_int_req; in nes_probe()
653 PCI_FUNC(nesdev->pcidev->devfn), in nes_probe()
654 nesdev->timer_int_req, nesdev->nesadapter->timer_int_req); in nes_probe()
656 nes_write32(nesdev->regs+NES_INTF_INT_MASK, ~(nesdev->intf_int_req)); in nes_probe()
658 list_add_tail(&nesdev->list, &nes_dev_list); in nes_probe()
661 ret = request_irq(pcidev->irq, nes_interrupt, IRQF_SHARED, DRV_NAME, nesdev); in nes_probe()
668 nes_write32(nesdev->regs+NES_INT_MASK, ~nesdev->int_req); in nes_probe()
676 INIT_DELAYED_WORK(&nesdev->work, nes_recheck_link_status); in nes_probe()
679 netdev = nes_netdev_init(nesdev, mmio_regs); in nes_probe()
695 nesdev->netdev_count++; in nes_probe()
696 nesdev->nesadapter->netdev_count++; in nes_probe()
704 while (nesdev->netdev_count > 0) { in nes_probe()
705 nesdev->netdev_count--; in nes_probe()
706 nesdev->nesadapter->netdev_count--; in nes_probe()
708 unregister_netdev(nesdev->netdev[nesdev->netdev_count]); in nes_probe()
709 nes_netdev_destroy(nesdev->netdev[nesdev->netdev_count]); in nes_probe()
713 nesdev->netdev_count, nesdev->nesadapter->netdev_count); in nes_probe()
721 list_del(&nesdev->list); in nes_probe()
722 nes_destroy_cqp(nesdev); in nes_probe()
726 free_irq(pcidev->irq, nesdev); in nes_probe()
727 if (nesdev->msi_enabled) { in nes_probe()
732 tasklet_kill(&nesdev->dpc_tasklet); in nes_probe()
734 nes_destroy_adapter(nesdev->nesadapter); in nes_probe()
738 iounmap(nesdev->regs); in nes_probe()
742 kfree(nesdev); in nes_probe()
760 struct nes_device *nesdev = pci_get_drvdata(pcidev); in nes_remove() local
765 if (nesdev->netdev_count) { in nes_remove()
766 netdev = nesdev->netdev[netdev_index]; in nes_remove()
772 nesdev->netdev[netdev_index] = NULL; in nes_remove()
773 nesdev->netdev_count--; in nes_remove()
774 nesdev->nesadapter->netdev_count--; in nes_remove()
784 list_del(&nesdev->list); in nes_remove()
785 nes_destroy_cqp(nesdev); in nes_remove()
787 free_irq(pcidev->irq, nesdev); in nes_remove()
788 tasklet_kill(&nesdev->dpc_tasklet); in nes_remove()
790 spin_lock_irqsave(&nesdev->nesadapter->phy_lock, flags); in nes_remove()
791 if (nesdev->link_recheck) { in nes_remove()
792 spin_unlock_irqrestore(&nesdev->nesadapter->phy_lock, flags); in nes_remove()
793 cancel_delayed_work_sync(&nesdev->work); in nes_remove()
795 spin_unlock_irqrestore(&nesdev->nesadapter->phy_lock, flags); in nes_remove()
799 nes_destroy_adapter(nesdev->nesadapter); in nes_remove()
801 if (nesdev->msi_enabled) { in nes_remove()
805 iounmap(nesdev->regs); in nes_remove()
806 kfree(nesdev); in nes_remove()
820 struct nes_device *nesdev; in adapter_show() local
822 list_for_each_entry(nesdev, &nes_dev_list, list) { in adapter_show()
824 devfn = nesdev->pcidev->devfn; in adapter_show()
825 bus_number = nesdev->pcidev->bus->number; in adapter_show()
847 struct nes_device *nesdev; in eeprom_cmd_show() local
849 list_for_each_entry(nesdev, &nes_dev_list, list) { in eeprom_cmd_show()
851 eeprom_cmd = nes_read32(nesdev->regs + NES_EEPROM_COMMAND); in eeprom_cmd_show()
865 struct nes_device *nesdev; in eeprom_cmd_store() local
869 list_for_each_entry(nesdev, &nes_dev_list, list) { in eeprom_cmd_store()
871 nes_write32(nesdev->regs + NES_EEPROM_COMMAND, val); in eeprom_cmd_store()
884 struct nes_device *nesdev; in eeprom_data_show() local
886 list_for_each_entry(nesdev, &nes_dev_list, list) { in eeprom_data_show()
888 eeprom_data = nes_read32(nesdev->regs + NES_EEPROM_DATA); in eeprom_data_show()
903 struct nes_device *nesdev; in eeprom_data_store() local
907 list_for_each_entry(nesdev, &nes_dev_list, list) { in eeprom_data_store()
909 nes_write32(nesdev->regs + NES_EEPROM_DATA, val); in eeprom_data_store()
922 struct nes_device *nesdev; in flash_cmd_show() local
924 list_for_each_entry(nesdev, &nes_dev_list, list) { in flash_cmd_show()
926 flash_cmd = nes_read32(nesdev->regs + NES_FLASH_COMMAND); in flash_cmd_show()
941 struct nes_device *nesdev; in flash_cmd_store() local
945 list_for_each_entry(nesdev, &nes_dev_list, list) { in flash_cmd_store()
947 nes_write32(nesdev->regs + NES_FLASH_COMMAND, val); in flash_cmd_store()
960 struct nes_device *nesdev; in flash_data_show() local
962 list_for_each_entry(nesdev, &nes_dev_list, list) { in flash_data_show()
964 flash_data = nes_read32(nesdev->regs + NES_FLASH_DATA); in flash_data_show()
979 struct nes_device *nesdev; in flash_data_store() local
983 list_for_each_entry(nesdev, &nes_dev_list, list) { in flash_data_store()
985 nes_write32(nesdev->regs + NES_FLASH_DATA, val); in flash_data_store()
1014 struct nes_device *nesdev; in nonidx_data_show() local
1016 list_for_each_entry(nesdev, &nes_dev_list, list) { in nonidx_data_show()
1018 nonidx_data = nes_read32(nesdev->regs + sysfs_nonidx_addr); in nonidx_data_show()
1033 struct nes_device *nesdev; in nonidx_data_store() local
1037 list_for_each_entry(nesdev, &nes_dev_list, list) { in nonidx_data_store()
1039 nes_write32(nesdev->regs + sysfs_nonidx_addr, val); in nonidx_data_store()
1068 struct nes_device *nesdev; in idx_data_show() local
1070 list_for_each_entry(nesdev, &nes_dev_list, list) { in idx_data_show()
1072 idx_data = nes_read_indexed(nesdev, sysfs_idx_addr); in idx_data_show()
1087 struct nes_device *nesdev; in idx_data_store() local
1091 list_for_each_entry(nesdev, &nes_dev_list, list) { in idx_data_store()
1093 nes_write_indexed(nesdev, sysfs_idx_addr, val); in idx_data_store()
1106 struct nes_device *nesdev; in wqm_quanta_show() local
1108 list_for_each_entry(nesdev, &nes_dev_list, list) { in wqm_quanta_show()
1110 wqm_quanta_value = nesdev->nesadapter->wqm_quanta; in wqm_quanta_show()
1125 struct nes_device *nesdev; in wqm_quanta_store() local
1130 list_for_each_entry(nesdev, &nes_dev_list, list) { in wqm_quanta_store()
1132 nesdev->nesadapter->wqm_quanta = wqm_quanta_value; in wqm_quanta_store()
1133 wqm_config1 = nes_read_indexed(nesdev, in wqm_quanta_store()
1135 nes_write_indexed(nesdev, NES_IDX_WQM_CONFIG1, in wqm_quanta_store()