Standby/resume and MTD driver
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