On Wed, Aug 20, 2025 at 10:30:17PM +0200, Andrew Lunn wrote:
quoted
+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
It is a problem related with fw version. Older fw may return with axi_mhz
0, So I init a no-zero default value first. Also, I missed to check the axi_mhz
here. The 'usecstocount' is removed in v6, I will update here like this in
the patch which truely use 'usecstocount':
if (le32_to_cpu(ability.axi_mhz))
hw->usecstocount = le32_to_cpu(ability.axi_mhz);
/* else keep use the default value */
Thanks for your feedback.