.. | .. |
---|
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, |
---|