summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2010-01-03 13:34:29 +0000
committerJens Arnold <amiconn@rockbox.org>2010-01-03 13:34:29 +0000
commit5c1432c9cf0c5b83637fa015b80f0f102ad54916 (patch)
treeaf2e434c4cf8ea54dae6eda0b554f177ac4f17b0
parent1bc9228ac74e4df52f677c98c0afda2c3ab58378 (diff)
Coldfire targets: Restore EMAC status after using the EMAC for bitmap resizing. Fixes FS #10412. The tone and EQ filter calculation relies on the proper EMAC mode. EQ filters were not affected because they're set from a different thread, hence FS #10412 only affected the iAudios (coldfire + albumart + software tone controls).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24164 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/recorder/resize.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/apps/recorder/resize.c b/apps/recorder/resize.c
index 49b8980ceb..0f227f8b09 100644
--- a/apps/recorder/resize.c
+++ b/apps/recorder/resize.c
@@ -921,6 +921,7 @@ int resize_on_load(struct bitmap *bm, bool dither, struct dim *src,
}
#endif
#ifdef CPU_COLDFIRE
+ unsigned old_macsr = coldfire_get_macsr();
coldfire_set_macsr(EMAC_UNSIGNED);
#endif
#ifdef HAVE_UPSCALER
@@ -951,6 +952,11 @@ int resize_on_load(struct bitmap *bm, bool dither, struct dim *src,
ret = scale_v_linear(rset, &ctx);
}
#endif
+#ifdef CPU_COLDFIRE
+ /* Restore emac status; other modules like tone control filter
+ * calculation may rely on it. */
+ coldfire_set_macsr(old_macsr);
+#endif
#ifdef HAVE_ADJUSTABLE_CPU_FREQ
cpu_boost(false);
#endif