update rk29 sdmmc
authorlhh <lhh@rock-chips.com>
Thu, 9 Dec 2010 07:26:53 +0000 (15:26 +0800)
committerlhh <lhh@rock-chips.com>
Thu, 9 Dec 2010 07:26:53 +0000 (15:26 +0800)
drivers/mmc/host/rk29_sdmmc.c

index abce25f2adf941f31b6e9c142ace234adb90fcb4..e287e316354e0a19ce632883d5fbf3fc78140f45 100755 (executable)
@@ -342,7 +342,7 @@ static u32 rk29_sdmmc_prepare_command(struct mmc_host *mmc,
 static void rk29_sdmmc_start_command(struct rk29_sdmmc *host,
                struct mmc_command *cmd, u32 cmd_flags)
 {
-       int tmo = 50;
+       int tmo = 5000;
        host->cmd = cmd;
        dev_vdbg(&host->pdev->dev,
                        "start cmd:%d ARGR=0x%08x CMDR=0x%08x\n",
@@ -353,6 +353,9 @@ static void rk29_sdmmc_start_command(struct rk29_sdmmc *host,
        /* wait until CIU accepts the command */
        while (--tmo && (rk29_sdmmc_read(host->regs, SDMMC_CMD) & SDMMC_CMD_START)) 
                cpu_relax();
+       if(!tmo){
+               printk("Enter:%s %d start tmo err!!\n",__FUNCTION__,__LINE__);  
+       }
 }
 
 static void send_stop_cmd(struct rk29_sdmmc *host, struct mmc_data *data)
@@ -1309,7 +1312,7 @@ static int rk29_sdmmc_probe(struct platform_device *pdev)
        platform_set_drvdata(pdev, host);       
        mmc->ops = &rk29_sdmmc_ops[pdev->id];
        mmc->f_min = host->bus_hz/510;
-       mmc->f_max = host->bus_hz/2;  //2;  ///20; //max f is clock to mmc_clk/2
+       mmc->f_max = host->bus_hz/4;  //2;  ///20; //max f is clock to mmc_clk/2
        mmc->ocr_avail = pdata->host_ocr_avail;
        mmc->caps = pdata->host_caps;
        mmc->max_phys_segs = 64;