summaryrefslogtreecommitdiff
path: root/drivers/infiniband/hw/mthca/mthca_main.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@g5.osdl.org>2006-03-21 09:22:08 -0800
committerLinus Torvalds <torvalds@g5.osdl.org>2006-03-21 09:22:08 -0800
commit52aef8183fbedb0232b20127b089e85e7aa095e3 (patch)
tree4c06b3351284f222a9cd825e6f1ea8543e7656c2 /drivers/infiniband/hw/mthca/mthca_main.c
parent28c006c1f09ea92d4f2585a087a188955ce3f64c (diff)
parentfd02e8038eb943755e8727a0ea193c037a51714f (diff)
Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband
* 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband: (47 commits) IB/mthca: Query SRQ srq_limit fixes IPoIB: Get rid of useless test of queue length IB/mthca: Correct reported SRQ size in MemFree case. IB/mad: Fix oopsable race on device removal IB/srp: Coverity fix to srp_parse_options() IB/mthca: Coverity fix to mthca_init_eq_table() IB: Coverity fixes to sysfs.c IPoIB: Move ipoib_ib_dev_flush() to ipoib workqueue IPoIB: Fix build now that neighbour destructor is in neigh_params IB/uverbs: Use correct alt_pkey_index in modify QP IB/umad: Add support for large RMPP transfers IB/srp: Add SCSI host attributes to show target port IB/cm: Check cm_id state before handling a REP IB/mthca: Update firmware versions IB/mthca: Optimize large messages on Sinai HCAs IB/uverbs: Fix query QP return of sq_sig_all IB: Fix modify QP checking of "current QP state" attribute IPoIB: Fix multicast race between canceling and completing IPoIB: Clean up if posting receives fails IB/mthca: Use an enum for HCA page size ...
Diffstat (limited to 'drivers/infiniband/hw/mthca/mthca_main.c')
-rw-r--r--drivers/infiniband/hw/mthca/mthca_main.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/drivers/infiniband/hw/mthca/mthca_main.c b/drivers/infiniband/hw/mthca/mthca_main.c
index 9c849d27b06e..266f347c6707 100644
--- a/drivers/infiniband/hw/mthca/mthca_main.c
+++ b/drivers/infiniband/hw/mthca/mthca_main.c
@@ -935,13 +935,19 @@ enum {
static struct {
u64 latest_fw;
- int is_memfree;
- int is_pcie;
+ u32 flags;
} mthca_hca_table[] = {
- [TAVOR] = { .latest_fw = MTHCA_FW_VER(3, 3, 3), .is_memfree = 0, .is_pcie = 0 },
- [ARBEL_COMPAT] = { .latest_fw = MTHCA_FW_VER(4, 7, 0), .is_memfree = 0, .is_pcie = 1 },
- [ARBEL_NATIVE] = { .latest_fw = MTHCA_FW_VER(5, 1, 0), .is_memfree = 1, .is_pcie = 1 },
- [SINAI] = { .latest_fw = MTHCA_FW_VER(1, 0, 1), .is_memfree = 1, .is_pcie = 1 }
+ [TAVOR] = { .latest_fw = MTHCA_FW_VER(3, 4, 0),
+ .flags = 0 },
+ [ARBEL_COMPAT] = { .latest_fw = MTHCA_FW_VER(4, 7, 400),
+ .flags = MTHCA_FLAG_PCIE },
+ [ARBEL_NATIVE] = { .latest_fw = MTHCA_FW_VER(5, 1, 0),
+ .flags = MTHCA_FLAG_MEMFREE |
+ MTHCA_FLAG_PCIE },
+ [SINAI] = { .latest_fw = MTHCA_FW_VER(1, 0, 800),
+ .flags = MTHCA_FLAG_MEMFREE |
+ MTHCA_FLAG_PCIE |
+ MTHCA_FLAG_SINAI_OPT }
};
static int __devinit mthca_init_one(struct pci_dev *pdev,
@@ -1031,12 +1037,9 @@ static int __devinit mthca_init_one(struct pci_dev *pdev,
mdev->pdev = pdev;
+ mdev->mthca_flags = mthca_hca_table[id->driver_data].flags;
if (ddr_hidden)
mdev->mthca_flags |= MTHCA_FLAG_DDR_HIDDEN;
- if (mthca_hca_table[id->driver_data].is_memfree)
- mdev->mthca_flags |= MTHCA_FLAG_MEMFREE;
- if (mthca_hca_table[id->driver_data].is_pcie)
- mdev->mthca_flags |= MTHCA_FLAG_PCIE;
/*
* Now reset the HCA before we touch the PCI capabilities or