aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Brownell <dbrownell@users.sourceforge.net>2009-03-04 15:01:41 -0500
committerDavid Woodhouse <David.Woodhouse@intel.com>2009-03-20 09:16:44 -0400
commita4b6d516a6079c6ba8dc97d185371439035a35d0 (patch)
treeb53616a18b80d9d35a865ece4d4e3711c8dea074
parent7ed8c7d440d497913a2218831a67b5897e0e86e1 (diff)
[MTD] partitioning utility predicates
Move mtd_has_partitions() and mtd_has_cmdlinepart() inlines from a DaVinci-specific driver to the <linux/mtd/partitions.h> header. Use those to eliminate #ifdefs in two drivers which had their own definitions of mtd_has_partitions(). Quite a lot of other MTD drivers could benefit from using use one or both of these to remove #ifdeffery. Maybe some Janitors would like to help. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
-rw-r--r--drivers/mtd/devices/m25p80.c17
-rw-r--r--drivers/mtd/devices/mtd_dataflash.c16
-rw-r--r--drivers/mtd/nand/davinci_nand.c13
-rw-r--r--include/linux/mtd/partitions.h12
4 files changed, 24 insertions, 34 deletions
diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c
index 7c3fc766dcf1..98b0faf6696d 100644
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
@@ -65,12 +65,6 @@
65#define FAST_READ_DUMMY_BYTE 0 65#define FAST_READ_DUMMY_BYTE 0
66#endif 66#endif
67 67
68#ifdef CONFIG_MTD_PARTITIONS
69#define mtd_has_partitions() (1)
70#else
71#define mtd_has_partitions() (0)
72#endif
73
74/****************************************************************************/ 68/****************************************************************************/
75 69
76struct m25p { 70struct m25p {
@@ -708,12 +702,13 @@ static int __devinit m25p_probe(struct spi_device *spi)
708 struct mtd_partition *parts = NULL; 702 struct mtd_partition *parts = NULL;
709 int nr_parts = 0; 703 int nr_parts = 0;
710 704
711#ifdef CONFIG_MTD_CMDLINE_PARTS 705 if (mtd_has_cmdlinepart()) {
712 static const char *part_probes[] = { "cmdlinepart", NULL, }; 706 static const char *part_probes[]
707 = { "cmdlinepart", NULL, };
713 708
714 nr_parts = parse_mtd_partitions(&flash->mtd, 709 nr_parts = parse_mtd_partitions(&flash->mtd,
715 part_probes, &parts, 0); 710 part_probes, &parts, 0);
716#endif 711 }
717 712
718 if (nr_parts <= 0 && data && data->parts) { 713 if (nr_parts <= 0 && data && data->parts) {
719 parts = data->parts; 714 parts = data->parts;
diff --git a/drivers/mtd/devices/mtd_dataflash.c b/drivers/mtd/devices/mtd_dataflash.c
index 6d9f810565c8..d95f74a93bce 100644
--- a/drivers/mtd/devices/mtd_dataflash.c
+++ b/drivers/mtd/devices/mtd_dataflash.c
@@ -98,12 +98,6 @@ struct dataflash {
98 struct mtd_info mtd; 98 struct mtd_info mtd;
99}; 99};
100 100
101#ifdef CONFIG_MTD_PARTITIONS
102#define mtd_has_partitions() (1)
103#else
104#define mtd_has_partitions() (0)
105#endif
106
107/* ......................................................................... */ 101/* ......................................................................... */
108 102
109/* 103/*
@@ -682,11 +676,13 @@ add_dataflash_otp(struct spi_device *spi, char *name,
682 struct mtd_partition *parts; 676 struct mtd_partition *parts;
683 int nr_parts = 0; 677 int nr_parts = 0;
684 678
685#ifdef CONFIG_MTD_CMDLINE_PARTS 679 if (mtd_has_cmdlinepart()) {
686 static const char *part_probes[] = { "cmdlinepart", NULL, }; 680 static const char *part_probes[]
681 = { "cmdlinepart", NULL, };
687 682
688 nr_parts = parse_mtd_partitions(device, part_probes, &parts, 0); 683 nr_parts = parse_mtd_partitions(device,
689#endif 684 part_probes, &parts, 0);
685 }
690 686
691 if (nr_parts <= 0 && pdata && pdata->parts) { 687 if (nr_parts <= 0 && pdata && pdata->parts) {
692 parts = pdata->parts; 688 parts = pdata->parts;
diff --git a/drivers/mtd/nand/davinci_nand.c b/drivers/mtd/nand/davinci_nand.c
index 4034ac945041..81f7ecd23c60 100644
--- a/drivers/mtd/nand/davinci_nand.c
+++ b/drivers/mtd/nand/davinci_nand.c
@@ -38,19 +38,6 @@
38#include <asm/mach-types.h> 38#include <asm/mach-types.h>
39 39
40 40
41#ifdef CONFIG_MTD_PARTITIONS
42static inline int mtd_has_partitions(void) { return 1; }
43#else
44static inline int mtd_has_partitions(void) { return 0; }
45#endif
46
47#ifdef CONFIG_MTD_CMDLINE_PARTS
48static inline int mtd_has_cmdlinepart(void) { return 1; }
49#else
50static inline int mtd_has_cmdlinepart(void) { return 0; }
51#endif
52
53
54/* 41/*
55 * This is a device driver for the NAND flash controller found on the 42 * This is a device driver for the NAND flash controller found on the
56 * various DaVinci family chips. It handles up to four SoC chipselects, 43 * various DaVinci family chips. It handles up to four SoC chipselects,
diff --git a/include/linux/mtd/partitions.h b/include/linux/mtd/partitions.h
index a45dd831b3f8..7535a74083b9 100644
--- a/include/linux/mtd/partitions.h
+++ b/include/linux/mtd/partitions.h
@@ -76,4 +76,16 @@ int __devinit of_mtd_parse_partitions(struct device *dev,
76 struct device_node *node, 76 struct device_node *node,
77 struct mtd_partition **pparts); 77 struct mtd_partition **pparts);
78 78
79#ifdef CONFIG_MTD_PARTITIONS
80static inline int mtd_has_partitions(void) { return 1; }
81#else
82static inline int mtd_has_partitions(void) { return 0; }
83#endif
84
85#ifdef CONFIG_MTD_CMDLINE_PARTS
86static inline int mtd_has_cmdlinepart(void) { return 1; }
87#else
88static inline int mtd_has_cmdlinepart(void) { return 0; }
89#endif
90
79#endif 91#endif