这个延迟函数最少的延迟时间为50us, 就算min=max=1, 实际的效果应该不是延迟1us, 而是50us, 大牛们说的。。

 

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一般也不可使用。如果实在需要延时,可以考虑放到 queue_work() 来做
参考下面的Link

https://www.cnblogs.com/vedic/p/11069249.html 

 

[2020-06-02 09:48:43.469] _MI_SVP_Un[51887.715856] BUG: scheduling while atomic: Chrome_IOThread/2800/0x00010001
[2020-06-02 09:48:43.469] [51887.723208] Modules linked in: wlan_mt7668_usb(O) wlan_mt7668_usb_prealloc(O) cfg80211 xfs exportfs usb_storage ehci_hcd mwgifker(PO) utpa2k(O) libdmdbraslia(O) mdrv_ldm(O) kdrv_hdr10plus_ref(O) kdrv_alg(O) kdrv_platform(O) kdrv_dolby_vision(O) iniparser(O) firmware_class kdrv_xc(O) mali_kbase(O) f81232 ftdi_sio cp210x ch341 pl2303 usbserial
[2020-06-02 09:48:43.470] [51887.753503] Preemption disabled at:
[2020-06-02 09:48:43.470] [51887.753517] [<ffffff80080c8744>] irq_enter+0x2c/0x54
[2020-06-02 09:48:43.470] [51887.761974] CPU: 0 PID: 2800 Comm: Chrome_IOThread Tainted: P O 4.19.79-dtv2020-t31-20200526 #1
[2020-06-02 09:48:43.484] [51887.771977] Hardware name: M7642 (DT)
[2020-06-02 09:48:43.484] [51887.775640] Call trace:
[2020-06-02 09:48:43.484] [51887.778089] dump_backtrace+0x0/0x19c
[2020-06-02 09:48:43.484] [51887.781753] show_stack+0x14/0x1c
[2020-06-02 09:48:43.484] [51887.785071] dump_stack+0x88/0xac
[2020-06-02 09:48:43.484] [51887.788389] __schedule_bug+0x68/0xb4
[2020-06-02 09:48:43.484] [51887.792055] __schedule+0x534/0x710
[2020-06-02 09:48:43.484] [51887.795545] schedule+0x34/0x94
[2020-06-02 09:48:43.484] [51887.798687] schedule_hrtimeout_range_clock+0x98/0x104
[2020-06-02 09:48:43.484] [51887.803827] schedule_hrtimeout_range+0x10/0x18
[2020-06-02 09:48:43.484] [51887.808358] usleep_range+0x6c/0x9c
[2020-06-02 09:48:43.484] [51887.811874] Mdrv_XC_HSE_Control+0x1cc/0x514 [kdrv_xc]
[2020-06-02 09:48:43.484] [51887.817036] KDrv_XC_Seamless_PreHandler+0x120/0x154 [kdrv_xc]
[2020-06-02 09:48:43.484] [51887.822892] _KDrv_XC_Shm_HRTimer_Callback+0x12c/0x1c4 [kdrv_xc]
[2020-06-02 09:48:43.484] [51887.828906] __hrtimer_run_queues+0x180/0x390
[2020-06-02 09:48:43.484] [51887.833264] hrtimer_interrupt+0xf0/0x254
[2020-06-02 09:48:43.484] [51887.837278] arch_timer_handler_phys+0x2c/0x38
[2020-06-02 09:48:43.484] [51887.841725] handle_percpu_devid_irq+0xac/0x290
[2020-06-02 09:48:43.484] [51887.846258] generic_handle_irq+0x24/0x38
[2020-06-02 09:48:43.484] [51887.850269] __handle_domain_irq+0x88/0x100
[2020-06-02 09:48:43.495] [51887.854453] gic_handle_irq+0x64/0xc0
[2020-06-02 09:48:43.495] [51887.858117] el0_irq_naked+0x4c/0x54