• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6.36/drivers/net/vxge/

Lines Matching refs:hldev

34 	struct __vxge_hw_device *hldev;
38 hldev = vph->vpath->hldev;
57 channel->common_reg = hldev->common_reg;
58 channel->first_vp_id = hldev->first_vp_id;
60 channel->devh = hldev;
176 __vxge_hw_device_pci_e_init(struct __vxge_hw_device *hldev)
181 pci_read_config_word(hldev->pdev, PCI_COMMAND, &cmd);
183 pci_write_config_word(hldev->pdev, PCI_COMMAND, cmd);
185 pci_save_state(hldev->pdev);
266 __vxge_hw_device_reg_addr_get(struct __vxge_hw_device *hldev)
272 hldev->legacy_reg = (struct vxge_hw_legacy_reg __iomem *)hldev->bar0;
274 hldev->toc_reg = __vxge_hw_device_toc_get(hldev->bar0);
275 if (hldev->toc_reg == NULL) {
280 val64 = readq(&hldev->toc_reg->toc_common_pointer);
281 hldev->common_reg =
282 (struct vxge_hw_common_reg __iomem *)(hldev->bar0 + val64);
284 val64 = readq(&hldev->toc_reg->toc_mrpcim_pointer);
285 hldev->mrpcim_reg =
286 (struct vxge_hw_mrpcim_reg __iomem *)(hldev->bar0 + val64);
289 val64 = readq(&hldev->toc_reg->toc_srpcim_pointer[i]);
290 hldev->srpcim_reg[i] =
292 (hldev->bar0 + val64);
296 val64 = readq(&hldev->toc_reg->toc_vpmgmt_pointer[i]);
297 hldev->vpmgmt_reg[i] =
298 (struct vxge_hw_vpmgmt_reg __iomem *)(hldev->bar0 + val64);
302 val64 = readq(&hldev->toc_reg->toc_vpath_pointer[i]);
303 hldev->vpath_reg[i] =
305 (hldev->bar0 + val64);
308 val64 = readq(&hldev->toc_reg->toc_kdfc);
312 hldev->kdfc = (u8 __iomem *)(hldev->bar0 +
320 (u64 __iomem *)&hldev->common_reg->vpath_rst_in_prog);
330 void __vxge_hw_device_id_get(struct __vxge_hw_device *hldev)
334 val64 = readq(&hldev->common_reg->titan_asic_id);
335 hldev->device_id =
338 hldev->major_revision =
341 hldev->minor_revision =
401 void __vxge_hw_device_host_info_get(struct __vxge_hw_device *hldev)
406 val64 = readq(&hldev->common_reg->host_type_assignments);
408 hldev->host_type =
411 hldev->vpath_assignments = readq(&hldev->common_reg->vpath_assignments);
415 if (!(hldev->vpath_assignments & vxge_mBIT(i)))
418 hldev->func_id =
419 __vxge_hw_vpath_func_id_get(i, hldev->vpmgmt_reg[i]);
421 hldev->access_rights = __vxge_hw_device_access_rights_get(
422 hldev->host_type, hldev->func_id);
424 hldev->first_vp_id = i;
434 __vxge_hw_verify_pci_e_info(struct __vxge_hw_device *hldev)
440 exp_cap = pci_find_capability(hldev->pdev, PCI_CAP_ID_EXP);
441 pci_read_config_word(hldev->pdev, exp_cap + PCI_EXP_LNKSTA, &lnk);
464 enum vxge_hw_status __vxge_hw_device_initialize(struct __vxge_hw_device *hldev)
468 if (VXGE_HW_OK == __vxge_hw_device_is_privilaged(hldev->host_type,
469 hldev->func_id)) {
471 status = __vxge_hw_verify_pci_e_info(hldev);
585 * are 'IN', including @hldev. Driver cooperates with
599 struct __vxge_hw_device *hldev = NULL;
606 hldev = (struct __vxge_hw_device *)
608 if (hldev == NULL) {
613 memset(hldev, 0, sizeof(struct __vxge_hw_device));
614 hldev->magic = VXGE_HW_DEVICE_MAGIC;
616 vxge_hw_device_debug_set(hldev, VXGE_ERR, VXGE_COMPONENT_ALL);
619 memcpy(&hldev->config, device_config,
622 hldev->bar0 = attr->bar0;
623 hldev->pdev = attr->pdev;
625 hldev->uld_callbacks.link_up = attr->uld_callbacks.link_up;
626 hldev->uld_callbacks.link_down = attr->uld_callbacks.link_down;
627 hldev->uld_callbacks.crit_err = attr->uld_callbacks.crit_err;
629 __vxge_hw_device_pci_e_init(hldev);
631 status = __vxge_hw_device_reg_addr_get(hldev);
633 vfree(hldev);
636 __vxge_hw_device_id_get(hldev);
638 __vxge_hw_device_host_info_get(hldev);
645 if (!(hldev->vpath_assignments & vxge_mBIT(i)))
658 if (__vxge_hw_blockpool_create(hldev,
659 &hldev->block_pool,
663 vxge_hw_device_terminate(hldev);
668 status = __vxge_hw_device_initialize(hldev);
671 vxge_hw_device_terminate(hldev);
675 *devh = hldev;
685 vxge_hw_device_terminate(struct __vxge_hw_device *hldev)
687 vxge_assert(hldev->magic == VXGE_HW_DEVICE_MAGIC);
689 hldev->magic = VXGE_HW_DEVICE_DEAD;
690 __vxge_hw_blockpool_destroy(&hldev->block_pool);
691 vfree(hldev);
699 vxge_hw_device_stats_get(struct __vxge_hw_device *hldev,
707 if (!(hldev->vpaths_deployed & vxge_mBIT(i)) ||
708 (hldev->virtual_paths[i].vp_open ==
712 memcpy(hldev->virtual_paths[i].hw_stats_sav,
713 hldev->virtual_paths[i].hw_stats,
717 &hldev->virtual_paths[i],
718 hldev->virtual_paths[i].hw_stats);
721 memcpy(hw_stats, &hldev->stats.hw_dev_info_stats,
732 struct __vxge_hw_device *hldev,
737 memcpy(sw_stats, &hldev->stats.sw_dev_info_stats,
749 vxge_hw_mrpcim_stats_access(struct __vxge_hw_device *hldev,
755 status = __vxge_hw_device_is_privilaged(hldev->host_type,
756 hldev->func_id);
766 &hldev->mrpcim_reg->xmac_stats_sys_cmd,
768 hldev->config.device_poll_millis);
771 *stat = readq(&hldev->mrpcim_reg->xmac_stats_sys_data);
783 vxge_hw_device_xmac_aggr_stats_get(struct __vxge_hw_device *hldev, u32 port,
793 status = __vxge_hw_device_is_privilaged(hldev->host_type,
794 hldev->func_id);
799 status = vxge_hw_mrpcim_stats_access(hldev,
818 vxge_hw_device_xmac_port_stats_get(struct __vxge_hw_device *hldev, u32 port,
827 status = __vxge_hw_device_is_privilaged(hldev->host_type,
828 hldev->func_id);
833 status = vxge_hw_mrpcim_stats_access(hldev,
853 vxge_hw_device_xmac_stats_get(struct __vxge_hw_device *hldev,
859 status = vxge_hw_device_xmac_aggr_stats_get(hldev,
865 status = vxge_hw_device_xmac_aggr_stats_get(hldev,
872 status = vxge_hw_device_xmac_port_stats_get(hldev,
880 if (!(hldev->vpaths_deployed & vxge_mBIT(i)))
884 &hldev->virtual_paths[i],
890 &hldev->virtual_paths[i],
903 void vxge_hw_device_debug_set(struct __vxge_hw_device *hldev,
906 if (hldev == NULL)
910 hldev->debug_module_mask = mask;
911 hldev->debug_level = level;
915 hldev->level_err = level & VXGE_ERR;
919 hldev->level_trace = level & VXGE_TRACE;
927 u32 vxge_hw_device_error_level_get(struct __vxge_hw_device *hldev)
930 if (hldev == NULL)
933 return hldev->level_err;
943 u32 vxge_hw_device_trace_level_get(struct __vxge_hw_device *hldev)
946 if (hldev == NULL)
949 return hldev->level_trace;
958 u32 vxge_hw_device_debug_mask_get(struct __vxge_hw_device *hldev)
961 if (hldev == NULL)
963 return hldev->debug_module_mask;
973 enum vxge_hw_status vxge_hw_device_getpause_data(struct __vxge_hw_device *hldev,
979 if ((hldev == NULL) || (hldev->magic != VXGE_HW_DEVICE_MAGIC)) {
989 if (!(hldev->access_rights & VXGE_HW_DEVICE_ACCESS_RIGHT_MRPCIM)) {
994 val64 = readq(&hldev->mrpcim_reg->rxmac_pause_cfg_port[port]);
1009 enum vxge_hw_status vxge_hw_device_setpause_data(struct __vxge_hw_device *hldev,
1015 if ((hldev == NULL) || (hldev->magic != VXGE_HW_DEVICE_MAGIC)) {
1025 status = __vxge_hw_device_is_privilaged(hldev->host_type,
1026 hldev->func_id);
1030 val64 = readq(&hldev->mrpcim_reg->rxmac_pause_cfg_port[port]);
1040 writeq(val64, &hldev->mrpcim_reg->rxmac_pause_cfg_port[port]);
1045 u16 vxge_hw_device_link_width_get(struct __vxge_hw_device *hldev)
1050 exp_cap = pci_find_capability(hldev->pdev, PCI_CAP_ID_EXP);
1051 pci_read_config_word(hldev->pdev, exp_cap + PCI_EXP_LNKSTA, &lnk);
1262 struct __vxge_hw_device *hldev;
1271 hldev = vp->vpath->hldev;
1274 config = &hldev->config.vp_config[vp_id].ring;
1293 ring->common_reg = hldev->common_reg;
1319 ring->mempool = __vxge_hw_mempool_create(hldev,
2028 vxge_hw_mgmt_device_config(struct __vxge_hw_device *hldev,
2032 if ((hldev == NULL) || (hldev->magic != VXGE_HW_DEVICE_MAGIC))
2038 memcpy(dev_config, &hldev->config,
2048 vxge_hw_mgmt_reg_read(struct __vxge_hw_device *hldev,
2054 if ((hldev == NULL) || (hldev->magic != VXGE_HW_DEVICE_MAGIC)) {
2065 *value = readq((void __iomem *)hldev->legacy_reg + offset);
2072 *value = readq((void __iomem *)hldev->toc_reg + offset);
2079 *value = readq((void __iomem *)hldev->common_reg + offset);
2082 if (!(hldev->access_rights &
2091 *value = readq((void __iomem *)hldev->mrpcim_reg + offset);
2094 if (!(hldev->access_rights &
2107 *value = readq((void __iomem *)hldev->srpcim_reg[index] +
2112 (!(hldev->vpath_assignments & vxge_mBIT(index)))) {
2120 *value = readq((void __iomem *)hldev->vpmgmt_reg[index] +
2125 (!(hldev->vpath_assignments & vxge_mBIT(index)))) {
2137 *value = readq((void __iomem *)hldev->vpath_reg[index] +
2153 vxge_hw_vpath_strip_fcs_check(struct __vxge_hw_device *hldev, u64 vpath_mask)
2162 vpmgmt_reg = hldev->vpmgmt_reg[i];
2175 vxge_hw_mgmt_reg_write(struct __vxge_hw_device *hldev,
2181 if ((hldev == NULL) || (hldev->magic != VXGE_HW_DEVICE_MAGIC)) {
2192 writeq(value, (void __iomem *)hldev->legacy_reg + offset);
2199 writeq(value, (void __iomem *)hldev->toc_reg + offset);
2206 writeq(value, (void __iomem *)hldev->common_reg + offset);
2209 if (!(hldev->access_rights &
2218 writeq(value, (void __iomem *)hldev->mrpcim_reg + offset);
2221 if (!(hldev->access_rights &
2234 writeq(value, (void __iomem *)hldev->srpcim_reg[index] +
2240 (!(hldev->vpath_assignments & vxge_mBIT(index)))) {
2248 writeq(value, (void __iomem *)hldev->vpmgmt_reg[index] +
2253 (!(hldev->vpath_assignments & vxge_mBIT(index)))) {
2261 writeq(value, (void __iomem *)hldev->vpath_reg[index] +
2334 config = &vpath->hldev->config.vp_config[vpath->vp_id].fifo;
2410 __vxge_hw_mempool_create(vpath->hldev,
2833 * @hldev: HW device.
2839 vxge_hw_device_flick_link_led(struct __vxge_hw_device *hldev,
2846 if (hldev == NULL) {
2851 vp_reg = hldev->vpath_reg[hldev->first_vp_id];
2915 vpath->hldev->config.device_poll_millis);
2978 vpath->hldev->config.device_poll_millis);
3164 if (vp->vpath->hldev->config.rth_it_type
3306 struct __vxge_hw_device *hldev,
3337 VXGE_HW_DEVICE_LINK_STATE_SET(vpath->hldev, VXGE_HW_LINK_UP);
3339 VXGE_HW_DEVICE_LINK_STATE_SET(vpath->hldev, VXGE_HW_LINK_DOWN);
3355 &vpath->hldev->common_reg->vpath_rst_in_prog,
3358 vpath->hldev->config.device_poll_millis);
3368 __vxge_hw_vpath_reset(struct __vxge_hw_device *hldev, u32 vp_id)
3376 &hldev->common_reg->cmn_rsthdlr_cfg0);
3386 __vxge_hw_vpath_sw_reset(struct __vxge_hw_device *hldev, u32 vp_id)
3391 vpath = (struct __vxge_hw_virtualpath *)&hldev->virtual_paths[vp_id];
3411 __vxge_hw_vpath_prc_configure(struct __vxge_hw_device *hldev, u32 vp_id)
3418 vpath = &hldev->virtual_paths[vp_id];
3469 if (hldev->config.rth_en == VXGE_HW_RTH_DISABLE)
3483 __vxge_hw_vpath_kdfc_configure(struct __vxge_hw_device *hldev, u32 vp_id)
3491 vpath = &hldev->virtual_paths[vp_id];
3493 status = __vxge_hw_kdfc_swapper_set(hldev->legacy_reg, vp_reg);
3540 vpath_stride = readq(&hldev->toc_reg->toc_kdfc_vpath_stride);
3544 (hldev->kdfc + (vp_id *
3556 __vxge_hw_vpath_mac_configure(struct __vxge_hw_device *hldev, u32 vp_id)
3564 vpath = &hldev->virtual_paths[vp_id];
3606 if (hldev->config.rth_it_type ==
3624 __vxge_hw_vpath_tim_configure(struct __vxge_hw_device *hldev, u32 vp_id)
3632 vpath = &hldev->virtual_paths[vp_id];
3872 vxge_hw_vpath_tti_ci_set(struct __vxge_hw_device *hldev, u32 vp_id)
3879 vpath = &hldev->virtual_paths[vp_id];
3900 __vxge_hw_vpath_initialize(struct __vxge_hw_device *hldev, u32 vp_id)
3908 vpath = &hldev->virtual_paths[vp_id];
3910 if (!(hldev->vpath_assignments & vxge_mBIT(vp_id))) {
3921 status = __vxge_hw_vpath_mac_configure(hldev, vp_id);
3926 status = __vxge_hw_vpath_kdfc_configure(hldev, vp_id);
3931 status = __vxge_hw_vpath_tim_configure(hldev, vp_id);
3969 __vxge_hw_vp_initialize(struct __vxge_hw_device *hldev, u32 vp_id,
3975 if (!(hldev->vpath_assignments & vxge_mBIT(vp_id))) {
3980 vpath = &hldev->virtual_paths[vp_id];
3984 vpath->hldev = hldev;
3986 vpath->vp_reg = hldev->vpath_reg[vp_id];
3987 vpath->vpmgmt_reg = hldev->vpmgmt_reg[vp_id];
3989 __vxge_hw_vpath_reset(hldev, vp_id);
3998 status = __vxge_hw_vpath_mgmt_read(hldev, vpath);
4007 vpath->sw_stats = &hldev->stats.sw_dev_info_stats.vpath_info[vp_id];
4009 VXGE_HW_DEVICE_TIM_INT_MASK_SET(hldev->tim_int_mask0,
4010 hldev->tim_int_mask1, vp_id);
4012 status = __vxge_hw_vpath_initialize(hldev, vp_id);
4015 __vxge_hw_vp_terminate(hldev, vp_id);
4025 __vxge_hw_vp_terminate(struct __vxge_hw_device *hldev, u32 vp_id)
4029 vpath = &hldev->virtual_paths[vp_id];
4034 VXGE_HW_DEVICE_TIM_INT_MASK_RESET(vpath->hldev->tim_int_mask0,
4035 vpath->hldev->tim_int_mask1, vpath->vp_id);
4036 hldev->stats.hw_dev_info_stats.vpath_info[vpath->vp_id] = NULL;
4086 vxge_hw_vpath_open(struct __vxge_hw_device *hldev,
4094 vpath = &hldev->virtual_paths[attr->vp_id];
4101 status = __vxge_hw_vp_initialize(hldev, attr->vp_id,
4102 &hldev->config.vp_config[attr->vp_id]);
4129 __vxge_hw_vpath_prc_configure(hldev, attr->vp_id);
4136 vpath->stats_block = __vxge_hw_blockpool_block_allocate(hldev,
4149 hldev->stats.hw_dev_info_stats.vpath_info[attr->vp_id] =
4153 &hldev->stats.hw_dev_info_stats.vpath_info_sav[attr->vp_id];
4165 hldev->vpaths_deployed |= vxge_mBIT(vpath->vp_id);
4183 __vxge_hw_vp_terminate(hldev, attr->vp_id);
4245 devh = vpath->hldev;
4302 status = __vxge_hw_vpath_reset(vpath->hldev, vp_id);
4319 struct __vxge_hw_device *hldev;
4324 hldev = vpath->hldev;
4335 status = __vxge_hw_vpath_sw_reset(hldev, vp_id);
4339 status = __vxge_hw_vpath_initialize(hldev, vp_id);
4344 __vxge_hw_vpath_prc_configure(hldev, vp_id);
4369 struct __vxge_hw_device *hldev;
4372 hldev = vp->vpath->hldev;
4378 &hldev->common_reg->cmn_rsthdlr_cfg1);
4433 vpath->hldev->config.device_poll_millis);
4650 __vxge_hw_blockpool_create(struct __vxge_hw_device *hldev,
4668 blockpool->hldev = hldev;
4691 hldev->pdev,
4702 dma_addr = pci_map_single(hldev->pdev, memblock,
4705 if (unlikely(pci_dma_mapping_error(hldev->pdev,
4708 vxge_os_dma_free(hldev->pdev, memblock, &acc_handle);
4752 struct __vxge_hw_device *hldev;
4761 hldev = blockpool->hldev;
4765 pci_unmap_single(hldev->pdev,
4770 vxge_os_dma_free(hldev->pdev,
4806 ((struct __vxge_hw_device *)blockpool->hldev)->pdev,
4807 blockpool->hldev, VXGE_HW_BLOCK_SIZE);
4824 ((struct __vxge_hw_device *)blockpool->hldev)->pdev,
4830 ((struct __vxge_hw_device *)blockpool->hldev)->pdev,