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 |
