Lines Matching refs:hw_priv
3470 struct dev_info *hw_priv = container_of(hw, struct dev_info, hw); in hw_chk_wol_pme_status() local
3471 struct pci_dev *pdev = hw_priv->pdev; in hw_chk_wol_pme_status()
3488 struct dev_info *hw_priv = container_of(hw, struct dev_info, hw); in hw_clr_wol_pme_status() local
3489 struct pci_dev *pdev = hw_priv->pdev; in hw_clr_wol_pme_status()
3510 struct dev_info *hw_priv = container_of(hw, struct dev_info, hw); in hw_cfg_wol_pme() local
3511 struct pci_dev *pdev = hw_priv->pdev; in hw_cfg_wol_pme()
4634 struct dev_info *hw_priv = priv->adapter; in send_packet() local
4635 struct ksz_hw *hw = &hw_priv->hw; in send_packet()
4662 dma_buf->dma = dma_map_single(&hw_priv->pdev->dev, skb->data, in send_packet()
4680 dma_buf->dma = dma_map_single(&hw_priv->pdev->dev, in send_packet()
4703 dma_buf->dma = dma_map_single(&hw_priv->pdev->dev, skb->data, in send_packet()
4734 static void transmit_cleanup(struct dev_info *hw_priv, int normal) in transmit_cleanup() argument
4738 struct ksz_hw *hw = &hw_priv->hw; in transmit_cleanup()
4744 spin_lock_irq(&hw_priv->hwlock); in transmit_cleanup()
4759 dma_unmap_single(&hw_priv->pdev->dev, dma_buf->dma, in transmit_cleanup()
4777 spin_unlock_irq(&hw_priv->hwlock); in transmit_cleanup()
4791 static void tx_done(struct dev_info *hw_priv) in tx_done() argument
4793 struct ksz_hw *hw = &hw_priv->hw; in tx_done()
4796 transmit_cleanup(hw_priv, 1); in tx_done()
4829 struct dev_info *hw_priv = priv->adapter; in netdev_tx() local
4830 struct ksz_hw *hw = &hw_priv->hw; in netdev_tx()
4855 spin_lock_irq(&hw_priv->hwlock); in netdev_tx()
4884 spin_unlock_irq(&hw_priv->hwlock); in netdev_tx()
4904 struct dev_info *hw_priv = priv->adapter; in netdev_tx_timeout() local
4905 struct ksz_hw *hw = &hw_priv->hw; in netdev_tx_timeout()
4914 hw_priv = NULL; in netdev_tx_timeout()
4918 if (hw_priv) { in netdev_tx_timeout()
4922 transmit_cleanup(hw_priv, 0); in netdev_tx_timeout()
4925 ksz_init_rx_buffers(hw_priv); in netdev_tx_timeout()
4985 struct dev_info *hw_priv = priv->adapter; in rx_proc() local
4993 dma_sync_single_for_cpu(&hw_priv->pdev->dev, dma_buf->dma, in rx_proc()
5028 static int dev_rcv_packets(struct dev_info *hw_priv) in dev_rcv_packets() argument
5032 struct ksz_hw *hw = &hw_priv->hw; in dev_rcv_packets()
5064 static int port_rcv_packets(struct dev_info *hw_priv) in port_rcv_packets() argument
5068 struct ksz_hw *hw = &hw_priv->hw; in port_rcv_packets()
5109 static int dev_rcv_special(struct dev_info *hw_priv) in dev_rcv_special() argument
5113 struct ksz_hw *hw = &hw_priv->hw; in dev_rcv_special()
5170 struct dev_info *hw_priv = from_tasklet(hw_priv, t, rx_tasklet); in rx_proc_task() local
5171 struct ksz_hw *hw = &hw_priv->hw; in rx_proc_task()
5175 if (unlikely(!hw_priv->dev_rcv(hw_priv))) { in rx_proc_task()
5181 spin_lock_irq(&hw_priv->hwlock); in rx_proc_task()
5183 spin_unlock_irq(&hw_priv->hwlock); in rx_proc_task()
5186 tasklet_schedule(&hw_priv->rx_tasklet); in rx_proc_task()
5192 struct dev_info *hw_priv = from_tasklet(hw_priv, t, tx_tasklet); in tx_proc_task() local
5193 struct ksz_hw *hw = &hw_priv->hw; in tx_proc_task()
5197 tx_done(hw_priv); in tx_proc_task()
5200 spin_lock_irq(&hw_priv->hwlock); in tx_proc_task()
5202 spin_unlock_irq(&hw_priv->hwlock); in tx_proc_task()
5236 struct dev_info *hw_priv = priv->adapter; in netdev_intr() local
5237 struct ksz_hw *hw = &hw_priv->hw; in netdev_intr()
5239 spin_lock(&hw_priv->hwlock); in netdev_intr()
5245 spin_unlock(&hw_priv->hwlock); in netdev_intr()
5255 tasklet_schedule(&hw_priv->tx_tasklet); in netdev_intr()
5260 tasklet_schedule(&hw_priv->rx_tasklet); in netdev_intr()
5294 spin_unlock(&hw_priv->hwlock); in netdev_intr()
5309 struct dev_info *hw_priv = priv->adapter; in netdev_netpoll() local
5311 hw_dis_intr(&hw_priv->hw); in netdev_netpoll()
5349 struct dev_info *hw_priv = priv->adapter; in netdev_close() local
5351 struct ksz_hw *hw = &hw_priv->hw; in netdev_close()
5373 if (!hw_priv->wol_enable) in netdev_close()
5381 hw_priv->opened--; in netdev_close()
5382 if (!(hw_priv->opened)) { in netdev_close()
5383 ksz_stop_timer(&hw_priv->mib_timer_info); in netdev_close()
5384 flush_work(&hw_priv->mib_read); in netdev_close()
5393 tasklet_kill(&hw_priv->rx_tasklet); in netdev_close()
5394 tasklet_kill(&hw_priv->tx_tasklet); in netdev_close()
5395 free_irq(dev->irq, hw_priv->dev); in netdev_close()
5397 transmit_cleanup(hw_priv, 0); in netdev_close()
5409 static void hw_cfg_huge_frame(struct dev_info *hw_priv, struct ksz_hw *hw) in hw_cfg_huge_frame() argument
5423 hw_priv->dev_rcv = dev_rcv_special; in hw_cfg_huge_frame()
5427 hw_priv->dev_rcv = port_rcv_packets; in hw_cfg_huge_frame()
5429 hw_priv->dev_rcv = dev_rcv_packets; in hw_cfg_huge_frame()
5436 struct dev_info *hw_priv = priv->adapter; in prepare_hardware() local
5437 struct ksz_hw *hw = &hw_priv->hw; in prepare_hardware()
5441 hw_priv->dev = dev; in prepare_hardware()
5445 tasklet_setup(&hw_priv->rx_tasklet, rx_proc_task); in prepare_hardware()
5446 tasklet_setup(&hw_priv->tx_tasklet, tx_proc_task); in prepare_hardware()
5457 hw_cfg_huge_frame(hw_priv, hw); in prepare_hardware()
5458 ksz_init_rx_buffers(hw_priv); in prepare_hardware()
5486 struct dev_info *hw_priv = priv->adapter; in netdev_open() local
5487 struct ksz_hw *hw = &hw_priv->hw; in netdev_open()
5501 if (!(hw_priv->opened)) { in netdev_open()
5510 hw_priv->counter[i].time = next_jiffies; in netdev_open()
5519 hw_clr_wol_pme_status(&hw_priv->hw); in netdev_open()
5546 if (!(hw_priv->opened)) { in netdev_open()
5552 ksz_start_timer(&hw_priv->mib_timer_info, in netdev_open()
5553 hw_priv->mib_timer_info.period); in netdev_open()
5556 hw_priv->opened++; in netdev_open()
5647 struct dev_info *hw_priv = priv->adapter; in netdev_set_mac_address() local
5648 struct ksz_hw *hw = &hw_priv->hw; in netdev_set_mac_address()
5735 struct dev_info *hw_priv = priv->adapter; in netdev_set_rx_mode() local
5736 struct ksz_hw *hw = &hw_priv->hw; in netdev_set_rx_mode()
5742 if (hw_priv->hw.dev_count > 1) in netdev_set_rx_mode()
5747 if (hw_priv->hw.dev_count > 1) in netdev_set_rx_mode()
5783 struct dev_info *hw_priv = priv->adapter; in netdev_change_mtu() local
5784 struct ksz_hw *hw = &hw_priv->hw; in netdev_change_mtu()
5792 if (dev != hw_priv->dev) in netdev_change_mtu()
5804 hw_priv->mtu = hw_mtu; in netdev_change_mtu()
5823 struct dev_info *hw_priv = priv->adapter; in netdev_ioctl() local
5824 struct ksz_hw *hw = &hw_priv->hw; in netdev_ioctl()
5942 struct dev_info *hw_priv = priv->adapter; in netdev_get_link_ksettings() local
5944 mutex_lock(&hw_priv->lock); in netdev_get_link_ksettings()
5947 mutex_unlock(&hw_priv->lock); in netdev_get_link_ksettings()
5969 struct dev_info *hw_priv = priv->adapter; in netdev_set_link_ksettings() local
6002 mutex_lock(&hw_priv->lock); in netdev_set_link_ksettings()
6024 mutex_unlock(&hw_priv->lock); in netdev_set_link_ksettings()
6039 struct dev_info *hw_priv = priv->adapter; in netdev_nway_reset() local
6042 mutex_lock(&hw_priv->lock); in netdev_nway_reset()
6044 mutex_unlock(&hw_priv->lock); in netdev_nway_reset()
6076 struct dev_info *hw_priv = priv->adapter; in netdev_get_drvinfo() local
6080 strlcpy(info->bus_info, pci_name(hw_priv->pdev), in netdev_get_drvinfo()
6129 struct dev_info *hw_priv = priv->adapter; in netdev_get_regs() local
6130 struct ksz_hw *hw = &hw_priv->hw; in netdev_get_regs()
6135 mutex_lock(&hw_priv->lock); in netdev_get_regs()
6138 pci_read_config_dword(hw_priv->pdev, len, buf); in netdev_get_regs()
6148 mutex_unlock(&hw_priv->lock); in netdev_get_regs()
6167 struct dev_info *hw_priv = priv->adapter; in netdev_get_wol() local
6169 wol->supported = hw_priv->wol_support; in netdev_get_wol()
6170 wol->wolopts = hw_priv->wol_enable; in netdev_get_wol()
6187 struct dev_info *hw_priv = priv->adapter; in netdev_set_wol() local
6192 if (wol->wolopts & ~hw_priv->wol_support) in netdev_set_wol()
6195 hw_priv->wol_enable = wol->wolopts; in netdev_set_wol()
6199 hw_priv->wol_enable |= WAKE_PHY; in netdev_set_wol()
6200 hw_enable_wol(&hw_priv->hw, hw_priv->wol_enable, net_addr); in netdev_set_wol()
6262 struct dev_info *hw_priv = priv->adapter; in netdev_get_eeprom() local
6269 eeprom_data[i] = eeprom_read(&hw_priv->hw, i); in netdev_get_eeprom()
6290 struct dev_info *hw_priv = priv->adapter; in netdev_set_eeprom() local
6301 eeprom_data[i] = eeprom_read(&hw_priv->hw, i); in netdev_set_eeprom()
6307 eeprom_write(&hw_priv->hw, i, eeprom_data[i]); in netdev_set_eeprom()
6324 struct dev_info *hw_priv = priv->adapter; in netdev_get_pauseparam() local
6325 struct ksz_hw *hw = &hw_priv->hw; in netdev_get_pauseparam()
6357 struct dev_info *hw_priv = priv->adapter; in netdev_set_pauseparam() local
6358 struct ksz_hw *hw = &hw_priv->hw; in netdev_set_pauseparam()
6361 mutex_lock(&hw_priv->lock); in netdev_set_pauseparam()
6386 mutex_unlock(&hw_priv->lock); in netdev_set_pauseparam()
6402 struct dev_info *hw_priv = priv->adapter; in netdev_get_ringparam() local
6403 struct ksz_hw *hw = &hw_priv->hw; in netdev_get_ringparam()
6465 struct dev_info *hw_priv = priv->adapter; in netdev_get_strings() local
6466 struct ksz_hw *hw = &hw_priv->hw; in netdev_get_strings()
6485 struct dev_info *hw_priv = priv->adapter; in netdev_get_sset_count() local
6486 struct ksz_hw *hw = &hw_priv->hw; in netdev_get_sset_count()
6508 struct dev_info *hw_priv = priv->adapter; in netdev_get_ethtool_stats() local
6509 struct ksz_hw *hw = &hw_priv->hw; in netdev_get_ethtool_stats()
6517 mutex_lock(&hw_priv->lock); in netdev_get_ethtool_stats()
6521 hw_priv->counter[p].read = 1; in netdev_get_ethtool_stats()
6528 mutex_unlock(&hw_priv->lock); in netdev_get_ethtool_stats()
6531 schedule_work(&hw_priv->mib_read); in netdev_get_ethtool_stats()
6536 hw_priv->counter[p].counter, in netdev_get_ethtool_stats()
6537 2 == hw_priv->counter[p].read, in netdev_get_ethtool_stats()
6543 hw_priv->counter[p].counter, in netdev_get_ethtool_stats()
6544 2 == hw_priv->counter[p].read, in netdev_get_ethtool_stats()
6548 hw_priv->counter[p].counter, in netdev_get_ethtool_stats()
6549 2 == hw_priv->counter[p].read, in netdev_get_ethtool_stats()
6576 struct dev_info *hw_priv = priv->adapter; in netdev_set_features() local
6577 struct ksz_hw *hw = &hw_priv->hw; in netdev_set_features()
6579 mutex_lock(&hw_priv->lock); in netdev_set_features()
6590 mutex_unlock(&hw_priv->lock); in netdev_set_features()
6634 struct dev_info *hw_priv = in mib_read_work() local
6636 struct ksz_hw *hw = &hw_priv->hw; in mib_read_work()
6645 if (mib->cnt_ptr || 1 == hw_priv->counter[i].read) { in mib_read_work()
6650 hw_priv->counter[i].read = 0; in mib_read_work()
6654 hw_priv->counter[i].read = 2; in mib_read_work()
6656 &hw_priv->counter[i].counter); in mib_read_work()
6658 } else if (time_after_eq(jiffies, hw_priv->counter[i].time)) { in mib_read_work()
6661 hw_priv->counter[i].read = 1; in mib_read_work()
6663 hw_priv->counter[i].time = next_jiffies; in mib_read_work()
6670 hw_priv->counter[i].read = 1; in mib_read_work()
6677 struct dev_info *hw_priv = from_timer(hw_priv, t, mib_timer_info.timer); in mib_monitor() local
6679 mib_read_work(&hw_priv->mib_read); in mib_monitor()
6682 if (hw_priv->pme_wait) { in mib_monitor()
6683 if (time_is_before_eq_jiffies(hw_priv->pme_wait)) { in mib_monitor()
6684 hw_clr_wol_pme_status(&hw_priv->hw); in mib_monitor()
6685 hw_priv->pme_wait = 0; in mib_monitor()
6687 } else if (hw_chk_wol_pme_status(&hw_priv->hw)) { in mib_monitor()
6690 hw_priv->pme_wait = jiffies + HZ * 2; in mib_monitor()
6693 ksz_update_timer(&hw_priv->mib_timer_info); in mib_monitor()
6706 struct dev_info *hw_priv = priv->adapter; in dev_monitor() local
6707 struct ksz_hw *hw = &hw_priv->hw; in dev_monitor()
6838 static void get_mac_addr(struct dev_info *hw_priv, u8 *macaddr, int port) in get_mac_addr() argument
6864 hw_priv->hw.override_addr[j++] = (u8) num; in get_mac_addr()
6865 hw_priv->hw.override_addr[5] += in get_mac_addr()
6866 hw_priv->hw.id; in get_mac_addr()
6868 hw_priv->hw.ksz_switch->other_addr[j++] = in get_mac_addr()
6870 hw_priv->hw.ksz_switch->other_addr[5] += in get_mac_addr()
6871 hw_priv->hw.id; in get_mac_addr()
6879 hw_priv->hw.mac_override = 1; in get_mac_addr()
6911 struct dev_info *hw_priv; in pcidev_init() local
6951 hw_priv = &info->dev_info; in pcidev_init()
6952 hw_priv->pdev = pdev; in pcidev_init()
6954 hw = &hw_priv->hw; in pcidev_init()
6970 dev_info(&hw_priv->pdev->dev, "%s\n", banner); in pcidev_init()
6971 dev_dbg(&hw_priv->pdev->dev, "Mem = %p; IRQ = %d\n", hw->io, pdev->irq); in pcidev_init()
7009 hw->parent = hw_priv; in pcidev_init()
7012 hw_priv->mtu = (REGULAR_RX_BUF_SIZE + 3) & ~3; in pcidev_init()
7014 if (ksz_alloc_mem(hw_priv)) in pcidev_init()
7017 hw_priv->hw.id = net_device_present; in pcidev_init()
7019 spin_lock_init(&hw_priv->hwlock); in pcidev_init()
7020 mutex_init(&hw_priv->lock); in pcidev_init()
7023 init_waitqueue_head(&hw_priv->counter[i].counter); in pcidev_init()
7026 get_mac_addr(hw_priv, macaddr, MAIN_PORT); in pcidev_init()
7036 get_mac_addr(hw_priv, mac1addr, OTHER_PORT); in pcidev_init()
7043 hw_priv->wol_support = WOL_SUPPORT; in pcidev_init()
7044 hw_priv->wol_enable = 0; in pcidev_init()
7047 INIT_WORK(&hw_priv->mib_read, mib_read_work); in pcidev_init()
7050 ksz_init_timer(&hw_priv->mib_timer_info, 500 * HZ / 1000, in pcidev_init()
7061 priv->adapter = hw_priv; in pcidev_init()
7083 memcpy(dev->dev_addr, hw_priv->hw.override_addr, in pcidev_init()
7104 pci_dev_get(hw_priv->pdev); in pcidev_init()
7117 ksz_free_mem(hw_priv); in pcidev_init()
7136 struct dev_info *hw_priv = &info->dev_info; in pcidev_exit() local
7140 for (i = 0; i < hw_priv->hw.dev_count; i++) { in pcidev_exit()
7144 if (hw_priv->hw.io) in pcidev_exit()
7145 iounmap(hw_priv->hw.io); in pcidev_exit()
7146 ksz_free_mem(hw_priv); in pcidev_exit()
7147 kfree(hw_priv->hw.ksz_switch); in pcidev_exit()
7148 pci_dev_put(hw_priv->pdev); in pcidev_exit()
7156 struct dev_info *hw_priv = &info->dev_info; in pcidev_resume() local
7157 struct ksz_hw *hw = &hw_priv->hw; in pcidev_resume()
7161 if (hw_priv->wol_enable) in pcidev_resume()
7180 struct dev_info *hw_priv = &info->dev_info; in pcidev_suspend() local
7181 struct ksz_hw *hw = &hw_priv->hw; in pcidev_suspend()
7196 if (hw_priv->wol_enable) { in pcidev_suspend()
7197 hw_enable_wol(hw, hw_priv->wol_enable, net_addr); in pcidev_suspend()