summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/nand/nand.c12
-rw-r--r--include/linux/mtd/mtd.h3
2 files changed, 15 insertions, 0 deletions
diff --git a/drivers/nand/nand.c b/drivers/nand/nand.c
index 2b3dec0f91..bf00d8b035 100644
--- a/drivers/nand/nand.c
+++ b/drivers/nand/nand.c
@@ -143,6 +143,12 @@ static ssize_t nand_erase(struct cdev *cdev, size_t count, unsigned long offset)
return 0;
}
+#if 0
+static char* mtd_get_size(struct device_d *, struct param_d *param)
+{
+ static char
+}
+#endif
static struct file_operations nand_ops = {
.read = nand_read,
@@ -163,6 +169,11 @@ int add_mtd_device(struct mtd_info *mtd)
mtd->cdev.priv = mtd;
mtd->cdev.dev = &mtd->class_dev;
+ mtd->param_size.flags = PARAM_FLAG_RO;
+ mtd->param_size.name = "size";
+ mtd->param_size.value = asprintf("%d", mtd->size);
+ dev_add_param(&mtd->class_dev, &mtd->param_size);
+
devfs_create(&mtd->cdev);
return 0;
@@ -171,6 +182,7 @@ int add_mtd_device(struct mtd_info *mtd)
int del_mtd_device (struct mtd_info *mtd)
{
unregister_device(&mtd->class_dev);
+ free(mtd->param_size.value);
return 0;
}
diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h
index c6e28e228b..6a1fcb97c2 100644
--- a/include/linux/mtd/mtd.h
+++ b/include/linux/mtd/mtd.h
@@ -203,6 +203,9 @@ struct mtd_info {
struct device_d class_dev;
struct device_d *dev;
struct cdev cdev;
+
+ struct param_d param_size;
+ char *size_str;
};