From f4c957589a4dfc30989d4c461c2922cba739d615 Mon Sep 17 00:00:00 2001 From: kfx Date: Mon, 18 Apr 2011 16:18:10 +0800 Subject: [PATCH] update i2c-dev driver and sdmmc driver --- drivers/i2c/busses/i2c-dev-rk29.c | 7 +++++-- drivers/mmc/core/bus.c | 1 + drivers/mmc/host/rk29_sdmmc.c | 1 + 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/i2c/busses/i2c-dev-rk29.c b/drivers/i2c/busses/i2c-dev-rk29.c index d5b29612e2cc..c56114bea5ed 100755 --- a/drivers/i2c/busses/i2c-dev-rk29.c +++ b/drivers/i2c/busses/i2c-dev-rk29.c @@ -19,7 +19,9 @@ #define I2C_DEV_SCL_RATE 100 * 1000 -struct completion i2c_dev_complete; +struct completion i2c_dev_complete = { + .done = -1; +}; struct i2c_dump_info g_dump; static void i2c_dev_get_list(struct i2c_list_info *list) @@ -99,7 +101,8 @@ void i2c_dev_dump_stop(struct i2c_adapter *adap, struct i2c_msg *msgs, int num, g_dump.get_value[j] = msgs[i].buf[j]; } } - complete(&i2c_dev_complete); + if(i2c_dev_complete.done == 0) + complete(&i2c_dev_complete); return; } EXPORT_SYMBOL(i2c_dev_dump_stop); diff --git a/drivers/mmc/core/bus.c b/drivers/mmc/core/bus.c index bdb165f93046..812b22035626 100755 --- a/drivers/mmc/core/bus.c +++ b/drivers/mmc/core/bus.c @@ -279,6 +279,7 @@ void mmc_remove_card(struct mmc_card *card) #endif if (mmc_card_present(card)) { + mmc_card_clr_present(card); if (mmc_host_is_spi(card->host)) { printk(KERN_INFO "%s: SPI card removed\n", mmc_hostname(card->host)); diff --git a/drivers/mmc/host/rk29_sdmmc.c b/drivers/mmc/host/rk29_sdmmc.c index 620a2323e22f..bdb8c98825f8 100755 --- a/drivers/mmc/host/rk29_sdmmc.c +++ b/drivers/mmc/host/rk29_sdmmc.c @@ -1392,6 +1392,7 @@ static int rk29_sdmmc_resume(struct platform_device *pdev) host); if(ret < 0) dev_err(host->dev, "gpio request_irq error\n"); + mmc_detect_change(host->mmc, 0); ret = mmc_resume_host(host->mmc); } #endif -- 2.34.1