部分芯片提供错误检测寄存器,需要定时轮询,如果发现错误上报错误告警。
驱动应该在发现错误的时候把完整的寄存器以及相关联的寄存器都打印出来,便于甄别是否是真的硬件故障。
防止海量打印,可以通过状态位变化标记决定是否打印信息。
state_flag = 0;//初始状态
func()
{
get_state(&new_state_flag);
if (state_flag != new_state_flag)
printk();
state_flag = new_state_flag;
}