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

Function wait_for_reset_state

dpdk/drivers/net/ena/base/ena_com.c:986–1012  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

984}
985
986static int wait_for_reset_state(struct ena_com_dev *ena_dev, u32 timeout,
987 u16 exp_state)
988{
989 u32 val, exp = 0;
990 ena_time_t timeout_stamp;
991
992 /* Convert timeout from resolution of 100ms to us resolution. */
993 timeout_stamp = ENA_GET_SYSTEM_TIMEOUT(100 * 1000 * timeout);
994
995 while (1) {
996 val = ena_com_reg_bar_read32(ena_dev, ENA_REGS_DEV_STS_OFF);
997
998 if (unlikely(val == ENA_MMIO_READ_TIMEOUT)) {
999 ena_trc_err(ena_dev, "Reg read timeout occurred\n");
1000 return ENA_COM_TIMER_EXPIRED;
1001 }
1002
1003 if ((val & ENA_REGS_DEV_STS_RESET_IN_PROGRESS_MASK) ==
1004 exp_state)
1005 return 0;
1006
1007 if (ENA_TIME_EXPIRE(timeout_stamp))
1008 return ENA_COM_TIMER_EXPIRED;
1009
1010 ena_delay_exponential_backoff_us(exp++, ena_dev->ena_min_poll_delay_us);
1011 }
1012}
1013
1014static bool ena_com_check_supported_feature_id(struct ena_com_dev *ena_dev,
1015 enum ena_admin_aq_feature_id feature_id)

Callers 1

ena_com_dev_resetFunction · 0.70

Calls 2

ena_com_reg_bar_read32Function · 0.70

Tested by

no test coverage detected