• Jia-Ju Bai's avatar
    video: fbdev: savage: Replace mdelay with usleep_range in savage_init_hw · 12f3ac2f
    Jia-Ju Bai authored
    savage_init_hw() is never called in atomic context.
    
    The call chains ending up at savage_init_hw() are:
    [1] savage_init_hw() <- savagefb_probe()
    [2] savage_init_hw() <- savagefb_resume()
    
    savagefb_probe() is only set as ".probe" in struct pci_driver.
    savagefb_resume) is only set as ".resume" in struct pci_driver.
    These functions are not called in atomic context.
    
    Despite never getting called from atomic context, savage_init_hw()
    calls mdelay() to busily wait.
    This is not necessary and can be replaced with usleep_range to
    avoid busy waiting.
    
    This is found by a static analysis tool named DCNS written by myself.
    And I also manually check it.
    Signed-off-by: default avatarJia-Ju Bai <baijiaju1990@gmail.com>
    Cc: Antonino Daplas <adaplas@gmail.com>
    Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    12f3ac2f
savagefb_driver.c 64.6 KB