~ubuntu-branches/ubuntu/quantal/linux-linaro-mx51/quantal

« back to all changes in this revision

Viewing changes to drivers/net/vxge/vxge-config.c

  • Committer: Package Import Robot
  • Author(s): John Rigby, John Rigby
  • Date: 2011-09-26 10:44:23 UTC
  • Revision ID: package-import@ubuntu.com-20110926104423-3o58a3c1bj7x00rs
Tags: 3.0.0-1007.9
[ John Rigby ]

Enable crypto modules and remove crypto-modules from
exclude-module files
LP: #826021

Show diffs side-by-side

added added

removed removed

Lines of Context:
159
159
                     u32 fw_memo, u32 offset, u64 *data0, u64 *data1,
160
160
                     u64 *steer_ctrl)
161
161
{
162
 
        struct vxge_hw_vpath_reg __iomem *vp_reg;
 
162
        struct vxge_hw_vpath_reg __iomem *vp_reg = vpath->vp_reg;
163
163
        enum vxge_hw_status status;
164
164
        u64 val64;
165
 
        u32 retry = 0, max_retry = 100;
166
 
 
167
 
        vp_reg = vpath->vp_reg;
168
 
 
169
 
        if (vpath->vp_open) {
170
 
                max_retry = 3;
171
 
                spin_lock(&vpath->lock);
 
165
        u32 retry = 0, max_retry = 3;
 
166
 
 
167
        spin_lock(&vpath->lock);
 
168
        if (!vpath->vp_open) {
 
169
                spin_unlock(&vpath->lock);
 
170
                max_retry = 100;
172
171
        }
173
172
 
174
173
        writeq(*data0, &vp_reg->rts_access_steer_data0);
1000
999
/**
1001
1000
 * vxge_hw_device_hw_info_get - Get the hw information
1002
1001
 * Returns the vpath mask that has the bits set for each vpath allocated
1003
 
 * for the driver, FW version information and the first mac addresse for
 
1002
 * for the driver, FW version information, and the first mac address for
1004
1003
 * each vpath
1005
1004
 */
1006
1005
enum vxge_hw_status __devinit
1064
1063
 
1065
1064
                val64 = readq(&toc->toc_vpath_pointer[i]);
1066
1065
 
 
1066
                spin_lock_init(&vpath.lock);
1067
1067
                vpath.vp_reg = (struct vxge_hw_vpath_reg __iomem *)
1068
1068
                               (bar0 + val64);
1069
 
                vpath.vp_open = 0;
 
1069
                vpath.vp_open = VXGE_HW_VP_NOT_OPEN;
1070
1070
 
1071
1071
                status = __vxge_hw_vpath_pci_func_mode_get(&vpath, hw_info);
1072
1072
                if (status != VXGE_HW_OK)
1090
1090
                val64 = readq(&toc->toc_vpath_pointer[i]);
1091
1091
                vpath.vp_reg = (struct vxge_hw_vpath_reg __iomem *)
1092
1092
                               (bar0 + val64);
1093
 
                vpath.vp_open = 0;
 
1093
                vpath.vp_open = VXGE_HW_VP_NOT_OPEN;
1094
1094
 
1095
1095
                status =  __vxge_hw_vpath_addr_get(&vpath,
1096
1096
                                hw_info->mac_addrs[i],
4646
4646
                vpath->hldev->tim_int_mask1, vpath->vp_id);
4647
4647
        hldev->stats.hw_dev_info_stats.vpath_info[vpath->vp_id] = NULL;
4648
4648
 
4649
 
        memset(vpath, 0, sizeof(struct __vxge_hw_virtualpath));
 
4649
        /* If the whole struct __vxge_hw_virtualpath is zeroed, nothing will
 
4650
         * work after the interface is brought down.
 
4651
         */
 
4652
        spin_lock(&vpath->lock);
 
4653
        vpath->vp_open = VXGE_HW_VP_NOT_OPEN;
 
4654
        spin_unlock(&vpath->lock);
 
4655
 
 
4656
        vpath->vpmgmt_reg = NULL;
 
4657
        vpath->nofl_db = NULL;
 
4658
        vpath->max_mtu = 0;
 
4659
        vpath->vsport_number = 0;
 
4660
        vpath->max_kdfc_db = 0;
 
4661
        vpath->max_nofl_db = 0;
 
4662
        vpath->ringh = NULL;
 
4663
        vpath->fifoh = NULL;
 
4664
        memset(&vpath->vpath_handles, 0, sizeof(struct list_head));
 
4665
        vpath->stats_block = 0;
 
4666
        vpath->hw_stats = NULL;
 
4667
        vpath->hw_stats_sav = NULL;
 
4668
        vpath->sw_stats = NULL;
 
4669
 
4650
4670
exit:
4651
4671
        return;
4652
4672
}
4670
4690
 
4671
4691
        vpath = &hldev->virtual_paths[vp_id];
4672
4692
 
4673
 
        spin_lock_init(&hldev->virtual_paths[vp_id].lock);
 
4693
        spin_lock_init(&vpath->lock);
4674
4694
        vpath->vp_id = vp_id;
4675
4695
        vpath->vp_open = VXGE_HW_VP_OPEN;
4676
4696
        vpath->hldev = hldev;
5019
5039
 
5020
5040
        __vxge_hw_vp_terminate(devh, vp_id);
5021
5041
 
5022
 
        spin_lock(&vpath->lock);
5023
 
        vpath->vp_open = VXGE_HW_VP_NOT_OPEN;
5024
 
        spin_unlock(&vpath->lock);
5025
 
 
5026
5042
vpath_close_exit:
5027
5043
        return status;
5028
5044
}