summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/plugin.c2
-rw-r--r--apps/plugin.h6
-rw-r--r--apps/plugins/clock/clock_settings.c2
-rw-r--r--apps/plugins/jpeg/jpeg.c2
-rw-r--r--apps/plugins/mpegplayer/disk_buf.c6
-rw-r--r--apps/plugins/video.c2
-rw-r--r--apps/plugins/wavplay.c2
-rw-r--r--firmware/drivers/sd.c13
-rw-r--r--firmware/export/mmc.h3
-rw-r--r--firmware/export/nand.h3
-rw-r--r--firmware/export/sd.h3
-rw-r--r--firmware/export/storage.h18
-rw-r--r--firmware/target/arm/ata-nand-telechips.c13
-rw-r--r--firmware/target/arm/s5l8700/ata-nand-s5l8700.c23
-rw-r--r--firmware/target/mips/ingenic_jz47xx/ata-nand-jz4740.c28
15 files changed, 97 insertions, 29 deletions
diff --git a/apps/plugin.c b/apps/plugin.c
index 4b7eb28..84200bb 100644
--- a/apps/plugin.c
+++ b/apps/plugin.c
@@ -284,11 +284,9 @@ static const struct plugin_api rockbox_api = {
fdprintf,
read_line,
settings_parseline,
-#ifdef HAVE_DISK_STORAGE
storage_sleep,
storage_spin,
storage_spindown,
-#endif
#if USING_STORAGE_CALLBACK
register_storage_idle_func,
unregister_storage_idle_func,
diff --git a/apps/plugin.h b/apps/plugin.h
index ebb2518..a946f42 100644
--- a/apps/plugin.h
+++ b/apps/plugin.h
@@ -129,12 +129,12 @@ void* plugin_get_buffer(size_t *buffer_size);
#define PLUGIN_MAGIC 0x526F634B /* RocK */
/* increase this every time the api struct changes */
-#define PLUGIN_API_VERSION 163
+#define PLUGIN_API_VERSION 164
/* update this to latest version if a change to the api struct breaks
backwards compatibility (and please take the opportunity to sort in any
new function which are "waiting" at the end of the function table) */
-#define PLUGIN_MIN_API_VERSION 163
+#define PLUGIN_MIN_API_VERSION 164
/* plugin return codes */
enum plugin_status {
@@ -395,11 +395,9 @@ struct plugin_api {
int (*fdprintf)(int fd, const char *fmt, ...) ATTRIBUTE_PRINTF(2, 3);
int (*read_line)(int fd, char* buffer, int buffer_size);
bool (*settings_parseline)(char* line, char** name, char** value);
-#ifdef HAVE_DISK_STORAGE
void (*storage_sleep)(void);
void (*storage_spin)(void);
void (*storage_spindown)(int seconds);
-#endif
#if USING_STORAGE_CALLBACK
void (*register_storage_idle_func)(storage_idle_notify function);
void (*unregister_storage_idle_func)(storage_idle_notify function, bool run);
diff --git a/apps/plugins/clock/clock_settings.c b/apps/plugins/clock/clock_settings.c
index ef3114a..d765cbb 100644
--- a/apps/plugins/clock/clock_settings.c
+++ b/apps/plugins/clock/clock_settings.c
@@ -173,9 +173,7 @@ void load_settings(void){
draw_message(display, MESSAGE_ERRLOAD, 1);
display->update();
}
-#ifdef HAVE_DISK_STORAGE
rb->storage_sleep();
-#endif
rb->sleep(HZ);
}
diff --git a/apps/plugins/jpeg/jpeg.c b/apps/plugins/jpeg/jpeg.c
index 685122b..fc98834 100644
--- a/apps/plugins/jpeg/jpeg.c
+++ b/apps/plugins/jpeg/jpeg.c
@@ -1038,9 +1038,7 @@ int load_and_show(char* filename)
else if(immediate_ata_off)
{
/* running slideshow and time is long enough: power down disk */
-#ifdef HAVE_DISK_STORAGE
rb->storage_sleep();
-#endif
}
#endif
diff --git a/apps/plugins/mpegplayer/disk_buf.c b/apps/plugins/mpegplayer/disk_buf.c
index 4328606..defd8ef 100644
--- a/apps/plugins/mpegplayer/disk_buf.c
+++ b/apps/plugins/mpegplayer/disk_buf.c
@@ -172,9 +172,7 @@ static inline void disk_buf_buffer(void)
if (!stream_get_window(&sw))
{
disk_buf.state = TSTATE_DATA;
-#ifdef HAVE_DISK_STORAGE
rb->storage_sleep();
-#endif
break;
}
@@ -189,9 +187,7 @@ static inline void disk_buf_buffer(void)
/* Free space is less than one page */
disk_buf.state = TSTATE_DATA;
disk_buf.low_wm = DISK_BUF_LOW_WATERMARK;
-#ifdef HAVE_DISK_STORAGE
rb->storage_sleep();
-#endif
break;
}
@@ -213,9 +209,7 @@ static inline void disk_buf_buffer(void)
{
/* Error or end of stream */
disk_buf.state = TSTATE_EOS;
-#ifdef HAVE_DISK_STORAGE
rb->storage_sleep();
-#endif
break;
}
diff --git a/apps/plugins/video.c b/apps/plugins/video.c
index 8ead0a7..6b0a47c 100644
--- a/apps/plugins/video.c
+++ b/apps/plugins/video.c
@@ -681,9 +681,7 @@ int PlayTick(int fd)
#endif
)
{
-#ifdef HAVE_DISK_STORAGE
rb->storage_sleep(); /* no point in leaving the disk run til timeout */
-#endif
gPlay.bDiskSleep = true;
}
diff --git a/apps/plugins/wavplay.c b/apps/plugins/wavplay.c
index 9cb784b..368d8e3 100644
--- a/apps/plugins/wavplay.c
+++ b/apps/plugins/wavplay.c
@@ -3596,9 +3596,7 @@ int play_file(char* filename)
if (free_space <= 0)
{
filling = false;
-#ifdef HAVE_DISK_STORAGE
rb->storage_sleep();
-#endif
}
else
{
diff --git a/firmware/drivers/sd.c b/firmware/drivers/sd.c
index fdc05c7..4034b94 100644
--- a/firmware/drivers/sd.c
+++ b/firmware/drivers/sd.c
@@ -66,6 +66,19 @@ void sd_parse_csd(tCardInfo *card)
logf("nsac: %d taac: %d r2w: %d", card->nsac, card->taac, card->r2w_factor);
}
+void sd_sleep(void)
+{
+}
+
+void sd_spin(void)
+{
+}
+
+void sd_spindown(int seconds)
+{
+ (void)seconds;
+}
+
#ifdef STORAGE_GET_INFO
void sd_get_info(IF_MV2(int drive,) struct storage_info *info)
{
diff --git a/firmware/export/mmc.h b/firmware/export/mmc.h
index bd4b7f9..06d99d2 100644
--- a/firmware/export/mmc.h
+++ b/firmware/export/mmc.h
@@ -28,6 +28,8 @@
struct storage_info;
void mmc_enable(bool on);
+void mmc_spindown(int seconds);
+void mmc_sleep(void);
void mmc_sleepnow(void);
bool mmc_disk_is_active(void);
int mmc_soft_reset(void);
@@ -35,6 +37,7 @@ int mmc_init(void);
void mmc_close(void);
int mmc_read_sectors(IF_MV2(int drive,) unsigned long start, int count, void* buf);
int mmc_write_sectors(IF_MV2(int drive,) unsigned long start, int count, const void* buf);
+void mmc_spin(void);
int mmc_spinup_time(void);
#ifdef STORAGE_GET_INFO
diff --git a/firmware/export/nand.h b/firmware/export/nand.h
index 64416b9..a5b0a1c 100644
--- a/firmware/export/nand.h
+++ b/firmware/export/nand.h
@@ -28,12 +28,15 @@
struct storage_info;
void nand_enable(bool on);
+void nand_spindown(int seconds);
+void nand_sleep(void);
bool nand_disk_is_active(void);
int nand_soft_reset(void);
int nand_init(void);
void nand_close(void);
int nand_read_sectors(IF_MV2(int drive,) unsigned long start, int count, void* buf);
int nand_write_sectors(IF_MV2(int drive,) unsigned long start, int count, const void* buf);
+void nand_spin(void);
#ifdef STORAGE_GET_INFO
void nand_get_info(IF_MV2(int drive,) struct storage_info *info);
diff --git a/firmware/export/sd.h b/firmware/export/sd.h
index f100f30..d313a4c 100644
--- a/firmware/export/sd.h
+++ b/firmware/export/sd.h
@@ -30,12 +30,15 @@
struct storage_info;
void sd_enable(bool on);
+void sd_spindown(int seconds);
+void sd_sleep(void);
bool sd_disk_is_active(void);
int sd_soft_reset(void);
int sd_init(void);
void sd_close(void);
int sd_read_sectors(IF_MV2(int drive,) unsigned long start, int count, void* buf);
int sd_write_sectors(IF_MV2(int drive,) unsigned long start, int count, const void* buf);
+void sd_spin(void);
#ifdef STORAGE_GET_INFO
void sd_get_info(IF_MV2(int drive,) struct storage_info *info);
diff --git a/firmware/export/storage.h b/firmware/export/storage.h
index 73ec970..47d8abd 100644
--- a/firmware/export/storage.h
+++ b/firmware/export/storage.h
@@ -81,9 +81,9 @@ struct storage_info
#define storage_present(drive) ata_present(IF_MV(drive))
#endif
#elif (CONFIG_STORAGE & STORAGE_SD)
- #define storage_spindown(seconds) (void)0
- #define storage_sleep() (void)0
- #define storage_spin() (void)0
+ #define storage_spindown sd_spindown
+ #define storage_sleep sd_sleep
+ #define storage_spin sd_spin
#define storage_enable(on) sd_enable(on)
#define storage_sleepnow() sd_sleepnow()
@@ -105,9 +105,9 @@ struct storage_info
#define storage_present(drive) sd_present(IF_MV(drive))
#endif
#elif (CONFIG_STORAGE & STORAGE_MMC)
- #define storage_spindown(seconds) (void)0
- #define storage_sleep() (void)0
- #define storage_spin() (void)0
+ #define storage_spindown mmc_spindown
+ #define storage_sleep mmc_sleep
+ #define storage_spin mmc_spin
#define storage_enable(on) mmc_enable(on)
#define storage_sleepnow() mmc_sleepnow()
@@ -129,9 +129,9 @@ struct storage_info
#define storage_present(drive) mmc_present(IF_MV(drive))
#endif
#elif (CONFIG_STORAGE & STORAGE_NAND)
- #define storage_spindown(seconds) (void)0
- #define storage_sleep() (void)0
- #define storage_spin() (void)0
+ #define storage_spindown nand_spindown
+ #define storage_sleep nand_sleep
+ #define storage_spin nand_spin
#define storage_enable(on) (void)0
#define storage_sleepnow() nand_sleepnow()
diff --git a/firmware/target/arm/ata-nand-telechips.c b/firmware/target/arm/ata-nand-telechips.c
index 698f2b9..8bef57e 100644
--- a/firmware/target/arm/ata-nand-telechips.c
+++ b/firmware/target/arm/ata-nand-telechips.c
@@ -900,3 +900,16 @@ long nand_last_disk_activity(void)
{
return last_disk_activity;
}
+
+void nand_sleep(void)
+{
+}
+
+void nand_spin(void)
+{
+}
+
+void nand_spindown(int seconds)
+{
+ (void)seconds;
+}
diff --git a/firmware/target/arm/s5l8700/ata-nand-s5l8700.c b/firmware/target/arm/s5l8700/ata-nand-s5l8700.c
index 183ef18..ee1e581 100644
--- a/firmware/target/arm/s5l8700/ata-nand-s5l8700.c
+++ b/firmware/target/arm/s5l8700/ata-nand-s5l8700.c
@@ -64,6 +64,29 @@ int nand_write_sectors(IF_MV2(int drive,) unsigned long start, int count,
return 0;
}
+void nand_spindown(int seconds)
+{
+ (void)seconds;
+}
+
+bool nand_disk_is_active(void)
+{
+ return 0;
+}
+
+void nand_sleep(void)
+{
+}
+
+void nand_spin(void)
+{
+}
+
+int nand_soft_reset(void)
+{
+ return 0;
+}
+
void nand_enable(bool on)
{
(void)on;
diff --git a/firmware/target/mips/ingenic_jz47xx/ata-nand-jz4740.c b/firmware/target/mips/ingenic_jz47xx/ata-nand-jz4740.c
index 2832503..d918928 100644
--- a/firmware/target/mips/ingenic_jz47xx/ata-nand-jz4740.c
+++ b/firmware/target/mips/ingenic_jz47xx/ata-nand-jz4740.c
@@ -685,6 +685,34 @@ int nand_write_sectors(IF_MV2(int drive,) unsigned long start, int count, const
return -1;
}
+void nand_spindown(int seconds)
+{
+ /* null */
+ (void)seconds;
+}
+
+bool nand_disk_is_active(void)
+{
+ /* null */
+ return false;
+}
+
+void nand_sleep(void)
+{
+ /* null */
+}
+
+void nand_spin(void)
+{
+ /* null */
+}
+
+int nand_soft_reset(void)
+{
+ /* null */
+ return 0;
+}
+
void nand_enable(bool on)
{
/* null - flash controller is enabled/disabled as needed. */