diff options
Diffstat (limited to 'Documentation/s390/cds.txt')
-rw-r--r-- | Documentation/s390/cds.txt | 45 |
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 | ||
58 | read_conf_data() | 58 | read_conf_data() |
59 | read_conf_data_lpm() | ||
59 | read configuration data. | 60 | read configuration data. |
60 | 61 | ||
61 | ccw_device_get_ciw() | 62 | ccw_device_get_ciw() |
62 | get commands from extended sense data. | 63 | get commands from extended sense data. |
63 | 64 | ||
64 | ccw_device_start() | 65 | ccw_device_start() |
66 | ccw_device_start_timeout() | ||
67 | ccw_device_start_key() | ||
68 | ccw_device_start_key_timeout() | ||
65 | initiate an I/O request. | 69 | initiate an I/O request. |
66 | 70 | ||
67 | ccw_device_resume() | 71 | ccw_device_resume() |
@@ -197,19 +201,21 @@ The read_dev_chars() function returns : | |||
197 | operational. | 201 | operational. |
198 | 202 | ||
199 | 203 | ||
200 | read_conf_data() - Read Configuration Data | 204 | read_conf_data(), read_conf_data_lpm() - Read Configuration Data |
201 | 205 | ||
202 | Retrieve the device dependent configuration data. Please have a look at your | 206 | Retrieve the device dependent configuration data. Please have a look at your |
203 | device dependent I/O commands for the device specific layout of the node | 207 | device dependent I/O commands for the device specific layout of the node |
204 | descriptor elements. | 208 | descriptor elements. read_conf_data_lpm() will retrieve the configuration data |
209 | for a specific path. | ||
205 | 210 | ||
206 | The function is meant to be called with an irq handler in place; that is, | 211 | The function is meant to be called with the device already enabled; that is, |
207 | at earliest during set_online() processing. | 212 | at earliest during set_online() processing. |
208 | 213 | ||
209 | The function may be called enabled or disabled, but the device must not be | 214 | The function may be called enabled or disabled, but the device must not be |
210 | locked | 215 | locked |
211 | 216 | ||
212 | int read_conf_data(struct ccw_device, void **buffer, int *length, __u8 lpm); | 217 | int read_conf_data(struct ccw_device, void **buffer, int *length); |
218 | int read_conf_data_lpm(struct ccw_device, void **buffer, int *length, __u8 lpm); | ||
213 | 219 | ||
214 | cdev - the ccw_device the data is requested for. | 220 | cdev - the ccw_device the data is requested for. |
215 | buffer - Pointer to a buffer pointer. The read_conf_data() routine | 221 | buffer - 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); |
272 | int 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); | ||
278 | int 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); | ||
284 | int 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 | ||
267 | cdev : ccw_device the I/O is destined for | 292 | cdev : ccw_device the I/O is destined for |
268 | cpa : logical start address of channel program | 293 | cpa : 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. |
273 | lpm : defines the channel path to be used for a specific I/O | 298 | lpm : 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. |
300 | key : the storage key to use for the I/O (useful for operating on a | ||
301 | storage with a storage key != default key) | ||
275 | flag : defines the action to be performed for I/O processing | 302 | flag : defines the action to be performed for I/O processing |
303 | expires : 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 | ||
277 | Possible flag values are : | 307 | Possible flag values are : |
278 | 308 | ||
@@ -327,6 +357,13 @@ current (last) I/O request. In case of a delayed status notification no special | |||
327 | interrupt will be presented to indicate I/O completion as the I/O request was | 357 | interrupt will be presented to indicate I/O completion as the I/O request was |
328 | never started, even though ccw_device_start() returned with successful completion. | 358 | never started, even though ccw_device_start() returned with successful completion. |
329 | 359 | ||
360 | The irb may contain an error value, and the device driver should check for this | ||
361 | first: | ||
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 | |||
330 | If the concurrent sense flag in the extended status word in the irb is set, the | 367 | If the concurrent sense flag in the extended status word in the irb is set, the |
331 | field irb->scsw.count describes the numer of device specific sense bytes | 368 | field irb->scsw.count describes the numer of device specific sense bytes |
332 | available in the extended control word irb->scsw.ecw[0]. No device sensing by | 369 | available in the extended control word irb->scsw.ecw[0]. No device sensing by |