| .. | .. |
|---|
| 292 | 292 | u32 ctxsize; |
|---|
| 293 | 293 | |
|---|
| 294 | 294 | /** Time out and callback */ |
|---|
| 295 | | - size_t wait_time; |
|---|
| 296 | | - size_t timeout; |
|---|
| 295 | + size_t expiry_time; |
|---|
| 297 | 296 | u32 iq_no; |
|---|
| 298 | 297 | void (*callback)(struct octeon_device *, u32, void *); |
|---|
| 299 | 298 | void *callback_arg; |
|---|
| 299 | + |
|---|
| 300 | + int caller_is_done; |
|---|
| 301 | + u32 sc_status; |
|---|
| 302 | + struct completion complete; |
|---|
| 300 | 303 | }; |
|---|
| 304 | + |
|---|
| 305 | +/* max timeout (in milli sec) for soft request */ |
|---|
| 306 | +#define LIO_SC_MAX_TMO_MS 60000 |
|---|
| 301 | 307 | |
|---|
| 302 | 308 | /** Maximum number of buffers to allocate into soft command buffer pool |
|---|
| 303 | 309 | */ |
|---|
| .. | .. |
|---|
| 319 | 325 | (((octeon_dev_ptr)->instr_queue[iq_no]->stats.field) += count) |
|---|
| 320 | 326 | |
|---|
| 321 | 327 | int octeon_setup_sc_buffer_pool(struct octeon_device *oct); |
|---|
| 328 | +int octeon_free_sc_done_list(struct octeon_device *oct); |
|---|
| 329 | +int octeon_free_sc_zombie_list(struct octeon_device *oct); |
|---|
| 322 | 330 | int octeon_free_sc_buffer_pool(struct octeon_device *oct); |
|---|
| 323 | 331 | struct octeon_soft_command * |
|---|
| 324 | 332 | octeon_alloc_soft_command(struct octeon_device *oct, |
|---|
| .. | .. |
|---|
| 370 | 378 | u32 force_db, void *cmd, void *buf, |
|---|
| 371 | 379 | u32 datasize, u32 reqtype); |
|---|
| 372 | 380 | |
|---|
| 381 | +void octeon_dump_soft_command(struct octeon_device *oct, |
|---|
| 382 | + struct octeon_soft_command *sc); |
|---|
| 383 | + |
|---|
| 373 | 384 | void octeon_prepare_soft_command(struct octeon_device *oct, |
|---|
| 374 | 385 | struct octeon_soft_command *sc, |
|---|
| 375 | 386 | u8 opcode, u8 subcode, |
|---|