Linux下FL2440 2.6.28 SD卡驱动BUG解决

FL2440的2.6.28的内核,SD卡驱动默认是有问题的,在

linux-2.6.28.7\drivers\mmc\host目录的s3cmci.c文件

的do_pio_write函数中做如下修改:

static void do_pio_write(struct s3cmci_host *host){void __iomem *to_ptr;int res;u32 fifo;u32 *ptr; to_ptr = host->base + host->sdidata;//while ((fifo = fifo_free(host))) while ((fifo = fifo_free(host))>3) //lqm changed from feiling FAE.11-01-19{ if (!host->pio_bytes) { res = get_data_buffer(host, &host->pio_bytes,&host->pio_ptr); if (res) { dbg(host, dbg_pio,”pio_write(): complete (no more data).\n”);

host->pio_active =XFER_NONE; return; } dbg(host, dbg_pio,”pio_write(): new source: [%i]@[%p]\n”,host->pio_bytes,

host->pio_ptr); } /* If we have reached the end of the block, we have to * write exactly the remaining number of bytes. If we * in the middle of the block, we have to write full * words, so round down to an even multiple of 4. */ if (fifo >=host->pio_bytes) fifo = host->pio_bytes; else fifo -= fifo & 3; host->pio_bytes -= fifo; host->pio_count += fifo; fifo = (fifo + 3) >> 2; ptr = host->pio_ptr; while (fifo–) writel(*ptr++, to_ptr); host->pio_ptr = ptr;}enable_imask(host, S3C2410_SDIIMSK_TXFIFOHALF);}

经测试,,1G,2G的SD卡可稳定运行。

是我一生的快乐;失去你,是我一生的遗憾;没有你,无法感受心灵的震撼。

Linux下FL2440 2.6.28 SD卡驱动BUG解决

相关文章:

你感兴趣的文章:

标签云: