aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/scsi/scsi_mid_low_api.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/scsi/scsi_mid_low_api.txt')
-rw-r--r--Documentation/scsi/scsi_mid_low_api.txt39
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:
150LLD mid level LLD 150LLD mid level LLD
151===-------------------=========--------------------===------ 151===-------------------=========--------------------===------
152scsi_host_alloc() --> 152scsi_host_alloc() -->
153scsi_add_host() --------+ 153scsi_add_host() ---->
154scsi_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
198The hotplug concept may be extended to SCSI devices. Currently, when an 199The hotplug concept may be extended to SCSI devices. Currently, when an
199HBA is added, the scsi_add_host() function causes a scan for SCSI devices 200HBA is added, the scsi_scan_host() function causes a scan for SCSI devices
200attached to the HBA's SCSI transport. On newer SCSI transports the HBA 201attached to the HBA's SCSI transport. On newer SCSI transports the HBA
201may become aware of a new SCSI device _after_ the scan has completed. 202may become aware of a new SCSI device _after_ the scan has completed.
202An LLD can use this sequence to make the mid level aware of a SCSI device: 203An LLD can use this sequence to make the mid level aware of a SCSI device:
@@ -372,7 +373,7 @@ names all start with "scsi_".
372Summary: 373Summary:
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 **/
717void 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