我们知道,在linux中要用资源前需要申请资源。
这就得提到两个概念:1.内存空间,2.I/O空间
不是所有处理器都有这两个空间,比如X86有内存空间和I/O空间,而arm只有内存空间。
当我们需要申请内存空间的资源时需要使用request_mem_region()这个函数,而
申请IO空间的资源时使用request_region()。问题来了,今天在阅读cs8900的驱动代码(cs89x0.c)时,
在探测函数cs89x0_probe1()中发现如下代码:
if (!request_region(ioaddr & ~3, NETCARD_IO_EXTENT, DRV_NAME))
{
printk(KERN_ERR "%s: request_region(0x%x, 0x%x) failed\n",
DRV_NAME, ioaddr, NETCARD_IO_EXTENT);
retval = -EBUSY;
goto out1;
}
为什么该驱动是调用request_region来申请资源,arm处理器没有I/O空间啊,google未遂,希望老大们能提醒提醒,谢谢
[ 此帖被wuweidong在2012-04-05 12:23重新编辑 ]