Lines Matching refs:nesdev

60 static u32 nes_set_pau(struct nes_device *nesdev)  in nes_set_pau()  argument
65 nes_write_indexed(nesdev, NES_IDX_GPR2, NES_ENABLE_PAU); in nes_set_pau()
66 nes_write_indexed(nesdev, NES_IDX_GPR_TRIGGER, 1); in nes_set_pau()
70 if (!nes_read_indexed(nesdev, NES_IDX_GPR2)) { in nes_set_pau()
74 nes_write_indexed(nesdev, NES_IDX_GPR_TRIGGER, 1); in nes_set_pau()
86 int nes_read_eeprom_values(struct nes_device *nesdev, struct nes_adapter *nesadapter) in nes_read_eeprom_values() argument
100 eeprom_data = nes_read16_eeprom(nesdev->regs, 0); in nes_read_eeprom_values()
106 eeprom_data = nes_read16_eeprom(nesdev->regs, eeprom_offset + 4); in nes_read_eeprom_values()
112 eeprom_data = nes_read16_eeprom(nesdev->regs, eeprom_offset + 2); in nes_read_eeprom_values()
118 eeprom_data = nes_read16_eeprom(nesdev->regs, eeprom_offset + 4); in nes_read_eeprom_values()
123 sw_section_ver = nes_read16_eeprom(nesdev->regs, nesadapter->software_eeprom_offset + 6); in nes_read_eeprom_values()
127 eeprom_data = nes_read16_eeprom(nesdev->regs, eeprom_offset + 2); in nes_read_eeprom_values()
132 eeprom_data = nes_read16_eeprom(nesdev->regs, next_section_address + 4); in nes_read_eeprom_values()
140 eeprom_data = nes_read16_eeprom(nesdev->regs, eeprom_offset + 2); in nes_read_eeprom_values()
145 eeprom_data = nes_read16_eeprom(nesdev->regs, next_section_address + 4); in nes_read_eeprom_values()
153 eeprom_data = nes_read16_eeprom(nesdev->regs, eeprom_offset + 2); in nes_read_eeprom_values()
157 eeprom_data = nes_read16_eeprom(nesdev->regs, next_section_address + 4); in nes_read_eeprom_values()
165 eeprom_data = nes_read16_eeprom(nesdev->regs, eeprom_offset + 2); in nes_read_eeprom_values()
169 eeprom_data = nes_read16_eeprom(nesdev->regs, next_section_address + 4); in nes_read_eeprom_values()
177 eeprom_data = nes_read16_eeprom(nesdev->regs, eeprom_offset + 2); in nes_read_eeprom_values()
181 eeprom_data = nes_read16_eeprom(nesdev->regs, next_section_address + 4); in nes_read_eeprom_values()
189 eeprom_data = nes_read16_eeprom(nesdev->regs, eeprom_offset + 2); in nes_read_eeprom_values()
193 eeprom_data = nes_read16_eeprom(nesdev->regs, next_section_address + 4); in nes_read_eeprom_values()
199 eeprom_data = nes_read16_eeprom(nesdev->regs, next_section_address + 8); in nes_read_eeprom_values()
213 if (!nes_set_pau(nesdev)) in nes_read_eeprom_values()
220 eeprom_data = nes_read16_eeprom(nesdev->regs, next_section_address + 10); in nes_read_eeprom_values()
229 nesadapter->netdev_max = (u8)nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
231 mac_addr_high = nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
233 mac_addr_low = (u32)nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
236 mac_addr_low += (u32)nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
246 eeprom_data = nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
252 eeprom_data = nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
264 eeprom_data = nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
267 eeprom_data = nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
273 eeprom_data = nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
276 eeprom_data = nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
282 eeprom_data = nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
285 eeprom_data = nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
291 eeprom_data = nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
294 eeprom_data = nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
301 eeprom_data = nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
304 nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
308 eeprom_data = nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
311 nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
315 eeprom_data = nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
318 nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
322 eeprom_data = nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
325 nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
330 eeprom_data = nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
333 nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
337 eeprom_data = nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
340 nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
344 eeprom_data = nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
347 nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
351 eeprom_data = nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
354 nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
358 eeprom_data = nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
361 nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
365 eeprom_data = nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
368 nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
373 eeprom_data = nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
377 eeprom_data = nes_read16_eeprom(nesdev->regs, eeprom_offset); in nes_read_eeprom_values()
414 void nes_write_1G_phy_reg(struct nes_device *nesdev, u8 phy_reg, u8 phy_addr, u16 data) in nes_write_1G_phy_reg() argument
419 nes_write_indexed(nesdev, NES_IDX_MAC_MDIO_CONTROL, in nes_write_1G_phy_reg()
423 u32temp = nes_read_indexed(nesdev, NES_IDX_MAC_INT_STATUS); in nes_write_1G_phy_reg()
426 nes_write_indexed(nesdev, NES_IDX_MAC_INT_STATUS, 1); in nes_write_1G_phy_reg()
441 void nes_read_1G_phy_reg(struct nes_device *nesdev, u8 phy_reg, u8 phy_addr, u16 *data) in nes_read_1G_phy_reg() argument
449 nes_write_indexed(nesdev, NES_IDX_MAC_MDIO_CONTROL, in nes_read_1G_phy_reg()
453 u32temp = nes_read_indexed(nesdev, NES_IDX_MAC_INT_STATUS); in nes_read_1G_phy_reg()
456 nes_write_indexed(nesdev, NES_IDX_MAC_INT_STATUS, 1); in nes_read_1G_phy_reg()
465 *data = (u16)nes_read_indexed(nesdev, NES_IDX_MAC_MDIO_CONTROL); in nes_read_1G_phy_reg()
473 void nes_write_10G_phy_reg(struct nes_device *nesdev, u16 phy_addr, u8 dev_addr, u16 phy_reg, in nes_write_10G_phy_reg() argument
483 nes_write_indexed(nesdev, NES_IDX_MAC_MDIO_CONTROL, in nes_write_10G_phy_reg()
487 u32temp = nes_read_indexed(nesdev, NES_IDX_MAC_INT_STATUS); in nes_write_10G_phy_reg()
489 nes_write_indexed(nesdev, NES_IDX_MAC_INT_STATUS, 1); in nes_write_10G_phy_reg()
498 nes_write_indexed(nesdev, NES_IDX_MAC_MDIO_CONTROL, in nes_write_10G_phy_reg()
502 u32temp = nes_read_indexed(nesdev, NES_IDX_MAC_INT_STATUS); in nes_write_10G_phy_reg()
504 nes_write_indexed(nesdev, NES_IDX_MAC_INT_STATUS, 1); in nes_write_10G_phy_reg()
519 void nes_read_10G_phy_reg(struct nes_device *nesdev, u8 phy_addr, u8 dev_addr, u16 phy_reg) in nes_read_10G_phy_reg() argument
528 nes_write_indexed(nesdev, NES_IDX_MAC_MDIO_CONTROL, in nes_read_10G_phy_reg()
532 u32temp = nes_read_indexed(nesdev, NES_IDX_MAC_INT_STATUS); in nes_read_10G_phy_reg()
534 nes_write_indexed(nesdev, NES_IDX_MAC_INT_STATUS, 1); in nes_read_10G_phy_reg()
543 nes_write_indexed(nesdev, NES_IDX_MAC_MDIO_CONTROL, in nes_read_10G_phy_reg()
547 u32temp = nes_read_indexed(nesdev, NES_IDX_MAC_INT_STATUS); in nes_read_10G_phy_reg()
549 nes_write_indexed(nesdev, NES_IDX_MAC_INT_STATUS, 1); in nes_read_10G_phy_reg()
562 struct nes_cqp_request *nes_get_cqp_request(struct nes_device *nesdev) in nes_get_cqp_request() argument
567 if (!list_empty(&nesdev->cqp_avail_reqs)) { in nes_get_cqp_request()
568 spin_lock_irqsave(&nesdev->cqp.lock, flags); in nes_get_cqp_request()
569 if (!list_empty(&nesdev->cqp_avail_reqs)) { in nes_get_cqp_request()
570 cqp_request = list_entry(nesdev->cqp_avail_reqs.next, in nes_get_cqp_request()
574 spin_unlock_irqrestore(&nesdev->cqp.lock, flags); in nes_get_cqp_request()
599 void nes_free_cqp_request(struct nes_device *nesdev, in nes_free_cqp_request() argument
611 spin_lock_irqsave(&nesdev->cqp.lock, flags); in nes_free_cqp_request()
612 list_add_tail(&cqp_request->list, &nesdev->cqp_avail_reqs); in nes_free_cqp_request()
613 spin_unlock_irqrestore(&nesdev->cqp.lock, flags); in nes_free_cqp_request()
617 void nes_put_cqp_request(struct nes_device *nesdev, in nes_put_cqp_request() argument
621 nes_free_cqp_request(nesdev, cqp_request); in nes_put_cqp_request()
628 void nes_post_cqp_request(struct nes_device *nesdev, in nes_post_cqp_request() argument
638 spin_lock_irqsave(&nesdev->cqp.lock, flags); in nes_post_cqp_request()
640 if (((((nesdev->cqp.sq_tail+(nesdev->cqp.sq_size*2))-nesdev->cqp.sq_head) & in nes_post_cqp_request()
641 (nesdev->cqp.sq_size - 1)) != 1) in nes_post_cqp_request()
642 && (list_empty(&nesdev->cqp_pending_reqs))) { in nes_post_cqp_request()
643 cqp_head = nesdev->cqp.sq_head++; in nes_post_cqp_request()
644 nesdev->cqp.sq_head &= nesdev->cqp.sq_size-1; in nes_post_cqp_request()
645 cqp_wqe = &nesdev->cqp.sq_vbase[cqp_head]; in nes_post_cqp_request()
658 nesdev->cqp.sq_head, nesdev->cqp.sq_tail, nesdev->cqp.sq_size, in nes_post_cqp_request()
664 nes_write32(nesdev->regs+NES_WQE_ALLOC, 0x01800000 | nesdev->cqp.qp_id); in nes_post_cqp_request()
673 list_add_tail(&cqp_request->list, &nesdev->cqp_pending_reqs); in nes_post_cqp_request()
676 spin_unlock_irqrestore(&nesdev->cqp.lock, flags); in nes_post_cqp_request()
684 int nes_arp_table(struct nes_device *nesdev, u32 ip_addr, u8 *mac_addr, u32 action) in nes_arp_table() argument
686 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_arp_table()
746 struct nes_device *nesdev = nesadapter->nesdev; in nes_mh_fix() local
775 mac_tx_frames_low = nes_read_indexed(nesdev, NES_IDX_MAC_TX_FRAMES_LOW); in nes_mh_fix()
776 mac_tx_frames_high = nes_read_indexed(nesdev, NES_IDX_MAC_TX_FRAMES_HIGH); in nes_mh_fix()
777 mac_tx_pauses = nes_read_indexed(nesdev, NES_IDX_MAC_TX_PAUSE_FRAMES); in nes_mh_fix()
778 used_chunks_tx = nes_read_indexed(nesdev, NES_IDX_USED_CHUNKS_TX); in nes_mh_fix()
779 nesdev->mac_pause_frames_sent += mac_tx_pauses; in nes_mh_fix()
782 temp_last_used_chunks_tx = nesdev->last_used_chunks_tx; in nes_mh_fix()
784 if (nesdev->netdev[0]) { in nes_mh_fix()
785 nesvnic = netdev_priv(nesdev->netdev[0]); in nes_mh_fix()
803 (!(nesdev->last_used_chunks_tx&used_chunks_mask)) || in nes_mh_fix()
805 nesdev->last_used_chunks_tx = used_chunks_tx; in nes_mh_fix()
808 nesdev->last_used_chunks_tx = used_chunks_tx; in nes_mh_fix()
811 nes_write_indexed(nesdev, NES_IDX_MAC_TX_CONTROL, 0x00000005); in nes_mh_fix()
813 mac_tx_pauses = nes_read_indexed(nesdev, NES_IDX_MAC_TX_PAUSE_FRAMES); in nes_mh_fix()
815 nesdev->mac_pause_frames_sent += mac_tx_pauses; in nes_mh_fix()
819 tx_control = nes_read_indexed(nesdev, NES_IDX_MAC_TX_CONTROL); in nes_mh_fix()
820 tx_config = nes_read_indexed(nesdev, NES_IDX_MAC_TX_CONFIG); in nes_mh_fix()
821 tx_pause_quanta = nes_read_indexed(nesdev, NES_IDX_MAC_TX_PAUSE_QUANTA); in nes_mh_fix()
822 rx_control = nes_read_indexed(nesdev, NES_IDX_MAC_RX_CONTROL); in nes_mh_fix()
823 rx_config = nes_read_indexed(nesdev, NES_IDX_MAC_RX_CONFIG); in nes_mh_fix()
824 mac_exact_match = nes_read_indexed(nesdev, NES_IDX_MAC_EXACT_MATCH_BOTTOM); in nes_mh_fix()
825 mpp_debug = nes_read_indexed(nesdev, NES_IDX_MPP_DEBUG); in nes_mh_fix()
828 mac_tx_pauses = nes_read_indexed(nesdev, NES_IDX_MAC_TX_PAUSE_FRAMES); in nes_mh_fix()
830 nesdev->last_mac_tx_pauses = nesdev->mac_pause_frames_sent; in nes_mh_fix()
836 nes_write_indexed(nesdev, NES_IDX_MAC_TX_CONTROL, 0x00000000); in nes_mh_fix()
837 nes_write_indexed(nesdev, NES_IDX_MAC_TX_CONFIG, 0x00000000); in nes_mh_fix()
838 reset_value = nes_read32(nesdev->regs+NES_SOFTWARE_RESET); in nes_mh_fix()
840 nes_write32(nesdev->regs+NES_SOFTWARE_RESET, reset_value | 0x0000001d); in nes_mh_fix()
842 while (((nes_read32(nesdev->regs+NES_SOFTWARE_RESET) in nes_mh_fix()
847 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_CONTROL0, 0x00000008); in nes_mh_fix()
848 nes_read_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_STATUS0); in nes_mh_fix()
850 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_TX_EMP0, 0x000bdef7); in nes_mh_fix()
851 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_TX_DRIVE0, 0x9ce73000); in nes_mh_fix()
852 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_RX_MODE0, 0x0ff00000); in nes_mh_fix()
853 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_RX_SIGDET0, 0x00000000); in nes_mh_fix()
854 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_BYPASS0, 0x00000000); in nes_mh_fix()
855 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_LOOPBACK_CONTROL0, 0x00000000); in nes_mh_fix()
857 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_RX_EQ_CONTROL0, 0xf0182222); in nes_mh_fix()
859 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_RX_EQ_CONTROL0, 0xf0042222); in nes_mh_fix()
861 nes_read_indexed(nesdev, NES_IDX_ETH_SERDES_RX_EQ_STATUS0); in nes_mh_fix()
862 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_CDR_CONTROL0, 0x000000ff); in nes_mh_fix()
864 nes_write_indexed(nesdev, NES_IDX_MAC_TX_CONTROL, tx_control); in nes_mh_fix()
865 nes_write_indexed(nesdev, NES_IDX_MAC_TX_CONFIG, tx_config); in nes_mh_fix()
866 nes_write_indexed(nesdev, NES_IDX_MAC_TX_PAUSE_QUANTA, tx_pause_quanta); in nes_mh_fix()
867 nes_write_indexed(nesdev, NES_IDX_MAC_RX_CONTROL, rx_control); in nes_mh_fix()
868 nes_write_indexed(nesdev, NES_IDX_MAC_RX_CONFIG, rx_config); in nes_mh_fix()
869 nes_write_indexed(nesdev, NES_IDX_MAC_EXACT_MATCH_BOTTOM, mac_exact_match); in nes_mh_fix()
870 nes_write_indexed(nesdev, NES_IDX_MPP_DEBUG, mpp_debug); in nes_mh_fix()
876 nesdev->nesadapter->mh_timer.expires = jiffies + (HZ/5); in nes_mh_fix()
877 add_timer(&nesdev->nesadapter->mh_timer); in nes_mh_fix()