OSDN Git Service

Revert "mmc: tmio-mmc: Remove .set_pwr() callback from platform data"
authorChris Ball <cjb@laptop.org>
Fri, 6 Sep 2013 11:29:05 +0000 (07:29 -0400)
committerChris Ball <cjb@laptop.org>
Fri, 6 Sep 2013 11:29:05 +0000 (07:29 -0400)
This reverts commit 3af9d15c719017feb63fa99f89ac6009a5a3d467, which
causes a build failure:

drivers/mfd/asic3.c:724:2: error: unknown field 'set_pwr' specified in initializer

drivers/mmc/host/tmio_mmc.h
drivers/mmc/host/tmio_mmc_pio.c
include/linux/mfd/tmio.h

index 39c2f45..86fd21e 100644 (file)
@@ -68,6 +68,7 @@ struct tmio_mmc_host {
        enum tmio_mmc_power     power;
 
        /* Callbacks for clock / power control */
+       void (*set_pwr)(struct platform_device *host, int state);
        void (*set_clk_div)(struct platform_device *host, int state);
 
        /* pio related stuff */
index 67a3bf1..b380225 100644 (file)
@@ -777,6 +777,9 @@ static void tmio_mmc_power_on(struct tmio_mmc_host *host, unsigned short vdd)
 
        /* .set_ios() is returning void, so, no chance to report an error */
 
+       if (host->set_pwr)
+               host->set_pwr(host->pdev, 1);
+
        if (!IS_ERR(mmc->supply.vmmc)) {
                ret = mmc_regulator_set_ocr(mmc, mmc->supply.vmmc, vdd);
                /*
@@ -810,6 +813,9 @@ static void tmio_mmc_power_off(struct tmio_mmc_host *host)
 
        if (!IS_ERR(mmc->supply.vmmc))
                mmc_regulator_set_ocr(mmc, mmc->supply.vmmc, 0);
+
+       if (host->set_pwr)
+               host->set_pwr(host->pdev, 0);
 }
 
 /* Set MMC clock / power.
@@ -996,6 +1002,7 @@ int tmio_mmc_host_probe(struct tmio_mmc_host **host,
        _host->pdev = pdev;
        platform_set_drvdata(pdev, mmc);
 
+       _host->set_pwr = pdata->set_pwr;
        _host->set_clk_div = pdata->set_clk_div;
 
        /* SD control register space size is 0x200, 0x400 for bus_shift=1 */
index baa2346..b22883d 100644 (file)
@@ -106,6 +106,7 @@ struct tmio_mmc_data {
        struct tmio_mmc_dma             *dma;
        struct device                   *dev;
        unsigned int                    cd_gpio;
+       void (*set_pwr)(struct platform_device *host, int state);
        void (*set_clk_div)(struct platform_device *host, int state);
        int (*write16_hook)(struct tmio_mmc_host *host, int addr);
        /* clock management callbacks */