1) 驱动中的延时语句一般禁止使用mdelay(),msleep的话特别是较短10~20ms的时候常常会因为系统调度变成更长的时间,精度较差,需要较为精确的ms级别延时请使用usleep_range(a, b),比如原来mdelay(1)、mdelay(10)可改为usleep_range(1000, 2000)、usleep_range(10000, 12000),如果是长达30ms或以上的延时使用msleep();
2) 中断过程中不能使用msleep和usleep_range,除了特殊情况必须加延时之外,mdelay一般也不可使用。