diff options
author | Michael Sparmann <theseven@rockbox.org> | 2009-10-09 20:36:09 +0000 |
---|---|---|
committer | Michael Sparmann <theseven@rockbox.org> | 2009-10-09 20:36:09 +0000 |
commit | f0a96580ae84cdfbb09db568f296491c699b6a4b (patch) | |
tree | 73d71563c1ab314f322e0fe10fc80c3b7f698ab7 /firmware/target/arm/s5l8700 | |
parent | 8e3e5e7a59f741c16eafc5ff0672af2eb1404835 (diff) | |
download | rockbox-f0a96580ae84cdfbb09db568f296491c699b6a4b.tar.gz rockbox-f0a96580ae84cdfbb09db568f296491c699b6a4b.zip |
Core changes to allow storage drivers to do cleanup on shutdown, and iPod Nano 2G shutdown code rework (FS#10668)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23057 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/s5l8700')
5 files changed, 22 insertions, 15 deletions
diff --git a/firmware/target/arm/s5l8700/ata-nand-s5l8700.c b/firmware/target/arm/s5l8700/ata-nand-s5l8700.c index b3b1314a50..883c167c78 100644 --- a/firmware/target/arm/s5l8700/ata-nand-s5l8700.c +++ b/firmware/target/arm/s5l8700/ata-nand-s5l8700.c | |||
@@ -36,9 +36,6 @@ long last_disk_activity = -1; | |||
36 | /** static, private data **/ | 36 | /** static, private data **/ |
37 | static bool initialized = false; | 37 | static bool initialized = false; |
38 | 38 | ||
39 | static long next_yield = 0; | ||
40 | #define MIN_YIELD_PERIOD 2000 | ||
41 | |||
42 | /* API Functions */ | 39 | /* API Functions */ |
43 | 40 | ||
44 | void nand_led(bool onoff) | 41 | void nand_led(bool onoff) |
@@ -67,6 +64,10 @@ void nand_sleep(void) | |||
67 | { | 64 | { |
68 | } | 65 | } |
69 | 66 | ||
67 | void nand_sleepnow(void) | ||
68 | { | ||
69 | } | ||
70 | |||
70 | void nand_spin(void) | 71 | void nand_spin(void) |
71 | { | 72 | { |
72 | } | 73 | } |
@@ -86,6 +87,13 @@ long nand_last_disk_activity(void) | |||
86 | return 0; | 87 | return 0; |
87 | } | 88 | } |
88 | 89 | ||
90 | #ifdef HAVE_STORAGE_FLUSH | ||
91 | int nand_flush(void) | ||
92 | { | ||
93 | return ftl_sync(); | ||
94 | } | ||
95 | #endif | ||
96 | |||
89 | int nand_init(void) | 97 | int nand_init(void) |
90 | { | 98 | { |
91 | if (ftl_init()) return 1; | 99 | if (ftl_init()) return 1; |
diff --git a/firmware/target/arm/s5l8700/ipodnano2g/lcd-nano2g.c b/firmware/target/arm/s5l8700/ipodnano2g/lcd-nano2g.c index 76e35ead30..c430a327a2 100644 --- a/firmware/target/arm/s5l8700/ipodnano2g/lcd-nano2g.c +++ b/firmware/target/arm/s5l8700/ipodnano2g/lcd-nano2g.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include "lcd.h" | 25 | #include "lcd.h" |
26 | #include "system.h" | 26 | #include "system.h" |
27 | #include "cpu.h" | 27 | #include "cpu.h" |
28 | #include "pmu-target.h" | ||
28 | 29 | ||
29 | 30 | ||
30 | /* The Nano 2G has two different LCD types. What we call "type 0" | 31 | /* The Nano 2G has two different LCD types. What we call "type 0" |
@@ -124,10 +125,11 @@ void lcd_set_flip(bool yesno) | |||
124 | } | 125 | } |
125 | } | 126 | } |
126 | 127 | ||
127 | 128 | void lcd_shutdown(void) | |
128 | |||
129 | void lcd_off(void) | ||
130 | { | 129 | { |
130 | pmu_write(0x2b, 0); /* Kill the backlight, instantly. */ | ||
131 | pmu_write(0x29, 0); | ||
132 | |||
131 | if (lcd_type == 0) | 133 | if (lcd_type == 0) |
132 | { | 134 | { |
133 | s5l_lcd_write_cmd_data(R_DISPLAY_CONTROL_1, 0x232); | 135 | s5l_lcd_write_cmd_data(R_DISPLAY_CONTROL_1, 0x232); |
@@ -151,6 +153,11 @@ void lcd_off(void) | |||
151 | } | 153 | } |
152 | } | 154 | } |
153 | 155 | ||
156 | |||
157 | void lcd_off(void) | ||
158 | { | ||
159 | } | ||
160 | |||
154 | void lcd_on(void) | 161 | void lcd_on(void) |
155 | { | 162 | { |
156 | } | 163 | } |
diff --git a/firmware/target/arm/s5l8700/ipodnano2g/pmu-nano2g.c b/firmware/target/arm/s5l8700/ipodnano2g/pmu-nano2g.c index 4dd295c21a..ca2b5f2775 100644 --- a/firmware/target/arm/s5l8700/ipodnano2g/pmu-nano2g.c +++ b/firmware/target/arm/s5l8700/ipodnano2g/pmu-nano2g.c | |||
@@ -103,4 +103,4 @@ void pmu_switch_power(int gate, int onoff) | |||
103 | if (onoff) newval |= 1 << (2 * (gate - 4)); | 103 | if (onoff) newval |= 1 << (2 * (gate - 4)); |
104 | pmu_write(0x3C, newval); | 104 | pmu_write(0x3C, newval); |
105 | } | 105 | } |
106 | } \ No newline at end of file | 106 | } |
diff --git a/firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c b/firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c index 31f23ff9ff..cba1514aad 100644 --- a/firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c +++ b/firmware/target/arm/s5l8700/ipodnano2g/power-nano2g.c | |||
@@ -32,13 +32,6 @@ | |||
32 | 32 | ||
33 | void power_off(void) | 33 | void power_off(void) |
34 | { | 34 | { |
35 | if (ftl_sync() != 0) panicf("Failed to unmount flash!"); | ||
36 | |||
37 | pmu_write(0x2b, 0); /* Kill the backlight, instantly. */ | ||
38 | pmu_write(0x29, 0); | ||
39 | |||
40 | lcd_off(); | ||
41 | |||
42 | pmu_switch_power(0, 0); | 35 | pmu_switch_power(0, 0); |
43 | pmu_switch_power(2, 0); | 36 | pmu_switch_power(2, 0); |
44 | pmu_switch_power(3, 0); | 37 | pmu_switch_power(3, 0); |
diff --git a/firmware/target/arm/s5l8700/ipodnano2g/rtc-nano2g.c b/firmware/target/arm/s5l8700/ipodnano2g/rtc-nano2g.c index 01d64f1c54..bad9581d8f 100644 --- a/firmware/target/arm/s5l8700/ipodnano2g/rtc-nano2g.c +++ b/firmware/target/arm/s5l8700/ipodnano2g/rtc-nano2g.c | |||
@@ -52,7 +52,6 @@ int rtc_read_datetime(struct tm *tm) | |||
52 | int rtc_write_datetime(const struct tm *tm) | 52 | int rtc_write_datetime(const struct tm *tm) |
53 | { | 53 | { |
54 | unsigned int i; | 54 | unsigned int i; |
55 | int rc, oldlevel; | ||
56 | unsigned char buf[7]; | 55 | unsigned char buf[7]; |
57 | 56 | ||
58 | buf[0] = tm->tm_sec; | 57 | buf[0] = tm->tm_sec; |