Commit 46463c4f authored by James Bottomley's avatar James Bottomley Committed by James Bottomley

SCSI: BusLogic update

From: Bob Doyle <doyle@primenet.com>

Deleted dead code:
- BusLogic_ReportTargetDeviceInfo()
- BusLogic_SelectQueueDepths()
- BusLogic_SendBusDeviceReset()
- BusLogic_ResetCommand()

Fixed:
- removed dependency on "scsi_obsolete.h"
  o Changes to BusLogic_ResetHostAdapter()
  o Changes to BusLogic_AbortCommand()
- removed the gratuitous typedefs per Christoph's comments
- several functions with incorrect __init and __exit sections.
- Removed vestiges of the 'Error Recovery' command line function (which
  is fundamentally incompatible with the new EH design).

Left to do:
- Test eh_abort_handler
- Test eh_host_reset_handler
- Test as module
- Straighten out FlashPoint conditional compile so it doesn't
  require #include "FlashPoint.c". 
- Please ignore the long line length and the very lengthy
  identifiers (for now).
parent cf0bd3e9
......@@ -40,10 +40,9 @@ My primary goals in writing this completely new BusLogic driver for Linux are
to achieve the full performance that BusLogic SCSI Host Adapters and modern
SCSI peripherals are capable of, and to provide a highly robust driver that can
be depended upon for high performance mission critical applications. All of
the major performance and error recovery features can be configured from the
Linux kernel command line or at module initialization time, allowing individual
installations to tune driver performance and error recovery to their particular
needs.
the major performance features can be configured from the Linux kernel command
line or at module initialization time, allowing individual installations to
tune driver performance and error recovery to their particular needs.
The latest information on Linux support for BusLogic SCSI Host Adapters, as
well as the most recent release of this driver and the latest firmware for the
......@@ -95,10 +94,10 @@ o Configuration Reporting and Testing
adapter hardware configuration, including the synchronous transfer parameters
requested and negotiated with each target device. AutoSCSI settings for
Synchronous Negotiation, Wide Negotiation, and Disconnect/Reconnect are
reported for each target device, as well as the status of Tagged Queuing and
Error Recovery. If the same setting is in effect for all target devices,
then a single word or phrase is used; otherwise, a letter is provided for
each target device to indicate the individual status. The following examples
reported for each target device, as well as the status of Tagged Queuing.
If the same setting is in effect for all target devices, then a single word
or phrase is used; otherwise, a letter is provided for each target device to
indicate the individual status. The following examples
should clarify this reporting format:
Synchronous Negotiation: Ultra
......@@ -131,9 +130,6 @@ o Configuration Reporting and Testing
The status of Wide Negotiation, Disconnect/Reconnect, and Tagged Queuing
are reported as "Enabled", Disabled", or a sequence of "Y" and "N" letters.
The Error Recovery option is reported as "Default", "Hard Reset",
"Bus Device Reset", "None" or a sequence of "D", "H", "B", and "N" letters.
o Performance Features
BusLogic SCSI Host Adapters directly implement SCSI-2 Tagged Queuing, and so
......@@ -477,48 +473,6 @@ TaggedQueuing:<Target-Spec>
does not cover all the Target Devices, unspecified characters are assumed
to be "X".
The BusLogic Driver Error Recovery Option allows for explicitly specifying
the Error Recovery action to be performed when BusLogic_ResetCommand is
called due to a SCSI Command failing to complete successfully. The following
options are available:
ErrorRecovery:Default
The "ErrorRecovery:Default" or "ER:Default" option selects between the Hard
Reset and Bus Device Reset options based on the recommendation of the SCSI
Subsystem.
ErrorRecovery:HardReset
The "ErrorRecovery:HardReset" or "ER:HardReset" option will initiate a Host
Adapter Hard Reset which also causes a SCSI Bus Reset.
ErrorRecovery:BusDeviceReset
The "ErrorRecovery:BusDeviceReset" or "ER:BusDeviceReset" option will send
a Bus Device Reset message to the individual Target Device causing the
error. If Error Recovery is again initiated for this Target Device and no
SCSI Command to this Target Device has completed successfully since the Bus
Device Reset message was sent, then a Hard Reset will be attempted.
ErrorRecovery:None
The "ErrorRecovery:None" or "ER:None" option suppresses Error Recovery.
This option should only be selected if a SCSI Bus Reset or Bus Device Reset
will cause the Target Device or a critical operation to suffer a complete
and unrecoverable failure.
ErrorRecovery:<Target-Spec>
The "ErrorRecovery:<Target-Spec>" or "ER:<Target-Spec>" option controls
Error Recovery individually for each Target Device. <Target-Spec> is a
sequence of "D", "H", "B", and "N" characters. "D" selects Default, "H"
selects Hard Reset, "B" selects Bus Device Reset, and "N" selects None.
The first character refers to Target Device 0, the second to Target Device
1, and so on; if the sequence of "D", "H", "B", and "N" characters does not
cover all the possible Target Devices, unspecified characters are assumed
to be "D".
The BusLogic Driver Miscellaneous Options comprise the following:
BusSettleTime:<seconds>
......
This diff is collapsed.
This diff is collapsed.
......@@ -12053,14 +12053,14 @@ UCHAR CalcLrc(UCHAR buffer[])
*/
static inline unsigned char
FlashPoint__ProbeHostAdapter(FlashPoint_Info_T *FlashPointInfo)
FlashPoint__ProbeHostAdapter(struct FlashPoint_Info *FlashPointInfo)
{
return FlashPoint_ProbeHostAdapter((PSCCBMGR_INFO) FlashPointInfo);
}
static inline FlashPoint_CardHandle_T
FlashPoint__HardwareResetHostAdapter(FlashPoint_Info_T *FlashPointInfo)
FlashPoint__HardwareResetHostAdapter(struct FlashPoint_Info *FlashPointInfo)
{
return FlashPoint_HardwareResetHostAdapter((PSCCBMGR_INFO) FlashPointInfo);
}
......@@ -12073,14 +12073,14 @@ FlashPoint__ReleaseHostAdapter(FlashPoint_CardHandle_T CardHandle)
static inline void
FlashPoint__StartCCB(FlashPoint_CardHandle_T CardHandle, BusLogic_CCB_T *CCB)
FlashPoint__StartCCB(FlashPoint_CardHandle_T CardHandle, struct BusLogic_CCB *CCB)
{
FlashPoint_StartCCB(CardHandle, (PSCCB) CCB);
}
static inline void
FlashPoint__AbortCCB(FlashPoint_CardHandle_T CardHandle, BusLogic_CCB_T *CCB)
FlashPoint__AbortCCB(FlashPoint_CardHandle_T CardHandle, struct BusLogic_CCB *CCB)
{
FlashPoint_AbortCCB(CardHandle, (PSCCB) CCB);
}
......@@ -12143,11 +12143,11 @@ void FlashPoint_InquireTargetInfo(FlashPoint_CardHandle_T CardHandle,
Define prototypes for the FlashPoint SCCB Manager Functions.
*/
extern unsigned char FlashPoint_ProbeHostAdapter(FlashPoint_Info_T *);
extern unsigned char FlashPoint_ProbeHostAdapter(struct FlashPoint_Info *);
extern FlashPoint_CardHandle_T
FlashPoint_HardwareResetHostAdapter(FlashPoint_Info_T *);
extern void FlashPoint_StartCCB(FlashPoint_CardHandle_T, BusLogic_CCB_T *);
extern int FlashPoint_AbortCCB(FlashPoint_CardHandle_T, BusLogic_CCB_T *);
FlashPoint_HardwareResetHostAdapter(struct FlashPoint_Info *);
extern void FlashPoint_StartCCB(FlashPoint_CardHandle_T, struct BusLogic_CCB *);
extern int FlashPoint_AbortCCB(FlashPoint_CardHandle_T, struct BusLogic_CCB *);
extern boolean FlashPoint_InterruptPending(FlashPoint_CardHandle_T);
extern int FlashPoint_HandleInterrupt(FlashPoint_CardHandle_T);
extern void FlashPoint_ReleaseHostAdapter(FlashPoint_CardHandle_T);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment