Standby/resume and MTD driver
Oleg Kechin
okechin at gmail.com
Thu Jun 14 04:57:33 EDT 2007
Hi
I run 2.6.20-rt8 kernel on board like omap-innovator1510 (OMAP5910 cpu
ARM925 v4) with NOR flash
and jffs2 filesystem.
In case to enter standby mode, board enter cleanly, and it is OK, but
in resume there is a problem.
(I use echo -n standby > /sys/power/state command)
When it wakes up, at some times I get string:
omapflash.0: Waiting for chip to be ready timed out. Status 3068
Write of 68 bytes at 0x00945628 failed. returned -5, retlen 0
Not marking the space at 0x00945628 as dirty because the flash driver
returned retlen zero
I know that the error is in case flash go to standby in one state, but
return in another. Mtd driver has functions
for such cases - suspend and resume (cfi_intelext_suspend() &
cfi_intelext_resume()),
but both of this functions are not calling in suspend/resume process.
I can not find a way to call this function from user space - I can not
find ioctl or something like that.
May be I have to link those function in some pm list or something like
that? Is there any example?
PS. Flash to board added like that:
static struct flash_platform_data innovator_flash_data = {
.map_name = "cfi_probe",
.width = 2,
.parts = innovator_partitions,
.nr_parts = ARRAY_SIZE(innovator_partitions),
};
static struct resource innovator_flash_resource = {
.start = OMAP_CS0_PHYS,
.end = OMAP_CS0_PHYS + SZ_32M - 1,
.flags = IORESOURCE_MEM,
};
static struct platform_device innovator_flash_device = {
.name = "omapflash",
.id = 0,
.dev = {
.platform_data = &innovator_flash_data,
},
.num_resources = 1,
.resource = &innovator_flash_resource,
}
Oleg Kechin
More information about the linux-mtd
mailing list