summaryrefslogtreecommitdiff
path: root/drivers/scsi/qla2xxx/qla_init.c
AgeCommit message (Collapse)AuthorFilesLines
2009-12-10[SCSI] qla2xxx: fix for multiqueue in MISX disabled caseAnirban Chakraborty1-1/+11
Fix to accommodate a hardware bug in multiqueue mode that does not work properly when acknowledgement of MSIX Interrupts is disabled. Signed-off-by: Anirban Chakraborty <anirban.chakraborty@qlogic.com> Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
2009-12-04[SCSI] qla2xxx: Properly re-register FC4/FDMI after physical and logical ↵Andrew Vasquez1-1/+0
link disruptions. Original code would not register FC4 nor FDMI information after a logical tear-down of an VFC link. Code now triggers registration date during processing of a 'Report ID Acquisition IOCB', which is submitted after a FLOGI or FDISC completes. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
2009-12-04[SCSI] qla2xxx: Retrieve firmware's maximum number of supported FCFs.Andrew Vasquez1-1/+1
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
2009-12-04[SCSI] qla2xxx: Reread firmware versions information after an ISP abort.Lalit Chandivade1-0/+9
In some case, the MPI and PHY versions when retrieved after the Execute-FW mailbox-command are incorrect (255.255.255.255). Instead, query the information after the check for firmware ready is done in the abort ISP path. Signed-off-by: Lalit Chandivade <lalit.chandivade@qlogic.com> Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
2009-09-12[SCSI] qla2xxx: Properly delete rports attached to a vport.Andrew Vasquez1-5/+7
Original code would inadvertently skip the deferred fc_remote_port_delete() call for rports hanging off any vport. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
2009-09-12[SCSI] qla2xxx: Correct various NPIV issues.Andrew Vasquez1-2/+0
* Consolidate vport-count processing. * Correct vp_idx restrictions during RSCN processing. * Push topology verification check to qla2x00_do_dpc_all_vps(). * Don't skip vport full-login-lip/lip-reset mailbox handling. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
2009-09-12[SCSI] qla2xxx: Further limit device-table (qla_devtbl) lookup to non-24xx.Andrew Vasquez1-1/+2
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
2009-09-12[SCSI] qla2xxx: Correctly set FCF_TAPE_PRESENT flag based on scsi-device.Santosh Vernekar1-1/+1
In fabric-login based on iop BIT_8 firmware notifies presence of a FCP2 device and not necessarily a TAPE device. So instead of setting FCF_TAPE_PRESENT flag there we set it using scsi_device->type after mid-layer scan recognises "type" of the device. It also adds a new flag FCF_FCP2_DEVICE for any future use. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
2009-09-05[SCSI] qla2xxx: Add asynchronous-login support.Andrew Vasquez1-3/+212
ISPs which support this feature include 23xx and above. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
2009-08-22[SCSI] qla2xxx: Fix to ensure driver works in sinlge queue mode if ↵Anirban Chakraborty1-3/+2
multiqueue fails When the multiqueue mode fails to work, the driver falls back on single queue mode. This ensures that the firmware is reinitialized with single queue options and all the resources are readjusted accordingly. Signed-off-by: Anirban Chakraborty <anirban.chakraborty@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
2009-06-21qla2xxx: Correct iiDMA-update calling conventions.Harish Zunjarrao1-1/+1
* To set iiDMA speeds for ISP81XX, bits 5-0 are used whereas for other older ISPs bits 2-0 are used. * Pass proper VP index Signed-off-by: Harish Zunjarrao <harish.zunjarrao@qlogic.com> Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-06-08[SCSI] qla2xxx: Synchronize MPI settings after a PE Reset.Andrew Vasquez1-0/+52
Ensure MPS remains in synchronization across all NIC/FCoE functions after a reset. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-06-08[SCSI] qla2xxx: Export additional firmware-states for application support.Andrew Vasquez1-3/+4
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-06-08[SCSI] qla2xxx: Avoid redundant RISC reset during (re)-initialization.Andrew Vasquez1-3/+0
ISP24xx and above ISPs perform a RISC reset in qla24xx_reset_chip(), which is called prior to qla24xx_chip_diag(). Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-06-08[SCSI] qla2xxx: Fallback enode-mac should not be a multicast address.Andrew Vasquez1-1/+1
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-06-08[SCSI] qla2xxx: Add 10Gb iiDMA support.Andrew Vasquez1-2/+8
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-06-08[SCSI] qla2xxx: Mark a port's state as needing-rediscovery during link ↵Andrew Vasquez1-1/+3
disruptions. With RSCN states not being kept across qla2x00_configure_loop() invocations, loop-resync distruptions during fabric-discovery may cause ports to remain in a lost state. Force state renegotiation during a follow-on configure-loop iteration. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-06-08[SCSI] qla2xxx: Check status of qla2x00_get_fw_version() call.Andrew Vasquez1-2/+5
Unlike earlier ISPs, recent ISPs (ISP81xx) can in fact fail this mailbox command. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-06-08[SCSI] qla2xxx: Fallback to 'golden-firmware' operation on supported ISPs.Andrew Vasquez1-8/+25
In case the onboard firmware is unable to be read or loaded for operation, attempt to fallback to a limited-operational firmware image stored in a different flash region. This will allow a user to reflash and correct a board with proper operational firmware. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-06-08[SCSI] qla2xxx: Correct logic-bug in set-model-info().Andrew Vasquez1-1/+1
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-05-20[SCSI] qla2xxx: Use port number to compute nvram/vpd parameter offsets.Anirban Chakraborty1-9/+10
Read adapter's physical port number from interrupt pin register and use it instead of pci function number to offset into the nvram to obtain the port's configuration parameters. Signed-off-by: Anirban Chakraborty <anirban.chakraborty@qlogic.com> Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-05-20[SCSI] qla2xxx: Add an override option to specify ISP firmware load semantics.Andrew Vasquez1-0/+6
As it may be useful during debugging to use a specific firmware image. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-05-20[SCSI] qla2xxx: Don't try to 'stop' firmware if already in ROM code.Andrew Vasquez1-1/+1
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-05-20[SCSI] qla2xxx: Restrict model-name/description device-table usage.Andrew Vasquez1-2/+5
Information present in static table is only valid for pre-ISP25xx adapters. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-05-20[SCSI] qla2xxx: Remove reference to request queue from scsi request block.Anirban Chakraborty1-4/+16
srbs used to maintain a reference to the request queue on which it was enqueued. This is no longer required as the request queue pointer is now maintained in the scsi host that issues the srb. Signed-off-by: Anirban Chakraborty <anirban.chakraborty@qlogic.com> Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-05-20[SCSI] qla2xxx: Add QoS support.Anirban Chakraborty1-16/+14
Set the number of request queues to the module paramater ql2xmaxqueues. Each vport gets a request queue. The QoS value set to the request queues determines priority control for queued IOs. If QoS value is not specified, the vports use the default queue 0. Signed-off-by: Anirban Chakraborty <anirban.chakraborty@qlogic.com> Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-05-20[SCSI] qla2xxx: Correct compilation failures when DEBUG'n' options are enabled.Andrew Vasquez1-5/+5
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-04-03[SCSI] qla2xxx: Explicitly set the execution-throttle with recent ISPs.Andrew Vasquez1-4/+8
Firmware semantics changed for 24xx and above ISPs in their handling of the specified execution-throttle passed during firmware initialization. The original codes use of a theoretical maximum (0xffff, as carried over from earlier ISPs) could in fact act as a throttle in some circumstances. Now set the value based of the firmware's own 'resource' (exchange IOCBs) capabilities. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-04-03[SCSI] qla2xxx: Reduce request queue-size overhead with recent ISPs.Andrew Vasquez1-62/+5
The original code to 'resize request-queues' based on iocb-counts and employed during early ISP23xx testing was too overly-pessimistic with regards to latencies in the firmware pulling requests. Recent ISPs can easily keep up processing a stream of commands from an abbreviated (effectively, half the original size) queue. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-04-03[SCSI] qla2xxx: Always use an FLT's NVRAM/VPD region information.Andrew Vasquez1-10/+4
Rather than assuming a particular layout of the data. Applies to recent ISPs only. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-04-03[SCSI] qla2xxx: Cleanup unused flags and #defines.Shyam Sundar1-19/+1
General cleanup of extraneous/legacy crud. Additional cleanups and Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-04-03[SCSI] qla2xxx: Correct ISP abort semantics for NVRAM, VPD, and flash update.Lalit Chandivade1-0/+5
Ensure that an ISP-abort has completed before performing any update. After the update do not wait for an ISP-abort completion, instead just wait until the ISP is reset. This avoids long delays due to waiting for loop ready in qla2x00_abort_isp(). Signed-off-by: Lalit Chandivade <lalit.chandivade@qlogic.com> Additional cleanups and Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-04-03[SCSI] qla2xxx: Add Flash-Access-Control support for recent ISPs.Joe Carnuccio1-0/+15
Given the low-level interface varies from one flash-part manufacturer to the next, the Flash-Access-Control (FAC) mailbox command makes the specific flash type transparent to the driver by encapsulating a basic set of accessor and update routines. Use these new routines where applicable by querying FAC opcode get-sector-size at init-time. Additional cleanups and Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-04-03[SCSI] qla2xxx: Update MPI/PHY version retrieval codes.Andrew Vasquez1-1/+2
Reflects layout and format of latest specification. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-04-03[SCSI] qla2xxx: Pass in optional extended-initialization control block.Andrew Vasquez1-0/+3
Recent ISPs use this data to configure FCF information. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-04-03[SCSI] qla2xxx: Always (re)read firmware version/capabilities information.Andrew Vasquez1-5/+8
With recent ISPs loading firmware from flash, a flash-update to the firmware-image region with a follow-on reset will reload the new image. Original caching of data only made sense when firmware was bound with the driver. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-04-03[SCSI] qla2xxx: Correct over-allocation of firmware-dump buffer.Giridhar Malavali1-1/+1
fce_size should be calculated based on the FCE_SIZE #define. Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-03-10[SCSI] qla2xxx: Correct truncation in return-code status checking.Andrew Vasquez1-1/+1
QLA_* return codes are 'int' in size. There were still several legacy check-points which assumed a return-code width of 8-bits. This could cause incorrect assumptions of 'good' status if a return of QLA_FUNCTION_TIMEOUT. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-03-10[SCSI] qla2xxx: Correct vport delete bug.Anirban Chakraborty1-4/+7
Signed-off-by: Anirban Chakraborty <anirban.chakraborty@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-03-10[SCSI] qla2xxx: Use correct value for max vport in LOOP topology.Lalit Chandivade1-1/+5
Use minimum value for max vport during firmware initialization in LOOP topology. Using max vport value from get resource count in LOOP topology causes firmware initialization failure. Signed-off-by: Lalit Chandivade <lalit.chandivade@qlogic.com> Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-02-10[SCSI] qla2xxx: Remove interrupt request bit check in the response ↵Anirban Chakraborty1-4/+3
processing path in multiq mode. Correct response-queue-0 processing by instructing the firmware to run with interrupt-handshaking disabled, similarly to what is now done for all non-0 response queues. Since all response-queues now run in the same mode, the driver no longer needs the hot-path 'is-disabled-HCCR' test. Signed-off-by: Anirban Chakraborty <anirban.chakraborty@qlogic.com> Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-01-25[SCSI] qla2xxx: Modify firmware-load order precedence for ISP81XX parts.Andrew Vasquez1-6/+44
Pre-ISP81XX parts (including ISP24xx and ISP25xx) could contain a firmware image within a segment of flash, driver would fallback to loading this firmware if the request-firmware interface failed (userspace .bin file). Moving forward, all ISP81XX parts will ship with a suggested-to-be-used firmware image within flash which all driver should first attempt to load. If the flash firmware load fails, the driver will then fallback to loading firmware via the request-firmware interface (ql8100_fw.bin). Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-01-25[SCSI] qla2xxx: Ensure RISC-interrupt-enabled consistency for ↵Andrew Vasquez1-0/+3
IS_NOPOLLING_TYPE() ISPs. Original code should work as well given qla24xx_reset_adapter() is only called in extreme cases where the HBA is taken offline. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-01-13[SCSI] qla2xxx: Fix ISP restart bug in multiq codeAnirban Chakraborty1-22/+36
After restarting ISP the additional queues are not being setup correctly. The following patch fixes the issue. Please apply. Signed-off-by: Anirban Chakraborty <anirban.chakraborty@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-01-07[SCSI] qla2xxx: Add ISP81XX support.Andrew Vasquez1-5/+275
Codes to support new FCoE boards. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-01-07[SCSI] qla2xxx: Collapse EFT/FCE copy procedures during a firmware dump.Andrew Vasquez1-1/+3
In preparation for new ISP types with varying dump procedures. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-01-07[SCSI] qla2xxx: Don't fallback to interrupt-polling during re-initialization ↵Andrew Vasquez1-0/+3
with MSI-X enabled. ROMs in recent ISPs have MSI-X support, so it's no longer necessary for the driver to fallback to interrupt polling during ISP re-initialization. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-01-07[SCSI] qla2xxx: Remove support for reading/writing HW-event-log.Andrew Vasquez1-8/+0
Software should not touch this region of flash, as the firmware will be the only writer and consumer of the region. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2008-12-29[SCSI] qla2xxx: changes in multiq codeAnirban Chakraborty1-2/+2
Following changes have been made: 1. Scan outstanding commands only in the queue where it is submitted 2. Update queue registers directly in the fast path 3. Queue specific BAR is remapped only for multiq capable adapters Signed-off-by: Anirban Chakraborty <anirban.chakraborty@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2008-12-29[SCSI] qla2xxx: add support for multi-queue adapterAnirban Chakraborty1-50/+142
Following changes have been made. 1. qla_hw_data structure holds an array for request queue pointers, and an array for response queue pointers. 2. The base request and response queues are created by default. 3. Additional request and response queues are created at the time of vport creation. If queue resources are exhausted during vport creation, newly created vports use the default queue. 4. Requests are sent to the request queue that the vport was assigned in the beginning. 5. Responses are completed on the response queue with which the request queue is associated with. [fixup memcpy argument reversal spotted by davej@redhat.com] Signed-off-by: Anirban Chakraborty <anirban.chakraborty@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>