From b8f4f1e8a1b1c43f430561ac5a93a2fb9cbbc8ca Mon Sep 17 00:00:00 2001 From: zhaoyifeng Date: Tue, 28 Jun 2011 20:54:52 +0800 Subject: [PATCH] add emmc clk power save config. --- drivers/mtd/rknand/Kconfig | 6 ++++++ drivers/mtd/rknand/nand_config.h | 3 +++ drivers/mtd/rknand/rknand_base.h | 2 ++ drivers/mtd/rknand/rknand_base_ko.c | 6 +++++- 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/drivers/mtd/rknand/Kconfig b/drivers/mtd/rknand/Kconfig index a3a99d9e956a..58e91664a6e6 100755 --- a/drivers/mtd/rknand/Kconfig +++ b/drivers/mtd/rknand/Kconfig @@ -22,6 +22,12 @@ config MTD_RKNAND_BUFFER depends on MTD_RKNAND default y help + +config MTD_EMMC_CLK_POWER_SAVE + tristate "RK29 emmc clock power save" + depends on MTD_RKNAND + default n + help config MTD_NAND_RK29XX_DEBUG tristate "RK29 Nand driver debug enables" diff --git a/drivers/mtd/rknand/nand_config.h b/drivers/mtd/rknand/nand_config.h index ab19472d40e3..ecdb030d97b0 100755 --- a/drivers/mtd/rknand/nand_config.h +++ b/drivers/mtd/rknand/nand_config.h @@ -62,6 +62,9 @@ extern void rkNand_cond_resched(void); #define COND_RESCHED() rkNand_cond_resched()//cond_resched() +extern unsigned long rk_dma_mem_alloc(int size); +extern unsigned long rk_dma_mem_free(unsigned long buf); + #define PRINTF RKNAND_DEBUG #endif diff --git a/drivers/mtd/rknand/rknand_base.h b/drivers/mtd/rknand/rknand_base.h index 2bc4f7aa32b6..a22d22df3330 100755 --- a/drivers/mtd/rknand/rknand_base.h +++ b/drivers/mtd/rknand/rknand_base.h @@ -66,6 +66,8 @@ struct rknand_info { int (*GetIdBlockSysData)(char * buf, int Sector); char (*GetSNSectorInfo)(char * pbuf); char (*GetChipSectorInfo)(char * pbuf); + int emmc_clk_power_save_en; + int reserved[20]; }; extern int rknand_queue_read(int Index, int nSec, void *buf); diff --git a/drivers/mtd/rknand/rknand_base_ko.c b/drivers/mtd/rknand/rknand_base_ko.c index 7ee13b22fa93..74d486e31e2c 100755 --- a/drivers/mtd/rknand/rknand_base_ko.c +++ b/drivers/mtd/rknand/rknand_base_ko.c @@ -334,7 +334,11 @@ static int rknand_probe(struct platform_device *pdev) gpNandInfo->bufSize = MAX_BUFFER_SIZE * 512; gpNandInfo->pbuf = grknand_buf; - + +#ifdef CONFIG_MTD_EMMC_CLK_POWER_SAVE + gpNandInfo->emmc_clk_power_save_en = 1; +#endif + rknand_mtd.name = dev_name(&pdev->dev); rknand_mtd.priv = &nand_info->rknand; rknand_mtd.owner = THIS_MODULE; -- 2.34.1