> * rnpgbe_add_adapter - Add netdev for this pci_dev > * @pdev: PCI device information structure > @@ -78,6 +129,38 @@ static int rnpgbe_add_adapter(struct pci_dev *pdev, > > hw->hw_addr = hw_addr; > info->init(hw); > + mucse_init_mbx_params_pf(hw); > + err = hw->ops->echo_fw_status(hw, true, mucse_fw_powerup); > + if (err) { > + dev_warn(&pdev->dev, "Send powerup to hw failed %d\n", err); > + dev_warn(&pdev->dev, "Maybe low performance\n"); > + } > + > + err = mucse_mbx_sync_fw(hw); > + if (err) { > + dev_err(&pdev->dev, "Sync fw failed! %d\n", err); > + goto err_free_net; > + } The order here seems odd. Don't you want to synchronise the mbox before you power up? If your are out of sync, the power up could fail, and you keep in lower power mode? > + netdev->netdev_ops = &rnpgbe_netdev_ops; > + netdev->watchdog_timeo = 5 * HZ; > + err = hw->ops->reset_hw(hw); > + if (err) { > + dev_err(&pdev->dev, "Hw reset failed %d\n", err); > + goto err_free_net; > + } > + err = hw->ops->get_perm_mac(hw); > + if (err == -EINVAL) { > + dev_warn(&pdev->dev, "Try to use random MAC\n"); > + eth_random_addr(hw->perm_addr); eth_random_addr() cannot fail. So you don't try to use a random MAC address, you are using a random MAC address/ Andrew