* [PATCH 0/8] Switch ARM platforms from integrator-flash to physmap
@ 2011-01-05 14:06 Marc Zyngier
2011-01-05 14:06 ` [PATCH 1/8] MTD: Add integrator-flash feature " Marc Zyngier
` (7 more replies)
0 siblings, 8 replies; 10+ messages in thread
From: Marc Zyngier @ 2011-01-05 14:06 UTC (permalink / raw)
To: linux-arm-kernel
As the integrator-flash driver is mostly a duplicate of physmap,
move all users of this driver to physmap and get rid of the
then unused driver.
Marc Zyngier (8):
MTD: Add integrator-flash feature to physmap
ARM: Realview: Use physmap driver instead of integrator-flash
ARM: Versatile: Use physmap driver instead of integrator-flash
ARM: VExpress: Use physmap driver instead of integrator-flash
ARM: Integrator/AP: Use physmap driver instead of integrator-flash
ARM: Integrator/CP: Use physmap driver instead of integrator-flash
ARM: aaec2000: Use physmap driver instead of integrator-flash
MTD: Remove integrator-flash
arch/arm/configs/realview-smp_defconfig | 2 +-
arch/arm/configs/realview_defconfig | 2 +-
arch/arm/configs/versatile_defconfig | 2 +-
arch/arm/mach-aaec2000/core.c | 7 +-
arch/arm/mach-integrator/integrator_ap.c | 46 ++---
arch/arm/mach-integrator/integrator_cp.c | 35 +---
arch/arm/mach-realview/core.c | 31 +---
arch/arm/mach-versatile/core.c | 31 +---
arch/arm/mach-vexpress/v2m.c | 22 +--
drivers/mtd/Kconfig | 3 +-
drivers/mtd/maps/Kconfig | 4 -
drivers/mtd/maps/Makefile | 1 -
drivers/mtd/maps/integrator-flash.c | 319 ------------------------------
drivers/mtd/maps/physmap.c | 6 +-
14 files changed, 46 insertions(+), 465 deletions(-)
delete mode 100644 drivers/mtd/maps/integrator-flash.c
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/8] MTD: Add integrator-flash feature to physmap
2011-01-05 14:06 [PATCH 0/8] Switch ARM platforms from integrator-flash to physmap Marc Zyngier
@ 2011-01-05 14:06 ` Marc Zyngier
2011-01-05 14:06 ` [PATCH 2/8] ARM: Realview: Use physmap driver instead of integrator-flash Marc Zyngier
` (6 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Marc Zyngier @ 2011-01-05 14:06 UTC (permalink / raw)
To: linux-arm-kernel
In the process of moving platforms away from integrator-flash
(aka armflash), add optionnal probing for the AFS partition type.
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: David Woodhouse <dwmw2@infradead.org>
---
drivers/mtd/maps/physmap.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/drivers/mtd/maps/physmap.c b/drivers/mtd/maps/physmap.c
index 4c18b98..221354d 100644
--- a/drivers/mtd/maps/physmap.c
+++ b/drivers/mtd/maps/physmap.c
@@ -79,7 +79,11 @@ static const char *rom_probe_types[] = {
"map_rom",
NULL };
#ifdef CONFIG_MTD_PARTITIONS
-static const char *part_probe_types[] = { "cmdlinepart", "RedBoot", NULL };
+static const char *part_probe_types[] = { "cmdlinepart", "RedBoot",
+#ifdef CONFIG_MTD_AFS_PARTS
+ "afs",
+#endif
+ NULL };
#endif
static int physmap_flash_probe(struct platform_device *dev)
--
1.7.0.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 2/8] ARM: Realview: Use physmap driver instead of integrator-flash
2011-01-05 14:06 [PATCH 0/8] Switch ARM platforms from integrator-flash to physmap Marc Zyngier
2011-01-05 14:06 ` [PATCH 1/8] MTD: Add integrator-flash feature " Marc Zyngier
@ 2011-01-05 14:06 ` Marc Zyngier
2011-01-05 14:06 ` [PATCH 3/8] ARM: Versatile: " Marc Zyngier
` (5 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Marc Zyngier @ 2011-01-05 14:06 UTC (permalink / raw)
To: linux-arm-kernel
Tested on a PB11-MPCore.
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
---
arch/arm/configs/realview-smp_defconfig | 2 +-
arch/arm/configs/realview_defconfig | 2 +-
arch/arm/mach-realview/core.c | 31 ++++---------------------------
3 files changed, 6 insertions(+), 29 deletions(-)
diff --git a/arch/arm/configs/realview-smp_defconfig b/arch/arm/configs/realview-smp_defconfig
index 5ca7a61..abe61bf 100644
--- a/arch/arm/configs/realview-smp_defconfig
+++ b/arch/arm/configs/realview-smp_defconfig
@@ -38,7 +38,7 @@ CONFIG_MTD_BLOCK=y
CONFIG_MTD_CFI=y
CONFIG_MTD_CFI_INTELEXT=y
CONFIG_MTD_CFI_AMDSTD=y
-CONFIG_MTD_ARM_INTEGRATOR=y
+CONFIG_MTD_PHYSMAP=y
CONFIG_ARM_CHARLCD=y
CONFIG_NETDEVICES=y
CONFIG_SMSC_PHY=y
diff --git a/arch/arm/configs/realview_defconfig b/arch/arm/configs/realview_defconfig
index fcaa603..7079cbe 100644
--- a/arch/arm/configs/realview_defconfig
+++ b/arch/arm/configs/realview_defconfig
@@ -37,7 +37,7 @@ CONFIG_MTD_BLOCK=y
CONFIG_MTD_CFI=y
CONFIG_MTD_CFI_INTELEXT=y
CONFIG_MTD_CFI_AMDSTD=y
-CONFIG_MTD_ARM_INTEGRATOR=y
+CONFIG_MTD_PHYSMAP=y
CONFIG_ARM_CHARLCD=y
CONFIG_NETDEVICES=y
CONFIG_SMSC_PHY=y
diff --git a/arch/arm/mach-realview/core.c b/arch/arm/mach-realview/core.c
index 07c0815..e33096e 100644
--- a/arch/arm/mach-realview/core.c
+++ b/arch/arm/mach-realview/core.c
@@ -30,6 +30,7 @@
#include <linux/ata_platform.h>
#include <linux/amba/mmci.h>
#include <linux/gfp.h>
+#include <linux/mtd/physmap.h>
#include <asm/clkdev.h>
#include <asm/system.h>
@@ -41,7 +42,6 @@
#include <asm/hardware/icst.h>
#include <asm/mach/arch.h>
-#include <asm/mach/flash.h>
#include <asm/mach/irq.h>
#include <asm/mach/map.h>
@@ -78,27 +78,7 @@ void __init realview_adjust_zones(unsigned long *size, unsigned long *hole)
#define REALVIEW_FLASHCTRL (__io_address(REALVIEW_SYS_BASE) + REALVIEW_SYS_FLASH_OFFSET)
-static int realview_flash_init(void)
-{
- u32 val;
-
- val = __raw_readl(REALVIEW_FLASHCTRL);
- val &= ~REALVIEW_FLASHPROG_FLVPPEN;
- __raw_writel(val, REALVIEW_FLASHCTRL);
-
- return 0;
-}
-
-static void realview_flash_exit(void)
-{
- u32 val;
-
- val = __raw_readl(REALVIEW_FLASHCTRL);
- val &= ~REALVIEW_FLASHPROG_FLVPPEN;
- __raw_writel(val, REALVIEW_FLASHCTRL);
-}
-
-static void realview_flash_set_vpp(int on)
+static void realview_flash_set_vpp(struct map_info *map, int on)
{
u32 val;
@@ -110,16 +90,13 @@ static void realview_flash_set_vpp(int on)
__raw_writel(val, REALVIEW_FLASHCTRL);
}
-static struct flash_platform_data realview_flash_data = {
- .map_name = "cfi_probe",
+static struct physmap_flash_data realview_flash_data = {
.width = 4,
- .init = realview_flash_init,
- .exit = realview_flash_exit,
.set_vpp = realview_flash_set_vpp,
};
struct platform_device realview_flash_device = {
- .name = "armflash",
+ .name = "physmap-flash",
.id = 0,
.dev = {
.platform_data = &realview_flash_data,
--
1.7.0.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 3/8] ARM: Versatile: Use physmap driver instead of integrator-flash
2011-01-05 14:06 [PATCH 0/8] Switch ARM platforms from integrator-flash to physmap Marc Zyngier
2011-01-05 14:06 ` [PATCH 1/8] MTD: Add integrator-flash feature " Marc Zyngier
2011-01-05 14:06 ` [PATCH 2/8] ARM: Realview: Use physmap driver instead of integrator-flash Marc Zyngier
@ 2011-01-05 14:06 ` Marc Zyngier
2011-01-05 14:06 ` [PATCH 4/8] ARM: VExpress: " Marc Zyngier
` (4 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Marc Zyngier @ 2011-01-05 14:06 UTC (permalink / raw)
To: linux-arm-kernel
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
---
arch/arm/configs/versatile_defconfig | 2 +-
arch/arm/mach-versatile/core.c | 31 ++++---------------------------
2 files changed, 5 insertions(+), 28 deletions(-)
diff --git a/arch/arm/configs/versatile_defconfig b/arch/arm/configs/versatile_defconfig
index 0ce710f..cdd4d2b 100644
--- a/arch/arm/configs/versatile_defconfig
+++ b/arch/arm/configs/versatile_defconfig
@@ -32,7 +32,7 @@ CONFIG_MTD_BLOCK=y
CONFIG_MTD_CFI=y
CONFIG_MTD_CFI_ADV_OPTIONS=y
CONFIG_MTD_CFI_INTELEXT=y
-CONFIG_MTD_ARM_INTEGRATOR=y
+CONFIG_MTD_PHYSMAP=y
CONFIG_BLK_DEV_RAM=y
CONFIG_EEPROM_LEGACY=m
CONFIG_NETDEVICES=y
diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c
index e38acb0..9cb37a9 100644
--- a/arch/arm/mach-versatile/core.c
+++ b/arch/arm/mach-versatile/core.c
@@ -31,6 +31,7 @@
#include <linux/amba/pl022.h>
#include <linux/io.h>
#include <linux/gfp.h>
+#include <linux/mtd/physmap.h>
#include <asm/clkdev.h>
#include <asm/system.h>
@@ -42,7 +43,6 @@
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
-#include <asm/mach/flash.h>
#include <asm/mach/irq.h>
#include <asm/mach/time.h>
#include <asm/mach/map.h>
@@ -231,27 +231,7 @@ void __init versatile_map_io(void)
#define VERSATILE_FLASHCTRL (__io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_FLASH_OFFSET)
-static int versatile_flash_init(void)
-{
- u32 val;
-
- val = __raw_readl(VERSATILE_FLASHCTRL);
- val &= ~VERSATILE_FLASHPROG_FLVPPEN;
- __raw_writel(val, VERSATILE_FLASHCTRL);
-
- return 0;
-}
-
-static void versatile_flash_exit(void)
-{
- u32 val;
-
- val = __raw_readl(VERSATILE_FLASHCTRL);
- val &= ~VERSATILE_FLASHPROG_FLVPPEN;
- __raw_writel(val, VERSATILE_FLASHCTRL);
-}
-
-static void versatile_flash_set_vpp(int on)
+static void versatile_flash_set_vpp(struct map_info *map, int on)
{
u32 val;
@@ -263,11 +243,8 @@ static void versatile_flash_set_vpp(int on)
__raw_writel(val, VERSATILE_FLASHCTRL);
}
-static struct flash_platform_data versatile_flash_data = {
- .map_name = "cfi_probe",
+static struct physmap_flash_data versatile_flash_data = {
.width = 4,
- .init = versatile_flash_init,
- .exit = versatile_flash_exit,
.set_vpp = versatile_flash_set_vpp,
};
@@ -278,7 +255,7 @@ static struct resource versatile_flash_resource = {
};
static struct platform_device versatile_flash_device = {
- .name = "armflash",
+ .name = "physmap-flash",
.id = 0,
.dev = {
.platform_data = &versatile_flash_data,
--
1.7.0.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 4/8] ARM: VExpress: Use physmap driver instead of integrator-flash
2011-01-05 14:06 [PATCH 0/8] Switch ARM platforms from integrator-flash to physmap Marc Zyngier
` (2 preceding siblings ...)
2011-01-05 14:06 ` [PATCH 3/8] ARM: Versatile: " Marc Zyngier
@ 2011-01-05 14:06 ` Marc Zyngier
2011-01-05 14:06 ` [PATCH 5/8] ARM: Integrator/AP: " Marc Zyngier
` (3 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Marc Zyngier @ 2011-01-05 14:06 UTC (permalink / raw)
To: linux-arm-kernel
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
---
arch/arm/mach-vexpress/v2m.c | 22 ++++------------------
1 files changed, 4 insertions(+), 18 deletions(-)
diff --git a/arch/arm/mach-vexpress/v2m.c b/arch/arm/mach-vexpress/v2m.c
index 7eaa232..5ba07e9 100644
--- a/arch/arm/mach-vexpress/v2m.c
+++ b/arch/arm/mach-vexpress/v2m.c
@@ -11,10 +11,10 @@
#include <linux/spinlock.h>
#include <linux/sysdev.h>
#include <linux/usb/isp1760.h>
+#include <linux/mtd/physmap.h>
#include <asm/clkdev.h>
#include <asm/sizes.h>
-#include <asm/mach/flash.h>
#include <asm/mach/map.h>
#include <asm/mach/time.h>
#include <asm/hardware/arm_timer.h>
@@ -194,27 +194,13 @@ static struct platform_device v2m_usb_device = {
.dev.platform_data = &v2m_usb_config,
};
-static int v2m_flash_init(void)
-{
- writel(0, MMIO_P2V(V2M_SYS_FLASH));
- return 0;
-}
-
-static void v2m_flash_exit(void)
-{
- writel(0, MMIO_P2V(V2M_SYS_FLASH));
-}
-
-static void v2m_flash_set_vpp(int on)
+static void v2m_flash_set_vpp(struct map_info *map, int on)
{
writel(on != 0, MMIO_P2V(V2M_SYS_FLASH));
}
-static struct flash_platform_data v2m_flash_data = {
- .map_name = "cfi_probe",
+static struct physmap_flash_data v2m_flash_data = {
.width = 4,
- .init = v2m_flash_init,
- .exit = v2m_flash_exit,
.set_vpp = v2m_flash_set_vpp,
};
@@ -231,7 +217,7 @@ static struct resource v2m_flash_resources[] = {
};
static struct platform_device v2m_flash_device = {
- .name = "armflash",
+ .name = "physmap-flash",
.id = -1,
.resource = v2m_flash_resources,
.num_resources = ARRAY_SIZE(v2m_flash_resources),
--
1.7.0.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 5/8] ARM: Integrator/AP: Use physmap driver instead of integrator-flash
2011-01-05 14:06 [PATCH 0/8] Switch ARM platforms from integrator-flash to physmap Marc Zyngier
` (3 preceding siblings ...)
2011-01-05 14:06 ` [PATCH 4/8] ARM: VExpress: " Marc Zyngier
@ 2011-01-05 14:06 ` Marc Zyngier
2011-01-05 14:06 ` [PATCH 6/8] ARM: Integrator/CP: " Marc Zyngier
` (2 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Marc Zyngier @ 2011-01-05 14:06 UTC (permalink / raw)
To: linux-arm-kernel
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
---
arch/arm/mach-integrator/integrator_ap.c | 46 ++++++++++-------------------
1 files changed, 16 insertions(+), 30 deletions(-)
diff --git a/arch/arm/mach-integrator/integrator_ap.c b/arch/arm/mach-integrator/integrator_ap.c
index 548208f..cd71e9a 100644
--- a/arch/arm/mach-integrator/integrator_ap.c
+++ b/arch/arm/mach-integrator/integrator_ap.c
@@ -31,6 +31,7 @@
#include <linux/clockchips.h>
#include <linux/interrupt.h>
#include <linux/io.h>
+#include <linux/mtd/physmap.h>
#include <mach/hardware.h>
#include <mach/platform.h>
@@ -43,7 +44,6 @@
#include <mach/lm.h>
#include <asm/mach/arch.h>
-#include <asm/mach/flash.h>
#include <asm/mach/irq.h>
#include <asm/mach/map.h>
#include <asm/mach/time.h>
@@ -247,51 +247,37 @@ device_initcall(irq_init_sysfs);
#define EBI_CSR1 (VA_EBI_BASE + INTEGRATOR_EBI_CSR1_OFFSET)
#define EBI_LOCK (VA_EBI_BASE + INTEGRATOR_EBI_LOCK_OFFSET)
-static int ap_flash_init(void)
+static void ap_flash_set_vpp(struct map_info *map, int on)
{
+ unsigned long reg;
+ int needs_lock;
u32 tmp;
writel(INTEGRATOR_SC_CTRL_nFLVPPEN | INTEGRATOR_SC_CTRL_nFLWP, SC_CTRLC);
-
- tmp = readl(EBI_CSR1) | INTEGRATOR_EBI_WRITE_ENABLE;
- writel(tmp, EBI_CSR1);
-
- if (!(readl(EBI_CSR1) & INTEGRATOR_EBI_WRITE_ENABLE)) {
- writel(0xa05f, EBI_LOCK);
- writel(tmp, EBI_CSR1);
- writel(0, EBI_LOCK);
+ tmp = readl(EBI_CSR1);
+
+ if (on) {
+ reg = SC_CTRLS;
+ tmp |= INTEGRATOR_EBI_WRITE_ENABLE;
+ } else {
+ reg = SC_CTRLC;
+ tmp &= ~INTEGRATOR_EBI_WRITE_ENABLE;
}
- return 0;
-}
-static void ap_flash_exit(void)
-{
- u32 tmp;
-
- writel(INTEGRATOR_SC_CTRL_nFLVPPEN | INTEGRATOR_SC_CTRL_nFLWP, SC_CTRLC);
-
- tmp = readl(EBI_CSR1) & ~INTEGRATOR_EBI_WRITE_ENABLE;
writel(tmp, EBI_CSR1);
- if (readl(EBI_CSR1) & INTEGRATOR_EBI_WRITE_ENABLE) {
+ needs_lock = !!on ^ !!(readl(EBI_CSR1) & INTEGRATOR_EBI_WRITE_ENABLE);
+ if (needs_lock) {
writel(0xa05f, EBI_LOCK);
writel(tmp, EBI_CSR1);
writel(0, EBI_LOCK);
}
-}
-
-static void ap_flash_set_vpp(int on)
-{
- unsigned long reg = on ? SC_CTRLS : SC_CTRLC;
writel(INTEGRATOR_SC_CTRL_nFLVPPEN, reg);
}
-static struct flash_platform_data ap_flash_data = {
- .map_name = "cfi_probe",
+static struct physmap_flash_data ap_flash_data = {
.width = 4,
- .init = ap_flash_init,
- .exit = ap_flash_exit,
.set_vpp = ap_flash_set_vpp,
};
@@ -302,7 +288,7 @@ static struct resource cfi_flash_resource = {
};
static struct platform_device cfi_flash_device = {
- .name = "armflash",
+ .name = "physmap-flash",
.id = 0,
.dev = {
.platform_data = &ap_flash_data,
--
1.7.0.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 6/8] ARM: Integrator/CP: Use physmap driver instead of integrator-flash
2011-01-05 14:06 [PATCH 0/8] Switch ARM platforms from integrator-flash to physmap Marc Zyngier
` (4 preceding siblings ...)
2011-01-05 14:06 ` [PATCH 5/8] ARM: Integrator/AP: " Marc Zyngier
@ 2011-01-05 14:06 ` Marc Zyngier
2011-01-05 14:06 ` [PATCH 7/8] ARM: aaec2000: " Marc Zyngier
2011-01-05 14:06 ` [PATCH 8/8] MTD: Remove integrator-flash Marc Zyngier
7 siblings, 0 replies; 10+ messages in thread
From: Marc Zyngier @ 2011-01-05 14:06 UTC (permalink / raw)
To: linux-arm-kernel
Tested with an ARM-1136 core tile.
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
---
arch/arm/mach-integrator/integrator_cp.c | 35 +++++------------------------
1 files changed, 6 insertions(+), 29 deletions(-)
diff --git a/arch/arm/mach-integrator/integrator_cp.c b/arch/arm/mach-integrator/integrator_cp.c
index 6258c90..cf67c69 100644
--- a/arch/arm/mach-integrator/integrator_cp.c
+++ b/arch/arm/mach-integrator/integrator_cp.c
@@ -21,6 +21,7 @@
#include <linux/amba/mmci.h>
#include <linux/io.h>
#include <linux/gfp.h>
+#include <linux/mtd/physmap.h>
#include <asm/clkdev.h>
#include <mach/clkdev.h>
@@ -36,7 +37,6 @@
#include <mach/lm.h>
#include <asm/mach/arch.h>
-#include <asm/mach/flash.h>
#include <asm/mach/irq.h>
#include <asm/mach/map.h>
#include <asm/mach/time.h>
@@ -317,43 +317,20 @@ static struct clk_lookup cp_lookups[] = {
/*
* Flash handling.
*/
-static int intcp_flash_init(void)
-{
- u32 val;
-
- val = readl(INTCP_VA_CTRL_BASE + INTCP_FLASHPROG);
- val |= CINTEGRATOR_FLASHPROG_FLWREN;
- writel(val, INTCP_VA_CTRL_BASE + INTCP_FLASHPROG);
-
- return 0;
-}
-
-static void intcp_flash_exit(void)
-{
- u32 val;
-
- val = readl(INTCP_VA_CTRL_BASE + INTCP_FLASHPROG);
- val &= ~(CINTEGRATOR_FLASHPROG_FLVPPEN|CINTEGRATOR_FLASHPROG_FLWREN);
- writel(val, INTCP_VA_CTRL_BASE + INTCP_FLASHPROG);
-}
-
-static void intcp_flash_set_vpp(int on)
+static void intcp_flash_set_vpp(struct map_info *map, int on)
{
u32 val;
val = readl(INTCP_VA_CTRL_BASE + INTCP_FLASHPROG);
if (on)
- val |= CINTEGRATOR_FLASHPROG_FLVPPEN;
+ val |= CINTEGRATOR_FLASHPROG_FLVPPEN | CINTEGRATOR_FLASHPROG_FLWREN;
else
- val &= ~CINTEGRATOR_FLASHPROG_FLVPPEN;
+ val &= ~(CINTEGRATOR_FLASHPROG_FLVPPEN | CINTEGRATOR_FLASHPROG_FLWREN);
writel(val, INTCP_VA_CTRL_BASE + INTCP_FLASHPROG);
}
-static struct flash_platform_data intcp_flash_data = {
- .map_name = "cfi_probe",
+static struct physmap_flash_data intcp_flash_data = {
.width = 4,
- .init = intcp_flash_init,
- .exit = intcp_flash_exit,
.set_vpp = intcp_flash_set_vpp,
};
@@ -364,7 +341,7 @@ static struct resource intcp_flash_resource = {
};
static struct platform_device intcp_flash_device = {
- .name = "armflash",
+ .name = "physmap-flash",
.id = 0,
.dev = {
.platform_data = &intcp_flash_data,
--
1.7.0.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 7/8] ARM: aaec2000: Use physmap driver instead of integrator-flash
2011-01-05 14:06 [PATCH 0/8] Switch ARM platforms from integrator-flash to physmap Marc Zyngier
` (5 preceding siblings ...)
2011-01-05 14:06 ` [PATCH 6/8] ARM: Integrator/CP: " Marc Zyngier
@ 2011-01-05 14:06 ` Marc Zyngier
2011-01-05 14:06 ` [PATCH 8/8] MTD: Remove integrator-flash Marc Zyngier
7 siblings, 0 replies; 10+ messages in thread
From: Marc Zyngier @ 2011-01-05 14:06 UTC (permalink / raw)
To: linux-arm-kernel
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Nicolas Bellido <ml@acolin.be>
---
arch/arm/mach-aaec2000/core.c | 7 +++----
1 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/arch/arm/mach-aaec2000/core.c b/arch/arm/mach-aaec2000/core.c
index 3ef6833..100707c 100644
--- a/arch/arm/mach-aaec2000/core.c
+++ b/arch/arm/mach-aaec2000/core.c
@@ -21,12 +21,12 @@
#include <linux/signal.h>
#include <linux/clk.h>
#include <linux/gfp.h>
+#include <linux/mtd/physmap.h>
#include <mach/hardware.h>
#include <asm/irq.h>
#include <asm/sizes.h>
-#include <asm/mach/flash.h>
#include <asm/mach/irq.h>
#include <asm/mach/time.h>
#include <asm/mach/map.h>
@@ -260,8 +260,7 @@ void __init aaec2000_set_clcd_plat_data(struct aaec2000_clcd_info *clcd)
memcpy(&mach_clcd_panel, &clcd->panel, sizeof(struct clcd_panel));
}
-static struct flash_platform_data aaec2000_flash_data = {
- .map_name = "cfi_probe",
+static struct physmap_flash_data aaec2000_flash_data = {
.width = 4,
};
@@ -272,7 +271,7 @@ static struct resource aaec2000_flash_resource = {
};
static struct platform_device aaec2000_flash_device = {
- .name = "armflash",
+ .name = "physmap-flash",
.id = 0,
.dev = {
.platform_data = &aaec2000_flash_data,
--
1.7.0.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 8/8] MTD: Remove integrator-flash
2011-01-05 14:06 [PATCH 0/8] Switch ARM platforms from integrator-flash to physmap Marc Zyngier
` (6 preceding siblings ...)
2011-01-05 14:06 ` [PATCH 7/8] ARM: aaec2000: " Marc Zyngier
@ 2011-01-05 14:06 ` Marc Zyngier
7 siblings, 0 replies; 10+ messages in thread
From: Marc Zyngier @ 2011-01-05 14:06 UTC (permalink / raw)
To: linux-arm-kernel
As there is now no in-tree user of integrator-flash, remove
it completely.
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: David Woodhouse <dwmw2@infradead.org>
---
drivers/mtd/Kconfig | 3 +-
drivers/mtd/maps/Kconfig | 4 -
drivers/mtd/maps/Makefile | 1 -
drivers/mtd/maps/integrator-flash.c | 319 -----------------------------------
4 files changed, 1 insertions(+), 326 deletions(-)
delete mode 100644 drivers/mtd/maps/integrator-flash.c
diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig
index 1e2cbf5..995f037 100644
--- a/drivers/mtd/Kconfig
+++ b/drivers/mtd/Kconfig
@@ -154,8 +154,7 @@ config MTD_AFS_PARTS
You will still need the parsing functions to be called by the driver
for your particular device. It won't happen automatically. The
- 'armflash' map driver (CONFIG_MTD_ARM_INTEGRATOR) does this, for
- example.
+ 'physmap' map driver (CONFIG_MTD_PHYSMAP) does this, for example.
config MTD_OF_PARTS
tristate "Flash partition map based on OF description"
diff --git a/drivers/mtd/maps/Kconfig b/drivers/mtd/maps/Kconfig
index a0dd7bb..a9475c1 100644
--- a/drivers/mtd/maps/Kconfig
+++ b/drivers/mtd/maps/Kconfig
@@ -335,10 +335,6 @@ config MTD_SOLUTIONENGINE
This enables access to the flash chips on the Hitachi SolutionEngine and
similar boards. Say 'Y' if you are building a kernel for such a board.
-config MTD_ARM_INTEGRATOR
- tristate "CFI Flash device mapped on ARM Integrator/P720T"
- depends on ARM && MTD_CFI
-
config MTD_CDB89712
tristate "Cirrus CDB89712 evaluation board mappings"
depends on MTD_CFI && ARCH_CDB89712
diff --git a/drivers/mtd/maps/Makefile b/drivers/mtd/maps/Makefile
index c7869c7..8ac0c1a 100644
--- a/drivers/mtd/maps/Makefile
+++ b/drivers/mtd/maps/Makefile
@@ -8,7 +8,6 @@ endif
# Chip mappings
obj-$(CONFIG_MTD_CDB89712) += cdb89712.o
-obj-$(CONFIG_MTD_ARM_INTEGRATOR)+= integrator-flash.o
obj-$(CONFIG_MTD_CFI_FLAGADM) += cfi_flagadm.o
obj-$(CONFIG_MTD_DC21285) += dc21285.o
obj-$(CONFIG_MTD_DILNETPC) += dilnetpc.o
diff --git a/drivers/mtd/maps/integrator-flash.c b/drivers/mtd/maps/integrator-flash.c
deleted file mode 100644
index 2aac41b..0000000
--- a/drivers/mtd/maps/integrator-flash.c
+++ /dev/null
@@ -1,319 +0,0 @@
-/*======================================================================
-
- drivers/mtd/maps/integrator-flash.c: ARM Integrator flash map driver
-
- Copyright (C) 2000 ARM Limited
- Copyright (C) 2003 Deep Blue Solutions Ltd.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
- This is access code for flashes using ARM's flash partitioning
- standards.
-
-======================================================================*/
-
-#include <linux/module.h>
-#include <linux/types.h>
-#include <linux/kernel.h>
-#include <linux/slab.h>
-#include <linux/ioport.h>
-#include <linux/platform_device.h>
-#include <linux/init.h>
-#include <linux/io.h>
-
-#include <linux/mtd/mtd.h>
-#include <linux/mtd/map.h>
-#include <linux/mtd/partitions.h>
-#include <linux/mtd/concat.h>
-
-#include <asm/mach/flash.h>
-#include <mach/hardware.h>
-#include <asm/system.h>
-
-struct armflash_subdev_info {
- char *name;
- struct mtd_info *mtd;
- struct map_info map;
- struct flash_platform_data *plat;
-};
-
-struct armflash_info {
- struct resource *res;
- struct mtd_partition *parts;
- struct mtd_info *mtd;
- int nr_subdev;
- struct armflash_subdev_info subdev[0];
-};
-
-static void armflash_set_vpp(struct map_info *map, int on)
-{
- struct armflash_subdev_info *info =
- container_of(map, struct armflash_subdev_info, map);
-
- if (info->plat && info->plat->set_vpp)
- info->plat->set_vpp(on);
-}
-
-static const char *probes[] = { "cmdlinepart", "RedBoot", "afs", NULL };
-
-static int armflash_subdev_probe(struct armflash_subdev_info *subdev,
- struct resource *res)
-{
- struct flash_platform_data *plat = subdev->plat;
- resource_size_t size = res->end - res->start + 1;
- void __iomem *base;
- int err = 0;
-
- if (!request_mem_region(res->start, size, subdev->name)) {
- err = -EBUSY;
- goto out;
- }
-
- base = ioremap(res->start, size);
- if (!base) {
- err = -ENOMEM;
- goto no_mem;
- }
-
- /*
- * look for CFI based flash parts fitted to this board
- */
- subdev->map.size = size;
- subdev->map.bankwidth = plat->width;
- subdev->map.phys = res->start;
- subdev->map.virt = base;
- subdev->map.name = subdev->name;
- subdev->map.set_vpp = armflash_set_vpp;
-
- simple_map_init(&subdev->map);
-
- /*
- * Also, the CFI layer automatically works out what size
- * of chips we have, and does the necessary identification
- * for us automatically.
- */
- subdev->mtd = do_map_probe(plat->map_name, &subdev->map);
- if (!subdev->mtd) {
- err = -ENXIO;
- goto no_device;
- }
-
- subdev->mtd->owner = THIS_MODULE;
-
- /* Successful? */
- if (err == 0)
- return err;
-
- if (subdev->mtd)
- map_destroy(subdev->mtd);
- no_device:
- iounmap(base);
- no_mem:
- release_mem_region(res->start, size);
- out:
- return err;
-}
-
-static void armflash_subdev_remove(struct armflash_subdev_info *subdev)
-{
- if (subdev->mtd)
- map_destroy(subdev->mtd);
- if (subdev->map.virt)
- iounmap(subdev->map.virt);
- kfree(subdev->name);
- subdev->name = NULL;
- release_mem_region(subdev->map.phys, subdev->map.size);
-}
-
-static int armflash_probe(struct platform_device *dev)
-{
- struct flash_platform_data *plat = dev->dev.platform_data;
- unsigned int size;
- struct armflash_info *info;
- int i, nr, err;
-
- /* Count the number of devices */
- for (nr = 0; ; nr++)
- if (!platform_get_resource(dev, IORESOURCE_MEM, nr))
- break;
- if (nr == 0) {
- err = -ENODEV;
- goto out;
- }
-
- size = sizeof(struct armflash_info) +
- sizeof(struct armflash_subdev_info) * nr;
- info = kzalloc(size, GFP_KERNEL);
- if (!info) {
- err = -ENOMEM;
- goto out;
- }
-
- if (plat && plat->init) {
- err = plat->init();
- if (err)
- goto no_resource;
- }
-
- for (i = 0; i < nr; i++) {
- struct armflash_subdev_info *subdev = &info->subdev[i];
- struct resource *res;
-
- res = platform_get_resource(dev, IORESOURCE_MEM, i);
- if (!res)
- break;
-
- if (nr == 1)
- /* No MTD concatenation, just use the default name */
- subdev->name = kstrdup(dev_name(&dev->dev), GFP_KERNEL);
- else
- subdev->name = kasprintf(GFP_KERNEL, "%s-%d",
- dev_name(&dev->dev), i);
- if (!subdev->name) {
- err = -ENOMEM;
- break;
- }
- subdev->plat = plat;
-
- err = armflash_subdev_probe(subdev, res);
- if (err) {
- kfree(subdev->name);
- subdev->name = NULL;
- break;
- }
- }
- info->nr_subdev = i;
-
- if (err)
- goto subdev_err;
-
- if (info->nr_subdev == 1)
- info->mtd = info->subdev[0].mtd;
- else if (info->nr_subdev > 1) {
-#ifdef CONFIG_MTD_CONCAT
- struct mtd_info *cdev[info->nr_subdev];
-
- /*
- * We detected multiple devices. Concatenate them together.
- */
- for (i = 0; i < info->nr_subdev; i++)
- cdev[i] = info->subdev[i].mtd;
-
- info->mtd = mtd_concat_create(cdev, info->nr_subdev,
- dev_name(&dev->dev));
- if (info->mtd == NULL)
- err = -ENXIO;
-#else
- printk(KERN_ERR "armflash: multiple devices found but "
- "MTD concat support disabled.\n");
- err = -ENXIO;
-#endif
- }
-
- if (err < 0)
- goto cleanup;
-
- err = parse_mtd_partitions(info->mtd, probes, &info->parts, 0);
- if (err > 0) {
- err = add_mtd_partitions(info->mtd, info->parts, err);
- if (err)
- printk(KERN_ERR
- "mtd partition registration failed: %d\n", err);
- }
-
- if (err == 0) {
- platform_set_drvdata(dev, info);
- return err;
- }
-
- /*
- * We got an error, free all resources.
- */
- cleanup:
- if (info->mtd) {
- del_mtd_partitions(info->mtd);
-#ifdef CONFIG_MTD_CONCAT
- if (info->mtd != info->subdev[0].mtd)
- mtd_concat_destroy(info->mtd);
-#endif
- }
- kfree(info->parts);
- subdev_err:
- for (i = info->nr_subdev - 1; i >= 0; i--)
- armflash_subdev_remove(&info->subdev[i]);
- no_resource:
- if (plat && plat->exit)
- plat->exit();
- kfree(info);
- out:
- return err;
-}
-
-static int armflash_remove(struct platform_device *dev)
-{
- struct armflash_info *info = platform_get_drvdata(dev);
- struct flash_platform_data *plat = dev->dev.platform_data;
- int i;
-
- platform_set_drvdata(dev, NULL);
-
- if (info) {
- if (info->mtd) {
- del_mtd_partitions(info->mtd);
-#ifdef CONFIG_MTD_CONCAT
- if (info->mtd != info->subdev[0].mtd)
- mtd_concat_destroy(info->mtd);
-#endif
- }
- kfree(info->parts);
-
- for (i = info->nr_subdev - 1; i >= 0; i--)
- armflash_subdev_remove(&info->subdev[i]);
-
- if (plat && plat->exit)
- plat->exit();
-
- kfree(info);
- }
-
- return 0;
-}
-
-static struct platform_driver armflash_driver = {
- .probe = armflash_probe,
- .remove = armflash_remove,
- .driver = {
- .name = "armflash",
- .owner = THIS_MODULE,
- },
-};
-
-static int __init armflash_init(void)
-{
- return platform_driver_register(&armflash_driver);
-}
-
-static void __exit armflash_exit(void)
-{
- platform_driver_unregister(&armflash_driver);
-}
-
-module_init(armflash_init);
-module_exit(armflash_exit);
-
-MODULE_AUTHOR("ARM Ltd");
-MODULE_DESCRIPTION("ARM Integrator CFI map driver");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("platform:armflash");
--
1.7.0.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 6/8] ARM: Integrator/CP: Use physmap driver instead of integrator-flash
2011-01-31 10:10 [PATCH v3 0/8] Switch ARM platforms from integrator-flash to physmap Marc Zyngier
@ 2011-01-31 10:10 ` Marc Zyngier
0 siblings, 0 replies; 10+ messages in thread
From: Marc Zyngier @ 2011-01-31 10:10 UTC (permalink / raw)
To: linux-arm-kernel
Tested with an ARM-1136 core tile.
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
---
arch/arm/mach-integrator/integrator_cp.c | 13 ++++++-------
1 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/arch/arm/mach-integrator/integrator_cp.c b/arch/arm/mach-integrator/integrator_cp.c
index e9327da..d94fc45 100644
--- a/arch/arm/mach-integrator/integrator_cp.c
+++ b/arch/arm/mach-integrator/integrator_cp.c
@@ -22,6 +22,7 @@
#include <linux/io.h>
#include <linux/gfp.h>
#include <linux/clkdev.h>
+#include <linux/mtd/physmap.h>
#include <mach/hardware.h>
#include <mach/platform.h>
@@ -35,7 +36,6 @@
#include <mach/lm.h>
#include <asm/mach/arch.h>
-#include <asm/mach/flash.h>
#include <asm/mach/irq.h>
#include <asm/mach/map.h>
#include <asm/mach/time.h>
@@ -316,7 +316,7 @@ static struct clk_lookup cp_lookups[] = {
/*
* Flash handling.
*/
-static int intcp_flash_init(void)
+static int intcp_flash_init(struct platform_device *dev)
{
u32 val;
@@ -327,7 +327,7 @@ static int intcp_flash_init(void)
return 0;
}
-static void intcp_flash_exit(void)
+static void intcp_flash_exit(struct platform_device *dev)
{
u32 val;
@@ -336,7 +336,7 @@ static void intcp_flash_exit(void)
writel(val, INTCP_VA_CTRL_BASE + INTCP_FLASHPROG);
}
-static void intcp_flash_set_vpp(int on)
+static void intcp_flash_set_vpp(struct map_info *map, int on)
{
u32 val;
@@ -348,8 +348,7 @@ static void intcp_flash_set_vpp(int on)
writel(val, INTCP_VA_CTRL_BASE + INTCP_FLASHPROG);
}
-static struct flash_platform_data intcp_flash_data = {
- .map_name = "cfi_probe",
+static struct physmap_flash_data intcp_flash_data = {
.width = 4,
.init = intcp_flash_init,
.exit = intcp_flash_exit,
@@ -363,7 +362,7 @@ static struct resource intcp_flash_resource = {
};
static struct platform_device intcp_flash_device = {
- .name = "armflash",
+ .name = "physmap-flash",
.id = 0,
.dev = {
.platform_data = &intcp_flash_data,
--
1.7.0.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
end of thread, other threads:[~2011-01-31 10:10 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-01-05 14:06 [PATCH 0/8] Switch ARM platforms from integrator-flash to physmap Marc Zyngier
2011-01-05 14:06 ` [PATCH 1/8] MTD: Add integrator-flash feature " Marc Zyngier
2011-01-05 14:06 ` [PATCH 2/8] ARM: Realview: Use physmap driver instead of integrator-flash Marc Zyngier
2011-01-05 14:06 ` [PATCH 3/8] ARM: Versatile: " Marc Zyngier
2011-01-05 14:06 ` [PATCH 4/8] ARM: VExpress: " Marc Zyngier
2011-01-05 14:06 ` [PATCH 5/8] ARM: Integrator/AP: " Marc Zyngier
2011-01-05 14:06 ` [PATCH 6/8] ARM: Integrator/CP: " Marc Zyngier
2011-01-05 14:06 ` [PATCH 7/8] ARM: aaec2000: " Marc Zyngier
2011-01-05 14:06 ` [PATCH 8/8] MTD: Remove integrator-flash Marc Zyngier
-- strict thread matches above, loose matches on Subject: below --
2011-01-31 10:10 [PATCH v3 0/8] Switch ARM platforms from integrator-flash to physmap Marc Zyngier
2011-01-31 10:10 ` [PATCH 6/8] ARM: Integrator/CP: Use physmap driver instead of integrator-flash Marc Zyngier
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).