> +/* Named just like in the datasheet */ > +static struct adin_hw_stat adin_hw_stats[] = { > + { "RxErrCnt", 0x0014, }, > + { "MseA", 0x8402, 0, true }, > + { "MseB", 0x8403, 0, true }, > + { "MseC", 0x8404, 0, true }, > + { "MseD", 0x8405, 0, true }, > + { "FcFrmCnt", 0x940A, 0x940B }, /* FcFrmCntH + FcFrmCntL */ > + { "FcLenErrCnt", 0x940C }, > + { "FcAlgnErrCnt", 0x940D }, > + { "FcSymbErrCnt", 0x940E }, > + { "FcOszCnt", 0x940F }, > + { "FcUszCnt", 0x9410 }, > + { "FcOddCnt", 0x9411 }, > + { "FcOddPreCnt", 0x9412 }, > + { "FcDribbleBitsCnt", 0x9413 }, > + { "FcFalseCarrierCnt", 0x9414 }, I see some value in using the names from the datasheet. However, i found it quite hard to now what these counters represent given there current name. What is Mse? How does MseA differ from MseB? You have up to ETH_GSTRING_LEN characters, so maybe longer names would be better? Andrew