aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/s390/cds.txt45
1 files changed, 41 insertions, 4 deletions
diff --git a/Documentation/s390/cds.txt b/Documentation/s390/cds.txt
index d9397170fb36..f0be389c7116 100644
--- a/Documentation/s390/cds.txt
+++ b/Documentation/s390/cds.txt
@@ -56,12 +56,16 @@ read_dev_chars()
56 read device characteristics 56 read device characteristics
57 57
58read_conf_data() 58read_conf_data()
59read_conf_data_lpm()
59 read configuration data. 60 read configuration data.
60 61
61ccw_device_get_ciw() 62ccw_device_get_ciw()
62 get commands from extended sense data. 63 get commands from extended sense data.
63 64
64ccw_device_start() 65ccw_device_start()
66ccw_device_start_timeout()
67ccw_device_start_key()
68ccw_device_start_key_timeout()
65 initiate an I/O request. 69 initiate an I/O request.
66 70
67ccw_device_resume() 71ccw_device_resume()
@@ -197,19 +201,21 @@ The read_dev_chars() function returns :
197 operational. 201 operational.
198 202
199 203
200read_conf_data() - Read Configuration Data 204read_conf_data(), read_conf_data_lpm() - Read Configuration Data
201 205
202Retrieve the device dependent configuration data. Please have a look at your 206Retrieve the device dependent configuration data. Please have a look at your
203device dependent I/O commands for the device specific layout of the node 207device dependent I/O commands for the device specific layout of the node
204descriptor elements. 208descriptor elements. read_conf_data_lpm() will retrieve the configuration data
209for a specific path.
205 210
206The function is meant to be called with an irq handler in place; that is, 211The function is meant to be called with the device already enabled; that is,
207at earliest during set_online() processing. 212at earliest during set_online() processing.
208 213
209The function may be called enabled or disabled, but the device must not be 214The function may be called enabled or disabled, but the device must not be
210locked 215locked
211 216
212int read_conf_data(struct ccw_device, void **buffer, int *length, __u8 lpm); 217int read_conf_data(struct ccw_device, void **buffer, int *length);
218int read_conf_data_lpm(struct ccw_device, void **buffer, int *length, __u8 lpm);
213 219
214cdev - the ccw_device the data is requested for. 220cdev - the ccw_device the data is requested for.
215buffer - Pointer to a buffer pointer. The read_conf_data() routine 221buffer - Pointer to a buffer pointer. The read_conf_data() routine
@@ -263,6 +269,25 @@ int ccw_device_start(struct ccw_device *cdev,
263 unsigned long intparm, 269 unsigned long intparm,
264 __u8 lpm, 270 __u8 lpm,
265 unsigned long flags); 271 unsigned long flags);
272int ccw_device_start_timeout(struct ccw_device *cdev,
273 struct ccw1 *cpa,
274 unsigned long intparm,
275 __u8 lpm,
276 unsigned long flags,
277 int expires);
278int ccw_device_start_key(struct ccw_device *cdev,
279 struct ccw1 *cpa,
280 unsigned long intparm,
281 __u8 lpm,
282 __u8 key,
283 unsigned long flags);
284int ccw_device_start_key_timeout(struct ccw_device *cdev,
285 struct ccw1 *cpa,
286 unsigned long intparm,
287 __u8 lpm,
288 __u8 key,
289 unsigned long flags,
290 int expires);
266 291
267cdev : ccw_device the I/O is destined for 292cdev : ccw_device the I/O is destined for
268cpa : logical start address of channel program 293cpa : logical start address of channel program
@@ -272,7 +297,12 @@ user_intparm : user specific interrupt information; will be presented
272 particular I/O request. 297 particular I/O request.
273lpm : defines the channel path to be used for a specific I/O 298lpm : defines the channel path to be used for a specific I/O
274 request. A value of 0 will make cio use the opm. 299 request. A value of 0 will make cio use the opm.
300key : the storage key to use for the I/O (useful for operating on a
301 storage with a storage key != default key)
275flag : defines the action to be performed for I/O processing 302flag : defines the action to be performed for I/O processing
303expires : timeout value in jiffies. The common I/O layer will terminate
304 the running program after this and call the interrupt handler
305 with ERR_PTR(-ETIMEDOUT) as irb.
276 306
277Possible flag values are : 307Possible flag values are :
278 308
@@ -327,6 +357,13 @@ current (last) I/O request. In case of a delayed status notification no special
327interrupt will be presented to indicate I/O completion as the I/O request was 357interrupt will be presented to indicate I/O completion as the I/O request was
328never started, even though ccw_device_start() returned with successful completion. 358never started, even though ccw_device_start() returned with successful completion.
329 359
360The irb may contain an error value, and the device driver should check for this
361first:
362
363-ETIMEDOUT: the common I/O layer terminated the request after the specified
364 timeout value
365-EIO: the common I/O layer terminated the request due to an error state
366
330If the concurrent sense flag in the extended status word in the irb is set, the 367If the concurrent sense flag in the extended status word in the irb is set, the
331field irb->scsw.count describes the numer of device specific sense bytes 368field irb->scsw.count describes the numer of device specific sense bytes
332available in the extended control word irb->scsw.ecw[0]. No device sensing by 369available in the extended control word irb->scsw.ecw[0]. No device sensing by