Hi Andrew,
>> + if (ret < 0)
>> + goto out;
>> +
>> + memcpy(dev->net->dev_addr, buf, ETH_ALEN);
>> + memcpy(dev->net->perm_addr, dev->net->dev_addr, ETH_ALEN);
>
> Is this really the permanent address? If i call aqc111_set_mac_addr()
> followed by aqc111_get_mac() i still get what is in the OTP EEPROM?
Thats actually a confusion with function name here.
Think its better to name it aqc111_init_mac() since it gets called
only once on bind.
It really initializes perm_addr once, thus standard ndev callback will give
the perm mac you want.
>
> You initialized it above as {0}. You don't need to memset it here.
>
>> + ret = aqc111_get_mac(dev, buf);
>
> Do you even need to zero it? If aqc111_get_mac() fails, it will be
> left undefined, but you fail the bind anyway.
We even don't need this `buf` here at all. We'll move it into
above init_mac function.
BR, Igor