> +int mucse_mbx_get_capability(struct mucse_hw *hw) > +{ > + struct hw_abilities ability = {}; > + int try_cnt = 3; > + int err = -EIO; > + > + while (try_cnt--) { > + err = mucse_fw_get_capability(hw, &ability); > + if (err) > + continue; > + hw->pfvfnum = le16_to_cpu(ability.pfnum); > + hw->fw_version = le32_to_cpu(ability.fw_version); > + hw->usecstocount = le32_to_cpu(ability.axi_mhz); If you can get it from the hardware, why do you need to initialise it in the earlier patch? I guess you have a bootstrap problem, you need it to get it. But cannot you just initialise it to a single pessimistic value which will work well enough for all hardware variants until you can actually ask the hardware? Andrew