The player also has MAS poweron reset, handle it.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5456 a1c6a512-1295-4272-9138-f99709370657
diff --git a/firmware/drivers/mas.c b/firmware/drivers/mas.c
index 52a91c5..95697a7 100644
--- a/firmware/drivers/mas.c
+++ b/firmware/drivers/mas.c
@@ -266,11 +266,18 @@
     return ret;
 }
 
-#if (CONFIG_HWCODEC == MAS3587F) || (CONFIG_HWCODEC == MAS3539F)
 void mas_reset(void)
 {
     or_b(0x01, &PAIORH);
-    
+
+#if CONFIG_HWCODEC == MAS3507D
+    or_b(0x01, &PAIORH);
+    and_b(~0x01, &PADRH);
+    sleep(HZ/100);
+    or_b(0x01, &PADRH);
+    sleep(HZ/5);
+
+#elif (CONFIG_HWCODEC == MAS3587F) || (CONFIG_HWCODEC == MAS3539F)
     if(old_recorder)
     {
         /* Older recorder models don't invert the POR signal */
@@ -285,9 +292,11 @@
         sleep(HZ/100);
         or_b(0x01, &PADRH);
         sleep(HZ/5);
-    }
+    }  
+#endif
 }
 
+#if (CONFIG_HWCODEC == MAS3587F) || (CONFIG_HWCODEC == MAS3539F)
 int mas_direct_config_read(unsigned char reg)
 {
     int ret = 0;
diff --git a/firmware/mp3_playback.c b/firmware/mp3_playback.c
index a7284ae..cc02505 100644
--- a/firmware/mp3_playback.c
+++ b/firmware/mp3_playback.c
@@ -938,7 +938,9 @@
     or_b(0x01, &PBIORH); /* output for PB8 */
 #endif
 
-#if CONFIG_HWCODEC == MAS3587F
+#if CONFIG_HWCODEC == MAS3507D
+    mas_reset();
+#elif CONFIG_HWCODEC == MAS3587F
     or_b(0x08, &PAIORH); /* output for /PR */
     init_playback();