上·志

上下求索,志在千里。

导航

request_irq 执行不成功,返回 -16

Posted on 2013-08-28 10:42  Shangzhi  阅读(1950)  评论(0编辑  收藏  举报

在调试SDIO(mmc2) wifi驱动时,当wifi驱动初始化进行到

rc = request_irq(OMAP_MMC_IRQ,sdiodrv_irq,0,SDIO_DRIVER_NAME,&g_drv)

时,rc返回不为零,而是-16,在errno-base.h里看到

#define EBUSY 16/* Device or resource busy */

可知该中断已经被使用,执行

cat /proc/interrupts

果然发现OMAP_MMC_IRQ已经被使用了,而且OMAP_MMC_IRQ是专用irq,并不能使用其他irq,

所以解决的方向就是将使用OMAP_MMC_IRQ的其他地方去掉。

最终在board级初始化代码里见到了mmc2的注册,将其相关代码屏蔽掉即可。