Lines Matching refs:hw_priv

3479 	struct dev_info *hw_priv = container_of(hw, struct dev_info, hw);  in hw_chk_wol_pme_status()  local
3480 struct pci_dev *pdev = hw_priv->pdev; in hw_chk_wol_pme_status()
3497 struct dev_info *hw_priv = container_of(hw, struct dev_info, hw); in hw_clr_wol_pme_status() local
3498 struct pci_dev *pdev = hw_priv->pdev; in hw_clr_wol_pme_status()
3519 struct dev_info *hw_priv = container_of(hw, struct dev_info, hw); in hw_cfg_wol_pme() local
3520 struct pci_dev *pdev = hw_priv->pdev; in hw_cfg_wol_pme()
4643 struct dev_info *hw_priv = priv->adapter; in send_packet() local
4644 struct ksz_hw *hw = &hw_priv->hw; in send_packet()
4672 hw_priv->pdev, skb->data, dma_buf->len, in send_packet()
4691 hw_priv->pdev, in send_packet()
4715 hw_priv->pdev, skb->data, dma_buf->len, in send_packet()
4745 static void transmit_cleanup(struct dev_info *hw_priv, int normal) in transmit_cleanup() argument
4749 struct ksz_hw *hw = &hw_priv->hw; in transmit_cleanup()
4755 spin_lock_irq(&hw_priv->hwlock); in transmit_cleanup()
4771 hw_priv->pdev, dma_buf->dma, dma_buf->len, in transmit_cleanup()
4789 spin_unlock_irq(&hw_priv->hwlock); in transmit_cleanup()
4803 static void tx_done(struct dev_info *hw_priv) in tx_done() argument
4805 struct ksz_hw *hw = &hw_priv->hw; in tx_done()
4808 transmit_cleanup(hw_priv, 1); in tx_done()
4841 struct dev_info *hw_priv = priv->adapter; in netdev_tx() local
4842 struct ksz_hw *hw = &hw_priv->hw; in netdev_tx()
4867 spin_lock_irq(&hw_priv->hwlock); in netdev_tx()
4896 spin_unlock_irq(&hw_priv->hwlock); in netdev_tx()
4915 struct dev_info *hw_priv = priv->adapter; in netdev_tx_timeout() local
4916 struct ksz_hw *hw = &hw_priv->hw; in netdev_tx_timeout()
4925 hw_priv = NULL; in netdev_tx_timeout()
4929 if (hw_priv) { in netdev_tx_timeout()
4933 transmit_cleanup(hw_priv, 0); in netdev_tx_timeout()
4936 ksz_init_rx_buffers(hw_priv); in netdev_tx_timeout()
4996 struct dev_info *hw_priv = priv->adapter; in rx_proc() local
5006 hw_priv->pdev, dma_buf->dma, packet_len + 4, in rx_proc()
5042 static int dev_rcv_packets(struct dev_info *hw_priv) in dev_rcv_packets() argument
5046 struct ksz_hw *hw = &hw_priv->hw; in dev_rcv_packets()
5078 static int port_rcv_packets(struct dev_info *hw_priv) in port_rcv_packets() argument
5082 struct ksz_hw *hw = &hw_priv->hw; in port_rcv_packets()
5123 static int dev_rcv_special(struct dev_info *hw_priv) in dev_rcv_special() argument
5127 struct ksz_hw *hw = &hw_priv->hw; in dev_rcv_special()
5184 struct dev_info *hw_priv = (struct dev_info *) data; in rx_proc_task() local
5185 struct ksz_hw *hw = &hw_priv->hw; in rx_proc_task()
5189 if (unlikely(!hw_priv->dev_rcv(hw_priv))) { in rx_proc_task()
5195 spin_lock_irq(&hw_priv->hwlock); in rx_proc_task()
5197 spin_unlock_irq(&hw_priv->hwlock); in rx_proc_task()
5200 tasklet_schedule(&hw_priv->rx_tasklet); in rx_proc_task()
5206 struct dev_info *hw_priv = (struct dev_info *) data; in tx_proc_task() local
5207 struct ksz_hw *hw = &hw_priv->hw; in tx_proc_task()
5211 tx_done(hw_priv); in tx_proc_task()
5214 spin_lock_irq(&hw_priv->hwlock); in tx_proc_task()
5216 spin_unlock_irq(&hw_priv->hwlock); in tx_proc_task()
5250 struct dev_info *hw_priv = priv->adapter; in netdev_intr() local
5251 struct ksz_hw *hw = &hw_priv->hw; in netdev_intr()
5253 spin_lock(&hw_priv->hwlock); in netdev_intr()
5259 spin_unlock(&hw_priv->hwlock); in netdev_intr()
5269 tasklet_schedule(&hw_priv->tx_tasklet); in netdev_intr()
5274 tasklet_schedule(&hw_priv->rx_tasklet); in netdev_intr()
5308 spin_unlock(&hw_priv->hwlock); in netdev_intr()
5323 struct dev_info *hw_priv = priv->adapter; in netdev_netpoll() local
5325 hw_dis_intr(&hw_priv->hw); in netdev_netpoll()
5363 struct dev_info *hw_priv = priv->adapter; in netdev_close() local
5365 struct ksz_hw *hw = &hw_priv->hw; in netdev_close()
5387 if (!hw_priv->wol_enable) in netdev_close()
5395 hw_priv->opened--; in netdev_close()
5396 if (!(hw_priv->opened)) { in netdev_close()
5397 ksz_stop_timer(&hw_priv->mib_timer_info); in netdev_close()
5398 flush_work(&hw_priv->mib_read); in netdev_close()
5407 tasklet_kill(&hw_priv->rx_tasklet); in netdev_close()
5408 tasklet_kill(&hw_priv->tx_tasklet); in netdev_close()
5409 free_irq(dev->irq, hw_priv->dev); in netdev_close()
5411 transmit_cleanup(hw_priv, 0); in netdev_close()
5423 static void hw_cfg_huge_frame(struct dev_info *hw_priv, struct ksz_hw *hw) in hw_cfg_huge_frame() argument
5437 hw_priv->dev_rcv = dev_rcv_special; in hw_cfg_huge_frame()
5441 hw_priv->dev_rcv = port_rcv_packets; in hw_cfg_huge_frame()
5443 hw_priv->dev_rcv = dev_rcv_packets; in hw_cfg_huge_frame()
5450 struct dev_info *hw_priv = priv->adapter; in prepare_hardware() local
5451 struct ksz_hw *hw = &hw_priv->hw; in prepare_hardware()
5455 hw_priv->dev = dev; in prepare_hardware()
5459 tasklet_init(&hw_priv->rx_tasklet, rx_proc_task, in prepare_hardware()
5460 (unsigned long) hw_priv); in prepare_hardware()
5461 tasklet_init(&hw_priv->tx_tasklet, tx_proc_task, in prepare_hardware()
5462 (unsigned long) hw_priv); in prepare_hardware()
5473 hw_cfg_huge_frame(hw_priv, hw); in prepare_hardware()
5474 ksz_init_rx_buffers(hw_priv); in prepare_hardware()
5502 struct dev_info *hw_priv = priv->adapter; in netdev_open() local
5503 struct ksz_hw *hw = &hw_priv->hw; in netdev_open()
5517 if (!(hw_priv->opened)) { in netdev_open()
5526 hw_priv->counter[i].time = next_jiffies; in netdev_open()
5535 hw_clr_wol_pme_status(&hw_priv->hw); in netdev_open()
5562 if (!(hw_priv->opened)) { in netdev_open()
5568 ksz_start_timer(&hw_priv->mib_timer_info, in netdev_open()
5569 hw_priv->mib_timer_info.period); in netdev_open()
5572 hw_priv->opened++; in netdev_open()
5663 struct dev_info *hw_priv = priv->adapter; in netdev_set_mac_address() local
5664 struct ksz_hw *hw = &hw_priv->hw; in netdev_set_mac_address()
5751 struct dev_info *hw_priv = priv->adapter; in netdev_set_rx_mode() local
5752 struct ksz_hw *hw = &hw_priv->hw; in netdev_set_rx_mode()
5758 if (hw_priv->hw.dev_count > 1) in netdev_set_rx_mode()
5763 if (hw_priv->hw.dev_count > 1) in netdev_set_rx_mode()
5799 struct dev_info *hw_priv = priv->adapter; in netdev_change_mtu() local
5800 struct ksz_hw *hw = &hw_priv->hw; in netdev_change_mtu()
5808 if (dev != hw_priv->dev) in netdev_change_mtu()
5825 hw_priv->mtu = hw_mtu; in netdev_change_mtu()
5844 struct dev_info *hw_priv = priv->adapter; in netdev_ioctl() local
5845 struct ksz_hw *hw = &hw_priv->hw; in netdev_ioctl()
5963 struct dev_info *hw_priv = priv->adapter; in netdev_get_settings() local
5965 mutex_lock(&hw_priv->lock); in netdev_get_settings()
5968 mutex_unlock(&hw_priv->lock); in netdev_get_settings()
5987 struct dev_info *hw_priv = priv->adapter; in netdev_set_settings() local
6015 mutex_lock(&hw_priv->lock); in netdev_set_settings()
6032 mutex_unlock(&hw_priv->lock); in netdev_set_settings()
6047 struct dev_info *hw_priv = priv->adapter; in netdev_nway_reset() local
6050 mutex_lock(&hw_priv->lock); in netdev_nway_reset()
6052 mutex_unlock(&hw_priv->lock); in netdev_nway_reset()
6084 struct dev_info *hw_priv = priv->adapter; in netdev_get_drvinfo() local
6088 strlcpy(info->bus_info, pci_name(hw_priv->pdev), in netdev_get_drvinfo()
6137 struct dev_info *hw_priv = priv->adapter; in netdev_get_regs() local
6138 struct ksz_hw *hw = &hw_priv->hw; in netdev_get_regs()
6143 mutex_lock(&hw_priv->lock); in netdev_get_regs()
6146 pci_read_config_dword(hw_priv->pdev, len, buf); in netdev_get_regs()
6156 mutex_unlock(&hw_priv->lock); in netdev_get_regs()
6175 struct dev_info *hw_priv = priv->adapter; in netdev_get_wol() local
6177 wol->supported = hw_priv->wol_support; in netdev_get_wol()
6178 wol->wolopts = hw_priv->wol_enable; in netdev_get_wol()
6195 struct dev_info *hw_priv = priv->adapter; in netdev_set_wol() local
6200 if (wol->wolopts & ~hw_priv->wol_support) in netdev_set_wol()
6203 hw_priv->wol_enable = wol->wolopts; in netdev_set_wol()
6207 hw_priv->wol_enable |= WAKE_PHY; in netdev_set_wol()
6208 hw_enable_wol(&hw_priv->hw, hw_priv->wol_enable, net_addr); in netdev_set_wol()
6270 struct dev_info *hw_priv = priv->adapter; in netdev_get_eeprom() local
6277 eeprom_data[i] = eeprom_read(&hw_priv->hw, i); in netdev_get_eeprom()
6298 struct dev_info *hw_priv = priv->adapter; in netdev_set_eeprom() local
6309 eeprom_data[i] = eeprom_read(&hw_priv->hw, i); in netdev_set_eeprom()
6315 eeprom_write(&hw_priv->hw, i, eeprom_data[i]); in netdev_set_eeprom()
6332 struct dev_info *hw_priv = priv->adapter; in netdev_get_pauseparam() local
6333 struct ksz_hw *hw = &hw_priv->hw; in netdev_get_pauseparam()
6365 struct dev_info *hw_priv = priv->adapter; in netdev_set_pauseparam() local
6366 struct ksz_hw *hw = &hw_priv->hw; in netdev_set_pauseparam()
6369 mutex_lock(&hw_priv->lock); in netdev_set_pauseparam()
6394 mutex_unlock(&hw_priv->lock); in netdev_set_pauseparam()
6410 struct dev_info *hw_priv = priv->adapter; in netdev_get_ringparam() local
6411 struct ksz_hw *hw = &hw_priv->hw; in netdev_get_ringparam()
6473 struct dev_info *hw_priv = priv->adapter; in netdev_get_strings() local
6474 struct ksz_hw *hw = &hw_priv->hw; in netdev_get_strings()
6493 struct dev_info *hw_priv = priv->adapter; in netdev_get_sset_count() local
6494 struct ksz_hw *hw = &hw_priv->hw; in netdev_get_sset_count()
6516 struct dev_info *hw_priv = priv->adapter; in netdev_get_ethtool_stats() local
6517 struct ksz_hw *hw = &hw_priv->hw; in netdev_get_ethtool_stats()
6526 mutex_lock(&hw_priv->lock); in netdev_get_ethtool_stats()
6530 hw_priv->counter[p].read = 1; in netdev_get_ethtool_stats()
6537 mutex_unlock(&hw_priv->lock); in netdev_get_ethtool_stats()
6540 schedule_work(&hw_priv->mib_read); in netdev_get_ethtool_stats()
6545 hw_priv->counter[p].counter, in netdev_get_ethtool_stats()
6546 2 == hw_priv->counter[p].read, in netdev_get_ethtool_stats()
6552 hw_priv->counter[p].counter, in netdev_get_ethtool_stats()
6553 2 == hw_priv->counter[p].read, in netdev_get_ethtool_stats()
6557 hw_priv->counter[p].counter, in netdev_get_ethtool_stats()
6558 2 == hw_priv->counter[p].read, in netdev_get_ethtool_stats()
6585 struct dev_info *hw_priv = priv->adapter; in netdev_set_features() local
6586 struct ksz_hw *hw = &hw_priv->hw; in netdev_set_features()
6588 mutex_lock(&hw_priv->lock); in netdev_set_features()
6599 mutex_unlock(&hw_priv->lock); in netdev_set_features()
6643 struct dev_info *hw_priv = in mib_read_work() local
6645 struct ksz_hw *hw = &hw_priv->hw; in mib_read_work()
6654 if (mib->cnt_ptr || 1 == hw_priv->counter[i].read) { in mib_read_work()
6659 hw_priv->counter[i].read = 0; in mib_read_work()
6663 hw_priv->counter[i].read = 2; in mib_read_work()
6665 &hw_priv->counter[i].counter); in mib_read_work()
6667 } else if (time_after_eq(jiffies, hw_priv->counter[i].time)) { in mib_read_work()
6670 hw_priv->counter[i].read = 1; in mib_read_work()
6672 hw_priv->counter[i].time = next_jiffies; in mib_read_work()
6679 hw_priv->counter[i].read = 1; in mib_read_work()
6686 struct dev_info *hw_priv = (struct dev_info *) ptr; in mib_monitor() local
6688 mib_read_work(&hw_priv->mib_read); in mib_monitor()
6691 if (hw_priv->pme_wait) { in mib_monitor()
6692 if (time_is_before_eq_jiffies(hw_priv->pme_wait)) { in mib_monitor()
6693 hw_clr_wol_pme_status(&hw_priv->hw); in mib_monitor()
6694 hw_priv->pme_wait = 0; in mib_monitor()
6696 } else if (hw_chk_wol_pme_status(&hw_priv->hw)) { in mib_monitor()
6699 hw_priv->pme_wait = jiffies + HZ * 2; in mib_monitor()
6702 ksz_update_timer(&hw_priv->mib_timer_info); in mib_monitor()
6715 struct dev_info *hw_priv = priv->adapter; in dev_monitor() local
6716 struct ksz_hw *hw = &hw_priv->hw; in dev_monitor()
6847 static void get_mac_addr(struct dev_info *hw_priv, u8 *macaddr, int port) in get_mac_addr() argument
6873 hw_priv->hw.override_addr[j++] = (u8) num; in get_mac_addr()
6874 hw_priv->hw.override_addr[5] += in get_mac_addr()
6875 hw_priv->hw.id; in get_mac_addr()
6877 hw_priv->hw.ksz_switch->other_addr[j++] = in get_mac_addr()
6879 hw_priv->hw.ksz_switch->other_addr[5] += in get_mac_addr()
6880 hw_priv->hw.id; in get_mac_addr()
6888 hw_priv->hw.mac_override = 1; in get_mac_addr()
6920 struct dev_info *hw_priv; in pcidev_init() local
6960 hw_priv = &info->dev_info; in pcidev_init()
6961 hw_priv->pdev = pdev; in pcidev_init()
6963 hw = &hw_priv->hw; in pcidev_init()
6979 dev_info(&hw_priv->pdev->dev, "%s\n", banner); in pcidev_init()
6980 dev_dbg(&hw_priv->pdev->dev, "Mem = %p; IRQ = %d\n", hw->io, pdev->irq); in pcidev_init()
7018 hw->parent = hw_priv; in pcidev_init()
7021 hw_priv->mtu = (REGULAR_RX_BUF_SIZE + 3) & ~3; in pcidev_init()
7023 if (ksz_alloc_mem(hw_priv)) in pcidev_init()
7026 hw_priv->hw.id = net_device_present; in pcidev_init()
7028 spin_lock_init(&hw_priv->hwlock); in pcidev_init()
7029 mutex_init(&hw_priv->lock); in pcidev_init()
7032 init_waitqueue_head(&hw_priv->counter[i].counter); in pcidev_init()
7035 get_mac_addr(hw_priv, macaddr, MAIN_PORT); in pcidev_init()
7045 get_mac_addr(hw_priv, mac1addr, OTHER_PORT); in pcidev_init()
7052 hw_priv->wol_support = WOL_SUPPORT; in pcidev_init()
7053 hw_priv->wol_enable = 0; in pcidev_init()
7056 INIT_WORK(&hw_priv->mib_read, mib_read_work); in pcidev_init()
7059 ksz_init_timer(&hw_priv->mib_timer_info, 500 * HZ / 1000, in pcidev_init()
7060 mib_monitor, hw_priv); in pcidev_init()
7070 priv->adapter = hw_priv; in pcidev_init()
7092 memcpy(dev->dev_addr, hw_priv->hw.override_addr, in pcidev_init()
7107 pci_dev_get(hw_priv->pdev); in pcidev_init()
7120 ksz_free_mem(hw_priv); in pcidev_init()
7139 struct dev_info *hw_priv = &info->dev_info; in pcidev_exit() local
7143 for (i = 0; i < hw_priv->hw.dev_count; i++) { in pcidev_exit()
7147 if (hw_priv->hw.io) in pcidev_exit()
7148 iounmap(hw_priv->hw.io); in pcidev_exit()
7149 ksz_free_mem(hw_priv); in pcidev_exit()
7150 kfree(hw_priv->hw.ksz_switch); in pcidev_exit()
7151 pci_dev_put(hw_priv->pdev); in pcidev_exit()
7160 struct dev_info *hw_priv = &info->dev_info; in pcidev_resume() local
7161 struct ksz_hw *hw = &hw_priv->hw; in pcidev_resume()
7167 if (hw_priv->wol_enable) in pcidev_resume()
7186 struct dev_info *hw_priv = &info->dev_info; in pcidev_suspend() local
7187 struct ksz_hw *hw = &hw_priv->hw; in pcidev_suspend()
7202 if (hw_priv->wol_enable) { in pcidev_suspend()
7203 hw_enable_wol(hw, hw_priv->wol_enable, net_addr); in pcidev_suspend()