Lines Matching refs:LLD
21 SCSI subsystem LLD is a software bridge to the other driver subsystem.
26 For example, the aic7xxx LLD controls Adaptec SCSI parallel interface
28 LLD can be built into the kernel or loaded as a module. There can only be
29 one aic7xxx LLD running in a Linux system but it may be controlling many
37 The SCSI mid level isolates an LLD from other layers such as the SCSI
62 Traditionally an LLD for the SCSI subsystem has been at least two files in
71 When a new LLD is being added to Linux, the following files (found in the
81 to be hot plugged (and unplugged) during the lifetime of the LLD and will
88 An LLD interfaces to the SCSI subsystem several ways:
93 functions at some point in the future. The LLD will supply
104 scsi_host_alloc() [#]_. Those interface functions that the LLD does not
114 All functions defined within an LLD and all data defined at file scope
115 should be static. For example the slave_alloc() function in an LLD
125 In this model an LLD controls when SCSI hosts are introduced and removed
129 detected. After confirming that the new device is one that the LLD wants
130 to control, the LLD will initialize the HBA and then register a new host
133 During LLD initialization the driver should register itself with the
138 aware of an LLD when that LLD registers its first HBA.
140 At some later time, the LLD becomes aware of an HBA and what follows
141 is a typical sequence of calls between the LLD and the mid level.
146 LLD mid level LLD
165 If the LLD wants to adjust the default queue settings, it can invoke
169 associated with the LLD module being unloaded (e.g. with the "rmmod"
175 LLD mid level LLD
183 It may be useful for a LLD to keep track of struct Scsi_Host instances
198 An LLD can use this sequence to make the mid level aware of a SCSI device::
201 LLD mid level LLD
208 In a similar fashion, an LLD may become aware that a SCSI device has been
212 probably cause that device to be set offline by the mid level. An LLD that
217 LLD mid level LLD
223 It may be useful for an LLD to keep track of struct scsi_device instances
257 towards the end of include/scsi/scsi_device.h . If an LLD wants to keep
290 so an LLD that is a module can access them. The kernel will
291 arrange for the SCSI mid level to be loaded and initialized before any LLD
335 * into the LLD.
356 * in some other transport-specific way. The LLD must set up
366 * scsi_change_queue_depth - allow LLD to change queue depth on a SCSI device
369 * or number of commands the LLD can queue up
377 * LLD. [Specifically during and after slave_configure() and prior to
411 * get unblocked other than the LLD calling scsi_unblock_requests().
429 * Notes: When this call returns to the LLD, the SCSI bus scan on
432 * area for the LLD's exclusive use.
468 * The LLD need not worry exactly when the Scsi_Host instance is
487 * Notes: When this call returns to the LLD, the SCSI bus scan on
490 * area for the LLD.
506 * Notes: If an LLD becomes aware that a scsi device (lu) has
521 * Returns value: 0 on success, 1 on failure (e.g. LLD busy ??)
614 * in the "passive initialization model". Hence a LLD has no need to
689 * Optionally defined in: LLD
711 * Notes: This is to give the LLD an opportunity to do local recovery.
716 * Optionally defined in: LLD
737 * Optionally defined in: LLD
755 * Optionally defined in: LLD
773 * Optionally defined in: LLD
795 * Optionally defined in: LLD
825 * Optionally defined in: LLD
850 * mid level does not recognize it, then the LLD that controls
854 * Optionally defined in: LLD
884 * Optionally defined in: LLD
923 * immediately (and the LLD is starting (or will start) the given
952 * callback is invoked, then the LLD driver should perform
955 * the mid level queuing a command to an LLD.
957 * Defined in: LLD
982 * Optionally defined in: LLD
1005 * Optionally defined in: LLD
1029 * Optionally defined in: LLD
1039 There is one "struct scsi_host_template" instance per LLD [#]_. It is
1056 SCSI commands into an LLD.
1061 if it controls several different classes of hardware (e.g. an LLD
1067 There is one struct Scsi_Host instance per host (HBA) that an LLD
1096 controlled by the host. Overridden by LLD calls to
1105 - name of LLD. This is the driver name that sysfs uses
1116 - area reserved for LLD at end of struct Scsi_Host. Size
1121 the LLD for the Scsi_Host. Used most often in validating
1137 Instances of this structure convey SCSI commands to the LLD and responses
1139 commands become queued against the LLD than are indicated by
1164 - function pointer that should be invoked by LLD when the
1166 Should only be called by an LLD if the LLD has accepted
1168 0). The LLD may invoke 'done' prior to queuecommand()
1171 - should be set by LLD prior to calling 'done'. A value
1187 prone in the presence of command queuing so the LLD should
1193 - an LLD should set this signed integer to the requested
1196 preset to 0 so an LLD can ignore it if it cannot detect
1197 underruns (overruns should be rare). If possible an LLD
1202 - LLD should place (DID_ERROR << 16) in 'result' if
1206 report a DID_ERROR. Better for an LLD to implement
1209 It is recommended that a LLD set 'resid' on data transfers from a SCSI
1212 (and possibly RECOVERED ERROR). In these cases if a LLD is in doubt how much
1215 a LLD might use these helpers::
1243 occurs. LLDs should perform autosense. This should be done when the LLD
1248 b) or, the LLD issuing a REQUEST SENSE command itself
1251 decides whether the LLD has performed autosense by checking struct
1259 may get out of synchronization. This is why it is best for the LLD
1270 LLD interface functions abort() and reset() have been removed.