From f184152c0501a80e95ad871927d766fdee50281b Mon Sep 17 00:00:00 2001 From: Jonathan Gordon Date: Wed, 8 Nov 2006 01:55:26 +0000 Subject: * changes to ata.c - idle callbacks are called after 2 sec of real idle, and shutdown and usb (it makes sense here). ata_sleep doesnt get broken by callbacks. * allow ata_sleep() at the end of buffering again * config block uses ata_idle instead of delayed sector when saving * remove delayed sector code from ata_mmc.c (idle callbacks are not yet implemented for ata_mmc.c tho) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11461 a1c6a512-1295-4272-9138-f99709370657 --- apps/playback.c | 1 + apps/settings.c | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'apps') diff --git a/apps/playback.c b/apps/playback.c index f4274a8f02..c0558ed737 100644 --- a/apps/playback.c +++ b/apps/playback.c @@ -2781,6 +2781,7 @@ static void audio_fill_file_buffer( filling = false; } + ata_sleep(); } static void audio_rebuffer(void) diff --git a/apps/settings.c b/apps/settings.c index ec96cc760b..08e6376694 100644 --- a/apps/settings.c +++ b/apps/settings.c @@ -38,6 +38,7 @@ #include "talk.h" #include "string.h" #include "ata.h" +#include "ata_idle_notify.h" #include "fat.h" #include "power.h" #include "powermgmt.h" @@ -802,6 +803,11 @@ static void init_config_buffer( void ) config_block[3] = CONFIG_BLOCK_VERSION; } +bool flush_config_block_callback(void) +{ + ata_write_sectors(IF_MV2(0,) config_sector, 1, config_block); + return true; +} /* * save the config block buffer to disk or RTC RAM */ @@ -833,7 +839,7 @@ static int save_config_buffer( void ) #endif if (config_sector != 0) - ata_delayed_write( config_sector, config_block); + register_ata_idle_func(flush_config_block_callback); else return -1; -- cgit v1.2.3