aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc/core/bus.h
diff options
context:
space:
mode:
authorPierre Ossman <drzeus-list@drzeus.cx>2008-03-21 23:54:50 +0100
committerLinus Torvalds <torvalds@linux-foundation.org>2008-03-22 17:02:20 -0700
commit51ec92e295d563dd5712d198a7e46c2ae5ccccb2 (patch)
treefa45408fad483e89b29900b8ca5adf4bb3164467 /drivers/mmc/core/bus.h
parentPNP: increase the number of PnP memory resources from 12 to 24 (diff)
downloadlinux-dev-51ec92e295d563dd5712d198a7e46c2ae5ccccb2.tar.xz
linux-dev-51ec92e295d563dd5712d198a7e46c2ae5ccccb2.zip
mmc: use sysfs groups to handle conditional attributes
Suppressing uevents turned out to be a bad idea as it screws up the order of events, making user space very confused. Change the system to use sysfs groups instead. This is a regression that, for some odd reason, has gone unnoticed for some time. It confuses hal so that the block devices (which have the mmc device as a parent) are not registered. End result being that desktop magic when cards are inserted won't work. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/mmc/core/bus.h')
-rw-r--r--drivers/mmc/core/bus.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/mmc/core/bus.h b/drivers/mmc/core/bus.h
index 4f35431116a8..18178766ab46 100644
--- a/drivers/mmc/core/bus.h
+++ b/drivers/mmc/core/bus.h
@@ -11,7 +11,16 @@
#ifndef _MMC_CORE_BUS_H
#define _MMC_CORE_BUS_H
-struct mmc_card *mmc_alloc_card(struct mmc_host *host);
+#define MMC_DEV_ATTR(name, fmt, args...) \
+static ssize_t mmc_##name##_show (struct device *dev, struct device_attribute *attr, char *buf) \
+{ \
+ struct mmc_card *card = container_of(dev, struct mmc_card, dev); \
+ return sprintf(buf, fmt, args); \
+} \
+static DEVICE_ATTR(name, S_IRUGO, mmc_##name##_show, NULL)
+
+struct mmc_card *mmc_alloc_card(struct mmc_host *host,
+ struct device_type *type);
int mmc_add_card(struct mmc_card *card);
void mmc_remove_card(struct mmc_card *card);