MCPcopy Create free account
hub / github.com/F-Stack/f-stack / ionic_dev_cmd_wait

Function ionic_dev_cmd_wait

dpdk/drivers/net/ionic/ionic_main.c:301–330  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

299}
300
301static int
302ionic_dev_cmd_wait(struct ionic_dev *idev, unsigned long max_wait)
303{
304 unsigned long step_usec = IONIC_DEVCMD_CHECK_PERIOD_US;
305 unsigned long max_wait_usec = max_wait * 1000000L;
306 unsigned long elapsed_usec = 0;
307 int done;
308
309 /* Wait for dev cmd to complete.. but no more than max_wait sec */
310
311 do {
312 done = ionic_dev_cmd_done(idev);
313 if (done) {
314 IONIC_PRINT(DEBUG, "DEVCMD %d done took %ld usecs",
315 ioread8(&idev->dev_cmd->cmd.cmd.opcode),
316 elapsed_usec);
317 return 0;
318 }
319
320 rte_delay_us_block(step_usec);
321
322 elapsed_usec += step_usec;
323 } while (elapsed_usec < max_wait_usec);
324
325 IONIC_PRINT(ERR, "DEVCMD %d timeout after %ld usecs",
326 ioread8(&idev->dev_cmd->cmd.cmd.opcode),
327 elapsed_usec);
328
329 return -ETIMEDOUT;
330}
331
332static int
333ionic_dev_cmd_check_error(struct ionic_dev *idev)

Callers 1

ionic_dev_cmd_wait_checkFunction · 0.85

Calls 3

ionic_dev_cmd_doneFunction · 0.85
rte_delay_us_blockFunction · 0.85
ioread8Function · 0.50

Tested by

no test coverage detected