mirror of https://github.com/google/pebble
fw/drivers/flash: only start erase suspend timer if needed
Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
This commit is contained in:
parent
4051c5bb97
commit
3671470927
|
|
@ -228,7 +228,9 @@ void flash_read_bytes(uint8_t* buffer, uint32_t start_addr,
|
||||||
// reads while an erase is in progress, as long as the read is to another bank
|
// reads while an erase is in progress, as long as the read is to another bank
|
||||||
// than the one being erased.
|
// than the one being erased.
|
||||||
prv_erase_pause();
|
prv_erase_pause();
|
||||||
|
if (s_erase.suspended) {
|
||||||
new_timer_start(s_erase_suspend_timer, 5, prv_erase_suspend_timer_cb, NULL, 0);
|
new_timer_start(s_erase_suspend_timer, 5, prv_erase_suspend_timer_cb, NULL, 0);
|
||||||
|
}
|
||||||
flash_impl_read_sync(buffer, start_addr, buffer_size);
|
flash_impl_read_sync(buffer, start_addr, buffer_size);
|
||||||
mutex_unlock(s_flash_lock);
|
mutex_unlock(s_flash_lock);
|
||||||
}
|
}
|
||||||
|
|
@ -247,7 +249,9 @@ void flash_write_bytes(const uint8_t *buffer, uint32_t start_addr,
|
||||||
s_analytics_write_bytes_count += buffer_size;
|
s_analytics_write_bytes_count += buffer_size;
|
||||||
s_system_analytics_write_bytes_count += buffer_size;
|
s_system_analytics_write_bytes_count += buffer_size;
|
||||||
prv_erase_pause();
|
prv_erase_pause();
|
||||||
|
if (s_erase.suspended) {
|
||||||
new_timer_start(s_erase_suspend_timer, 50, prv_erase_suspend_timer_cb, NULL, 0);
|
new_timer_start(s_erase_suspend_timer, 50, prv_erase_suspend_timer_cb, NULL, 0);
|
||||||
|
}
|
||||||
while (buffer_size) {
|
while (buffer_size) {
|
||||||
int written = flash_impl_write_page_begin(buffer, start_addr, buffer_size);
|
int written = flash_impl_write_page_begin(buffer, start_addr, buffer_size);
|
||||||
PBL_ASSERT(
|
PBL_ASSERT(
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue