876fe76d79
This patch is part of a set which fixes unnecessary flash erase and write errors resulting from the MTD CFI driver turning off vpp while an erase is in progress. This patch allows physmap_set_vpp() calls to be nested by adding a reference counter. omap1_set_vpp() already used a reference counter. Since it is called from physmap_set_vpp(), omap1_set_vpp() can now be simplified. simtec_nor_vpp() already disabled hard interrupts. Since it is called from physmap_set_vpp(), simtec_nor_vpp() can now be simplified. Signed-off-by: Paul Parsons <lost.distance@yahoo.com> Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
27 lines
561 B
C
27 lines
561 B
C
/*
|
|
* Flash support for OMAP1
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*/
|
|
|
|
#include <linux/mtd/mtd.h>
|
|
#include <linux/mtd/map.h>
|
|
|
|
#include <plat/io.h>
|
|
#include <plat/tc.h>
|
|
#include <plat/flash.h>
|
|
|
|
void omap1_set_vpp(struct platform_device *pdev, int enable)
|
|
{
|
|
u32 l;
|
|
|
|
l = omap_readl(EMIFS_CONFIG);
|
|
if (enable)
|
|
l |= OMAP_EMIFS_CONFIG_WP;
|
|
else
|
|
l &= ~OMAP_EMIFS_CONFIG_WP;
|
|
omap_writel(l, EMIFS_CONFIG);
|
|
}
|