aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPierre Ossman <drzeus@drzeus.cx>2007-01-14 01:41:45 +0100
committerPierre Ossman <drzeus@drzeus.cx>2007-02-04 20:54:06 +0100
commit11354d03afe9dd0d114e078057158baad4b4eee9 (patch)
tree828e115a262663d075cdfc2a30b87282e576ff8b
parentf22ee4edf63e7480511112d9965c71e07be3f8b7 (diff)
downloadkernel_samsung_smdk4412-11354d03afe9dd0d114e078057158baad4b4eee9.zip
kernel_samsung_smdk4412-11354d03afe9dd0d114e078057158baad4b4eee9.tar.gz
kernel_samsung_smdk4412-11354d03afe9dd0d114e078057158baad4b4eee9.tar.bz2
mmc: let host be parent of cards
Change the parent of cards to be a specific host (a class device), not the physical controller. This is particularly useful when the hardware has multiple slots, meaning multiple hosts. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
-rw-r--r--drivers/mmc/mmc_sysfs.c2
-rw-r--r--include/linux/mmc/host.h1
2 files changed, 2 insertions, 1 deletions
diff --git a/drivers/mmc/mmc_sysfs.c b/drivers/mmc/mmc_sysfs.c
index e334acd..d32698b 100644
--- a/drivers/mmc/mmc_sysfs.c
+++ b/drivers/mmc/mmc_sysfs.c
@@ -199,7 +199,7 @@ void mmc_init_card(struct mmc_card *card, struct mmc_host *host)
memset(card, 0, sizeof(struct mmc_card));
card->host = host;
device_initialize(&card->dev);
- card->dev.parent = mmc_dev(host);
+ card->dev.parent = mmc_classdev(host);
card->dev.bus = &mmc_bus_type;
card->dev.release = mmc_release_card;
}
diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h
index dc4c6e3..ae98d67 100644
--- a/include/linux/mmc/host.h
+++ b/include/linux/mmc/host.h
@@ -127,6 +127,7 @@ static inline void *mmc_priv(struct mmc_host *host)
}
#define mmc_dev(x) ((x)->parent)
+#define mmc_classdev(x) (&(x)->class_dev)
#define mmc_hostname(x) ((x)->class_dev.bus_id)
extern int mmc_suspend_host(struct mmc_host *, pm_message_t);