diff options
Diffstat (limited to 'Documentation/scsi/scsi_mid_low_api.txt')
-rw-r--r-- | Documentation/scsi/scsi_mid_low_api.txt | 39 |
1 files changed, 29 insertions, 10 deletions
diff --git a/Documentation/scsi/scsi_mid_low_api.txt b/Documentation/scsi/scsi_mid_low_api.txt index 66565d42288f..8bbae3e1abdf 100644 --- a/Documentation/scsi/scsi_mid_low_api.txt +++ b/Documentation/scsi/scsi_mid_low_api.txt | |||
@@ -150,7 +150,8 @@ scsi devices of which only the first 2 respond: | |||
150 | LLD mid level LLD | 150 | LLD mid level LLD |
151 | ===-------------------=========--------------------===------ | 151 | ===-------------------=========--------------------===------ |
152 | scsi_host_alloc() --> | 152 | scsi_host_alloc() --> |
153 | scsi_add_host() --------+ | 153 | scsi_add_host() ----> |
154 | scsi_scan_host() -------+ | ||
154 | | | 155 | | |
155 | slave_alloc() | 156 | slave_alloc() |
156 | slave_configure() --> scsi_adjust_queue_depth() | 157 | slave_configure() --> scsi_adjust_queue_depth() |
@@ -196,7 +197,7 @@ of the issues involved. See the section on reference counting below. | |||
196 | 197 | ||
197 | 198 | ||
198 | The hotplug concept may be extended to SCSI devices. Currently, when an | 199 | The hotplug concept may be extended to SCSI devices. Currently, when an |
199 | HBA is added, the scsi_add_host() function causes a scan for SCSI devices | 200 | HBA is added, the scsi_scan_host() function causes a scan for SCSI devices |
200 | attached to the HBA's SCSI transport. On newer SCSI transports the HBA | 201 | attached to the HBA's SCSI transport. On newer SCSI transports the HBA |
201 | may become aware of a new SCSI device _after_ the scan has completed. | 202 | may become aware of a new SCSI device _after_ the scan has completed. |
202 | An LLD can use this sequence to make the mid level aware of a SCSI device: | 203 | An LLD can use this sequence to make the mid level aware of a SCSI device: |
@@ -372,7 +373,7 @@ names all start with "scsi_". | |||
372 | Summary: | 373 | Summary: |
373 | scsi_activate_tcq - turn on tag command queueing | 374 | scsi_activate_tcq - turn on tag command queueing |
374 | scsi_add_device - creates new scsi device (lu) instance | 375 | scsi_add_device - creates new scsi device (lu) instance |
375 | scsi_add_host - perform sysfs registration and SCSI bus scan. | 376 | scsi_add_host - perform sysfs registration and set up transport class |
376 | scsi_adjust_queue_depth - change the queue depth on a SCSI device | 377 | scsi_adjust_queue_depth - change the queue depth on a SCSI device |
377 | scsi_assign_lock - replace default host_lock with given lock | 378 | scsi_assign_lock - replace default host_lock with given lock |
378 | scsi_bios_ptable - return copy of block device's partition table | 379 | scsi_bios_ptable - return copy of block device's partition table |
@@ -386,6 +387,7 @@ Summary: | |||
386 | scsi_remove_device - detach and remove a SCSI device | 387 | scsi_remove_device - detach and remove a SCSI device |
387 | scsi_remove_host - detach and remove all SCSI devices owned by host | 388 | scsi_remove_host - detach and remove all SCSI devices owned by host |
388 | scsi_report_bus_reset - report scsi _bus_ reset observed | 389 | scsi_report_bus_reset - report scsi _bus_ reset observed |
390 | scsi_scan_host - scan SCSI bus | ||
389 | scsi_track_queue_full - track successive QUEUE_FULL events | 391 | scsi_track_queue_full - track successive QUEUE_FULL events |
390 | scsi_unblock_requests - allow further commands to be queued to given host | 392 | scsi_unblock_requests - allow further commands to be queued to given host |
391 | scsi_unregister - [calls scsi_host_put()] | 393 | scsi_unregister - [calls scsi_host_put()] |
@@ -425,10 +427,10 @@ void scsi_activate_tcq(struct scsi_device *sdev, int depth) | |||
425 | * Might block: yes | 427 | * Might block: yes |
426 | * | 428 | * |
427 | * Notes: This call is usually performed internally during a scsi | 429 | * Notes: This call is usually performed internally during a scsi |
428 | * bus scan when an HBA is added (i.e. scsi_add_host()). So it | 430 | * bus scan when an HBA is added (i.e. scsi_scan_host()). So it |
429 | * should only be called if the HBA becomes aware of a new scsi | 431 | * should only be called if the HBA becomes aware of a new scsi |
430 | * device (lu) after scsi_add_host() has completed. If successful | 432 | * device (lu) after scsi_scan_host() has completed. If successful |
431 | * this call we lead to slave_alloc() and slave_configure() callbacks | 433 | * this call can lead to slave_alloc() and slave_configure() callbacks |
432 | * into the LLD. | 434 | * into the LLD. |
433 | * | 435 | * |
434 | * Defined in: drivers/scsi/scsi_scan.c | 436 | * Defined in: drivers/scsi/scsi_scan.c |
@@ -439,7 +441,7 @@ struct scsi_device * scsi_add_device(struct Scsi_Host *shost, | |||
439 | 441 | ||
440 | 442 | ||
441 | /** | 443 | /** |
442 | * scsi_add_host - perform sysfs registration and SCSI bus scan. | 444 | * scsi_add_host - perform sysfs registration and set up transport class |
443 | * @shost: pointer to scsi host instance | 445 | * @shost: pointer to scsi host instance |
444 | * @dev: pointer to struct device of type scsi class | 446 | * @dev: pointer to struct device of type scsi class |
445 | * | 447 | * |
@@ -448,7 +450,11 @@ struct scsi_device * scsi_add_device(struct Scsi_Host *shost, | |||
448 | * Might block: no | 450 | * Might block: no |
449 | * | 451 | * |
450 | * Notes: Only required in "hotplug initialization model" after a | 452 | * Notes: Only required in "hotplug initialization model" after a |
451 | * successful call to scsi_host_alloc(). | 453 | * successful call to scsi_host_alloc(). This function does not |
454 | * scan the bus; this can be done by calling scsi_scan_host() or | ||
455 | * in some other transport-specific way. The LLD must set up | ||
456 | * the transport template before calling this function and may only | ||
457 | * access the transport class data after this function has been called. | ||
452 | * | 458 | * |
453 | * Defined in: drivers/scsi/hosts.c | 459 | * Defined in: drivers/scsi/hosts.c |
454 | **/ | 460 | **/ |
@@ -559,7 +565,7 @@ void scsi_deactivate_tcq(struct scsi_device *sdev, int depth) | |||
559 | * area for the LLD's exclusive use. | 565 | * area for the LLD's exclusive use. |
560 | * Both associated refcounting objects have their refcount set to 1. | 566 | * Both associated refcounting objects have their refcount set to 1. |
561 | * Full registration (in sysfs) and a bus scan are performed later when | 567 | * Full registration (in sysfs) and a bus scan are performed later when |
562 | * scsi_add_host() is called. | 568 | * scsi_add_host() and scsi_scan_host() are called. |
563 | * | 569 | * |
564 | * Defined in: drivers/scsi/hosts.c . | 570 | * Defined in: drivers/scsi/hosts.c . |
565 | **/ | 571 | **/ |
@@ -699,6 +705,19 @@ void scsi_report_bus_reset(struct Scsi_Host * shost, int channel) | |||
699 | 705 | ||
700 | 706 | ||
701 | /** | 707 | /** |
708 | * scsi_scan_host - scan SCSI bus | ||
709 | * @shost: a pointer to a scsi host instance | ||
710 | * | ||
711 | * Might block: yes | ||
712 | * | ||
713 | * Notes: Should be called after scsi_add_host() | ||
714 | * | ||
715 | * Defined in: drivers/scsi/scsi_scan.c | ||
716 | **/ | ||
717 | void scsi_scan_host(struct Scsi_Host *shost) | ||
718 | |||
719 | |||
720 | /** | ||
702 | * scsi_track_queue_full - track successive QUEUE_FULL events on given | 721 | * scsi_track_queue_full - track successive QUEUE_FULL events on given |
703 | * device to determine if and when there is a need | 722 | * device to determine if and when there is a need |
704 | * to adjust the queue depth on the device. | 723 | * to adjust the queue depth on the device. |
@@ -1433,7 +1452,7 @@ The following people have contributed to this document: | |||
1433 | Christoph Hellwig <hch at infradead dot org> | 1452 | Christoph Hellwig <hch at infradead dot org> |
1434 | Doug Ledford <dledford at redhat dot com> | 1453 | Doug Ledford <dledford at redhat dot com> |
1435 | Andries Brouwer <Andries dot Brouwer at cwi dot nl> | 1454 | Andries Brouwer <Andries dot Brouwer at cwi dot nl> |
1436 | Randy Dunlap <rddunlap at osdl dot org> | 1455 | Randy Dunlap <rdunlap at xenotime dot net> |
1437 | Alan Stern <stern at rowland dot harvard dot edu> | 1456 | Alan Stern <stern at rowland dot harvard dot edu> |
1438 | 1457 | ||
1439 | 1458 | ||