ALSA: ad1889: Replace mdelay with usleep_range in snd_ad1889_init
snd_ad1889_init() is never called in atomic context. The call chain ending up at snd_ad1889_init() is: [1] snd_ad1889_init() <- snd_ad1889_create() <- snd_ad1889_probe() snd_ad1889_probe() is only set as ".probe" in struct pci_driver. This function is not called in atomic context. Despite never getting called from atomic context, snd_ad1889_init() calls mdelay for busy 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. Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
0dc72fcc86
commit
621fdf60ab
@ -872,7 +872,7 @@ snd_ad1889_init(struct snd_ad1889 *chip)
|
||||
ad1889_writew(chip, AD_DS_CCS, AD_DS_CCS_CLKEN); /* turn on clock */
|
||||
ad1889_readw(chip, AD_DS_CCS); /* flush posted write */
|
||||
|
||||
mdelay(10);
|
||||
usleep_range(10000, 11000);
|
||||
|
||||
/* enable Master and Target abort interrupts */
|
||||
ad1889_writel(chip, AD_DMA_DISR, AD_DMA_DISR_PMAE | AD_DMA_DISR_PTAE);
|
||||
|
Loading…
Reference in New Issue
Block a user