summaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/qib
Commit message (Collapse)AuthorAgeFilesLines
...
* IB/qib: Limit the number of packets processed per interruptRalph Campbell2010-08-031-1/+1
| | | | | | | | | Don't processes too many packets without allowing other IRQ functions a chance to run. Otherwise, there is a chance of getting a "soft lockup" messages and poor application response times. Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/qib: Allow writes to the diag_counters to be able to clear themIra Weiny2010-08-031-1/+20
| | | | | | Signed-off-by: Ira Weiny <weiny2@llnl.gov> Acked-by: Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/qib: Set cfgctxts to number of CPUs by defaultRalph Campbell2010-08-032-2/+2
| | | | | | | | | | | | Up to now, we have set the number of available user contexts based on the number of hardware contexts which is set according to the number of available CPUs. This was fine since most CPUs had a power of two number of cores and the chip supported 4, 8, or 16 user contexts. Now that some systems have 12 cores, the default isn't optimal and should be set to 12 even though 16 hardware contexts need to be enabled. Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/qib: Allow PSM to select from multiple port assignment algorithmsDave Olson2010-07-212-101/+118
| | | | | | | | | We used to allow only full specification, or using all contexts within an HCA before moving to the next HCA. We now allow an additional method -- round-robining through HCAs -- and make that the default. Signed-off-by: Dave Olson <dave.olson@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/qib: Turn off IB latency modeRalph Campbell2010-07-211-0/+2
| | | | | | | | Turn off IB latency mode. This improves link quality for slower process chips. Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/qib: Use generic_file_llseekArnd Bergmann2010-07-211-9/+9
| | | | | | | | | | | | When the default llseek action gets changed to no_llseek, all file systems relying on the current behaviour need to set explicit .llseek operations. In case of qib_fs, we want the files to be seekable, so generic_file_llseek fits best. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/qib: Avoid variable-length arrayRalph Campbell2010-07-192-1/+4
| | | | | | | | Rather than use a variable size array allocation on the stack, define a constant for the maximum array size possible. Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/qib: Use request_firmware() to load SD7220 firmwareBen Hutchings2010-07-084-1100/+46
| | | | | | | | | | Extract the microcode for the QLogic QLE7220 series IB HCA and use the kernel microcode request facility to load the microcode. This supports Debian Linux's requirements to separate microcode which doesn't have open source code available from the device driver. Signed-off-by: Ben Hutchings <ben@decadent.org.uk> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* Merge branch 'for-linus' of ↵Linus Torvalds2010-07-088-39/+104
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: IPoIB: Fix world-writable child interface control sysfs attributes IB/qib: Clean up properly if qib_init() fails IB/qib: Completion queue callback needs to be single threaded IB/qib: Update 7322 serdes tables IB/qib: Clear 6120 hardware error register IB/qib: Clear eager buffer memory for each new process IB/qib: Mask hardware error during link reset IB/qib: Don't mark VL15 bufs as WC to avoid a rare 7322 chip problem RDMA/cxgb4: Derive smac_idx from port viid RDMA/cxgb4: Avoid false GTS CIDX_INC overflows RDMA/cxgb4: Don't call abort_connection() for active connect failures RDMA/cxgb4: Use the DMA state API instead of the pci equivalents
| * IB/qib: Clean up properly if qib_init() failsRalph Campbell2010-07-061-0/+10
| | | | | | | | | | | | | | | | | | | | | | If qib_init() fails, the driver fails to free memory, unregister device files, and unregister with the PCIe framework. The driver will unload without error but a subsequent driver load will cause the system to panic. This was found by changing the 7220 code to load the serdes microcode separately and not installing the microcode file. Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * IB/qib: Completion queue callback needs to be single threadedRalph Campbell2010-07-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | Workqueues aren't exactly equivalent to tasklets since the callback function may be called from multiple CPUs before the callback returns. This causes completion notification callbacks to have MT bugs since they weren't expecting this behavior. The fix is to use a single threaded work queue. Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * IB/qib: Update 7322 serdes tablesRalph Campbell2010-07-061-4/+12
| | | | | | | | | | Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * IB/qib: Clear 6120 hardware error registerRalph Campbell2010-07-061-2/+1
| | | | | | | | | | | | | | | | | | The hardware error register needs to be cleared or another interrupt will be generated, thus causing an infinite loop. This is a regression introduced when removing debug output. Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * IB/qib: Clear eager buffer memory for each new processRalph Campbell2010-07-061-0/+3
| | | | | | | | | | | | | | | | | | The eager buffers are not being cleared before being mmapped into a new user address space. This is a potential security risk and should be fixed. Note that the eager header queue is already being cleared. Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * IB/qib: Mask hardware error during link resetRalph Campbell2010-07-062-26/+31
| | | | | | | | | | | | | | | | | | The HCA checks for certain hardware errors which can be falsely triggered when the IB link is reset. The fix is to mask them rather than report them. Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
| * IB/qib: Don't mark VL15 bufs as WC to avoid a rare 7322 chip problemDave Olson2010-07-066-6/+46
| | | | | | | | | | | | | | | | Don't set write combining via PAT on the VL15 buffers to avoid a rare problem with unaligned writes from interrupt-flushed store buffers. Signed-off-by: Dave Olson <dave.olson@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* | fix the deadlock in qib_fsAl Viro2010-06-041-3/+1
|/ | | | | | | | | get_sb_single() calls fill_super with superblock locked; calling deactivate_super() will deadlock immedately. Moreover, if fill_super callback returns an error, get_sb_single() will release the reference to superblock itself just fine. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* IB/qib: Remove DCA support until feature is finishedRalph Campbell2010-05-271-189/+0
| | | | | | | | | | The DCA code was left over from internal development to test the hardware feature and allow performance testing. The results were mixed and will require some additional work to make full use of the feature. Therefore, it is being removed for now. Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/qib: Use a single txselect module parameter for serdes tuningRalph Campbell2010-05-261-403/+179
| | | | | | | | | | | | As part of the earlier patches submitted and reviewed, it was agreed to change the way serdes tuning parameters were specified to the driver. The updated patch got dropped by the linux-rdma email list so the earlier version of qib_iba7322.c ended up being used. This patch updates qib_iab7322.c to the simpler, single parameter method of setting the serdes parameters. Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/qib: Don't rely on (undefined) order of function parameter evaluationRoland Dreier2010-05-261-10/+15
| | | | | | | | | | | | | | | | | | | Some of the qib sysfs code passes a buffer pointer into simple_read_from_buffer() but relies on a function call in another parameter of the same call to initialize that pointer. Since the order of evaluation of function parameters is undefined, this will break if gcc chooses the wrong order. Fix this by splitting the code into two separate function calls. This was noticed because of warnings like the following on ppc: drivers/infiniband/hw/qib/qib_fs.c: In function 'portcntrs_2_read': drivers/infiniband/hw/qib/qib_fs.c:203: warning: 'counters' is used uninitialized in this function Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/qib: Fix undefined symbol error when CONFIG_PCI_MSI=nRalph Campbell2010-05-252-12/+6
| | | | | | | | | This patch fixes a compile error saying qib_init_iba6120_funcs() is undefined when CONFIG_PCI_MSI is not defined. Thanks to Randy Dunlap <randy.dunlap@oracle.com> for finding this and suggesting the fix. Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/qib: Add new qib driver for QLogic PCIe InfiniBand adaptersRalph Campbell2010-05-2349-0/+52963
Add a low-level IB driver for QLogic PCIe adapters. Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
OpenPOWER on IntegriCloud