summaryrefslogtreecommitdiff
path: root/drivers/mmc/host
diff options
context:
space:
mode:
authorJaehoon Chung <jh80.chung@samsung.com>2013-08-01 22:37:29 +0900
committerChanho Park <chanho61.park@samsung.com>2014-11-18 11:43:57 +0900
commit64322f1c297dd240f3db102bc191075c7222608c (patch)
tree1177dc1ce06bb887cbe22e73f3bf35675687df81 /drivers/mmc/host
parentb21040353db6d0971768fde5cb4b4a4da92df840 (diff)
downloadlinux-3.10-64322f1c297dd240f3db102bc191075c7222608c.tar.gz
linux-3.10-64322f1c297dd240f3db102bc191075c7222608c.tar.bz2
linux-3.10-64322f1c297dd240f3db102bc191075c7222608c.zip
mmc: dw_mmc: add the specified capabilities2 of the controller
Add the capabilities2 of controller to use *_CAP2_* Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Diffstat (limited to 'drivers/mmc/host')
-rw-r--r--drivers/mmc/host/dw_mmc.c3
-rw-r--r--drivers/mmc/host/dw_mmc.h2
2 files changed, 5 insertions, 0 deletions
diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
index ee5f1676f14..564c9fbd5c7 100644
--- a/drivers/mmc/host/dw_mmc.c
+++ b/drivers/mmc/host/dw_mmc.c
@@ -1951,6 +1951,9 @@ static int dw_mci_init_slot(struct dw_mci *host, unsigned int id)
if (host->pdata->caps2)
mmc->caps2 = host->pdata->caps2;
+ if (drv_data && drv_data->caps2)
+ mmc->caps2 |= drv_data->caps2[ctrl_id];
+
if (host->pdata->get_bus_wd)
bus_width = host->pdata->get_bus_wd(slot->id);
else if (host->dev->of_node)
diff --git a/drivers/mmc/host/dw_mmc.h b/drivers/mmc/host/dw_mmc.h
index 2f52c87bbce..90e2bab485c 100644
--- a/drivers/mmc/host/dw_mmc.h
+++ b/drivers/mmc/host/dw_mmc.h
@@ -185,6 +185,7 @@ extern int dw_mci_resume(struct dw_mci *host);
/**
* dw_mci driver data - dw-mshc implementation specific driver data.
* @caps: mmc subsystem specified capabilities of the controller(s).
+ * @caps2: mmc subsystem specified capabilities2 of the controller(s).
* @init: early implementation specific initialization.
* @setup_clock: implementation specific clock configuration.
* @prepare_command: handle CMD register extensions.
@@ -197,6 +198,7 @@ extern int dw_mci_resume(struct dw_mci *host);
*/
struct dw_mci_drv_data {
unsigned long *caps;
+ unsigned long *caps2;
int (*init)(struct dw_mci *host);
int (*setup_clock)(struct dw_mci *host);
void (*prepare_command)(struct dw_mci *host, u32 *cmdr);