问题:
为了配合电源管理以及WIFI多次重新加载需求,测试HSMMC驱动。发现
rmmod s3c-hsmmc.ko出现kernel OOPS,系统崩溃。
解决方法:
重写s3c_hsmmc_remove函数。
static int s3c_hsmmc_remove(struct platform_device *dev)
{
int i ;
struct s3c_hsmmc_host *s3c_host = global_host[dev->id];
struct mmc_host *mmc = s3c_host->mmc;
mmc_remove_host(s3c_host->mmc);
s3c_hsmmc_reset(s3c_host, S3C_HSMMC_RESET_ALL);
#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
clk_disable(clk_get(&dev->dev, "sclk_48m"));
#endif
for (i=0; i<NUM_OF_HSMMC_CLKSOURCES; i++) {
clk_disable(s3c_host->clk[i]);
clk_put(s3c_host->clk[i]);
}
free_irq(s3c_host->irq, s3c_host);
del_timer_sync(&s3c_host->timer);
tasklet_kill(&s3c_host->card_tasklet);
tasklet_kill(&s3c_host->finish_tasklet);
flush_scheduled_work();
release_mem_region(s3c_host->mem->start,RESSIZE(s3c_host->mem));
mmc_free_host(mmc);
/******WIFI 复位时序************/
}
测试结果:
root@mid-fun:/# insmod mmc_core.ko
root@mid-fun:/# insmod s3c-hsmmc.ko
[s3c_hsmmc_probe]: s3c-hsmmc.0: at 0xc7c00000 with irq 56. clk src:
sclk_DOUTmpll_mmc0
[s3c_hsmmc_probe]: s3c-hsmmc.1: at 0xc7e00000 with irq 57. clk src:
sclk_DOUTmpll_mmc1
root@mid-fun:/# mmc0: new SDIO card at address 0001
can NOT find sdio card!
root@mid-fun:/# rmmod s3c-hsmmc.ko
mmc0: card 0001 removed
root@mid-fun:/# insmod s3c-hsmmc.ko
[s3c_hsmmc_probe]: s3c-hsmmc.0: at 0xc8600000 with irq 56. clk src:
sclk_DOUTmpll_mmc0
[s3c_hsmmc_probe]: s3c-hsmmc.1: at 0xc8800000 with irq 57. clk src:
sclk_DOUTmpll_mmc1
root@mid-fun:/# mmc0: new SDIO card at address 0001
can NOT find sdio card!
root@mid-fun:/# rmmod s3c-hsmmc.ko
mmc0: card 0001 removed
root@mid-fun:/# insmod s3c-hsmmc.ko
[s3c_hsmmc_probe]: s3c-hsmmc.0: at 0xc8a00000 with irq 56. clk src:
sclk_DOUTmpll_mmc0
[s3c_hsmmc_probe]: s3c-hsmmc.1: at 0xc8c00000 with irq 57. clk src:
sclk_DOUTmpll_mmc1
root@mid-fun:/# mmc0: new SDIO card at address 0001
can NOT find sdio card!
如果插SD卡移除s3c-hsmmc.ko模块出现错误,需要修改probe相关
s3c_hsmmc_irq_cd 中断服务程序关于外部中断检测的设置。
由于本人的硬件不是用GPN13来检测,会导致remove的时候释放中断资源不干净,
会影响下次加载申请资源,特此说明。
关于6410 HSMMC 驱动的bug

最新推荐文章于 2022-06-03 12:24:52 发布
