分类: LINUX
2011-12-05 17:26:51
根据网上提供的步骤,经过多次调试,发觉就是加载不了驱动程序wlan1283中提供的probe函数,后经过多次尝试,对
内核源码进行了以下修改,后可以正常使用。
wifi的加载:以下修改均针对内核源码的修改,wifi驱动使用wlan1283
1. 将arc/arm/mach-omap2/board-sdp4430-wifi.c中,除static int __init sdp4430_wifi_init(void)之外的所有内容,
拷贝到arc/arm/mach-omap2/board-omap4panda.c中,简单修改名称,如sdp4430_wifi_reset修改为sdp4430_wifi_reset_1,
2. 然后在
static struct platform_device *panda_devices[] __initdata = {
和
static struct platform_device *panda_devices[] __initdata = {
中添加&sdp4430_wifi_device
3. 在arc/arm/mach-omap2/hsmmc.h中添加
int omap_wifi_status_register_1(void (*callback)(int card_present,
void *dev_id), void *dev_id);
int omap_wifi_status_1(struct device *dev, int slot);
的定义。
将arc/arm/mach-omap2/hsmmc.c中一下代码段
#ifdef CONFIG_TIWLAN_SDIO
if (machine_is_omap_4430sdp()) {
if (c->mmc == CONFIG_TIWLAN_MMC_CONTROLLER) {
mmc->slots[0].embedded_sdio = &omap_wifi_emb_data;
mmc->slots[0].register_status_notify =
&omap_wifi_status_register;
mmc->slots[0].card_detect = &omap_wifi_status;
}
}
#endif
修改为
#ifdef CONFIG_TIWLAN_SDIO
// if (machine_is_omap_4430sdp())
{
if (c->mmc == CONFIG_TIWLAN_MMC_CONTROLLER) {
mmc->slots[0].embedded_sdio = &omap_wifi_emb_data;
mmc->slots[0].register_status_notify =
&omap_wifi_status_register_1;
mmc->slots[0].card_detect = &omap_wifi_status;
}
}
#endif
再根据上面提供的.config文件内容,编译,即可通过,同时wifi功能可以使用。