aboutsummaryrefslogtreecommitdiffstats
path: root/include/scsi/scsi_host.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/scsi/scsi_host.h')
-rw-r--r--include/scsi/scsi_host.h44
1 files changed, 25 insertions, 19 deletions
diff --git a/include/scsi/scsi_host.h b/include/scsi/scsi_host.h
index 5c58d594126a..d1299e999723 100644
--- a/include/scsi/scsi_host.h
+++ b/include/scsi/scsi_host.h
@@ -280,39 +280,45 @@ struct scsi_host_template {
280 * If the host wants to be called before the scan starts, but 280 * If the host wants to be called before the scan starts, but
281 * after the midlayer has set up ready for the scan, it can fill 281 * after the midlayer has set up ready for the scan, it can fill
282 * in this function. 282 * in this function.
283 *
284 * Status: OPTIONAL
283 */ 285 */
284 void (* scan_start)(struct Scsi_Host *); 286 void (* scan_start)(struct Scsi_Host *);
285 287
286 /* 288 /*
287 * fill in this function to allow the queue depth of this host 289 * Fill in this function to allow the queue depth of this host
288 * to be changeable (on a per device basis). returns either 290 * to be changeable (on a per device basis). Returns either
289 * the current queue depth setting (may be different from what 291 * the current queue depth setting (may be different from what
290 * was passed in) or an error. An error should only be 292 * was passed in) or an error. An error should only be
291 * returned if the requested depth is legal but the driver was 293 * returned if the requested depth is legal but the driver was
292 * unable to set it. If the requested depth is illegal, the 294 * unable to set it. If the requested depth is illegal, the
293 * driver should set and return the closest legal queue depth. 295 * driver should set and return the closest legal queue depth.
294 * 296 *
297 * Status: OPTIONAL
295 */ 298 */
296 int (* change_queue_depth)(struct scsi_device *, int); 299 int (* change_queue_depth)(struct scsi_device *, int);
297 300
298 /* 301 /*
299 * fill in this function to allow the changing of tag types 302 * Fill in this function to allow the changing of tag types
300 * (this also allows the enabling/disabling of tag command 303 * (this also allows the enabling/disabling of tag command
301 * queueing). An error should only be returned if something 304 * queueing). An error should only be returned if something
302 * went wrong in the driver while trying to set the tag type. 305 * went wrong in the driver while trying to set the tag type.
303 * If the driver doesn't support the requested tag type, then 306 * If the driver doesn't support the requested tag type, then
304 * it should set the closest type it does support without 307 * it should set the closest type it does support without
305 * returning an error. Returns the actual tag type set. 308 * returning an error. Returns the actual tag type set.
309 *
310 * Status: OPTIONAL
306 */ 311 */
307 int (* change_queue_type)(struct scsi_device *, int); 312 int (* change_queue_type)(struct scsi_device *, int);
308 313
309 /* 314 /*
310 * This function determines the bios parameters for a given 315 * This function determines the BIOS parameters for a given
311 * harddisk. These tend to be numbers that are made up by 316 * harddisk. These tend to be numbers that are made up by
312 * the host adapter. Parameters: 317 * the host adapter. Parameters:
313 * size, device, list (heads, sectors, cylinders) 318 * size, device, list (heads, sectors, cylinders)
314 * 319 *
315 * Status: OPTIONAL */ 320 * Status: OPTIONAL
321 */
316 int (* bios_param)(struct scsi_device *, struct block_device *, 322 int (* bios_param)(struct scsi_device *, struct block_device *,
317 sector_t, int []); 323 sector_t, int []);
318 324
@@ -351,7 +357,7 @@ struct scsi_host_template {
351 357
352 /* 358 /*
353 * This determines if we will use a non-interrupt driven 359 * This determines if we will use a non-interrupt driven
354 * or an interrupt driven scheme, It is set to the maximum number 360 * or an interrupt driven scheme. It is set to the maximum number
355 * of simultaneous commands a given host adapter will accept. 361 * of simultaneous commands a given host adapter will accept.
356 */ 362 */
357 int can_queue; 363 int can_queue;
@@ -372,12 +378,12 @@ struct scsi_host_template {
372 unsigned short sg_tablesize; 378 unsigned short sg_tablesize;
373 379
374 /* 380 /*
375 * If the host adapter has limitations beside segment count 381 * Set this if the host adapter has limitations beside segment count.
376 */ 382 */
377 unsigned short max_sectors; 383 unsigned short max_sectors;
378 384
379 /* 385 /*
380 * dma scatter gather segment boundary limit. a segment crossing this 386 * DMA scatter gather segment boundary limit. A segment crossing this
381 * boundary will be split in two. 387 * boundary will be split in two.
382 */ 388 */
383 unsigned long dma_boundary; 389 unsigned long dma_boundary;
@@ -386,7 +392,7 @@ struct scsi_host_template {
386 * This specifies "machine infinity" for host templates which don't 392 * This specifies "machine infinity" for host templates which don't
387 * limit the transfer size. Note this limit represents an absolute 393 * limit the transfer size. Note this limit represents an absolute
388 * maximum, and may be over the transfer limits allowed for 394 * maximum, and may be over the transfer limits allowed for
389 * individual devices (e.g. 256 for SCSI-1) 395 * individual devices (e.g. 256 for SCSI-1).
390 */ 396 */
391#define SCSI_DEFAULT_MAX_SECTORS 1024 397#define SCSI_DEFAULT_MAX_SECTORS 1024
392 398
@@ -413,12 +419,12 @@ struct scsi_host_template {
413 unsigned supported_mode:2; 419 unsigned supported_mode:2;
414 420
415 /* 421 /*
416 * true if this host adapter uses unchecked DMA onto an ISA bus. 422 * True if this host adapter uses unchecked DMA onto an ISA bus.
417 */ 423 */
418 unsigned unchecked_isa_dma:1; 424 unsigned unchecked_isa_dma:1;
419 425
420 /* 426 /*
421 * true if this host adapter can make good use of clustering. 427 * True if this host adapter can make good use of clustering.
422 * I originally thought that if the tablesize was large that it 428 * I originally thought that if the tablesize was large that it
423 * was a waste of CPU cycles to prepare a cluster list, but 429 * was a waste of CPU cycles to prepare a cluster list, but
424 * it works out that the Buslogic is faster if you use a smaller 430 * it works out that the Buslogic is faster if you use a smaller
@@ -428,7 +434,7 @@ struct scsi_host_template {
428 unsigned use_clustering:1; 434 unsigned use_clustering:1;
429 435
430 /* 436 /*
431 * True for emulated SCSI host adapters (e.g. ATAPI) 437 * True for emulated SCSI host adapters (e.g. ATAPI).
432 */ 438 */
433 unsigned emulated:1; 439 unsigned emulated:1;
434 440
@@ -438,12 +444,12 @@ struct scsi_host_template {
438 unsigned skip_settle_delay:1; 444 unsigned skip_settle_delay:1;
439 445
440 /* 446 /*
441 * ordered write support 447 * True if we are using ordered write support.
442 */ 448 */
443 unsigned ordered_tag:1; 449 unsigned ordered_tag:1;
444 450
445 /* 451 /*
446 * Countdown for host blocking with no commands outstanding 452 * Countdown for host blocking with no commands outstanding.
447 */ 453 */
448 unsigned int max_host_blocked; 454 unsigned int max_host_blocked;
449 455
@@ -522,8 +528,8 @@ struct Scsi_Host {
522 struct scsi_transport_template *transportt; 528 struct scsi_transport_template *transportt;
523 529
524 /* 530 /*
525 * area to keep a shared tag map (if needed, will be 531 * Area to keep a shared tag map (if needed, will be
526 * NULL if not) 532 * NULL if not).
527 */ 533 */
528 struct blk_queue_tag *bqt; 534 struct blk_queue_tag *bqt;
529 535
@@ -596,16 +602,16 @@ struct Scsi_Host {
596 /* 602 /*
597 * Host uses correct SCSI ordering not PC ordering. The bit is 603 * Host uses correct SCSI ordering not PC ordering. The bit is
598 * set for the minority of drivers whose authors actually read 604 * set for the minority of drivers whose authors actually read
599 * the spec ;) 605 * the spec ;).
600 */ 606 */
601 unsigned reverse_ordering:1; 607 unsigned reverse_ordering:1;
602 608
603 /* 609 /*
604 * ordered write support 610 * Ordered write support
605 */ 611 */
606 unsigned ordered_tag:1; 612 unsigned ordered_tag:1;
607 613
608 /* task mgmt function in progress */ 614 /* Task mgmt function in progress */
609 unsigned tmf_in_progress:1; 615 unsigned tmf_in_progress:1;
610 616
611 /* Asynchronous scan in progress */ 617 /* Asynchronous scan in progress */