gerrit | 30 Jan 20:16 2015

CPUFreq scaling governor interface for Linux/Android hosted devices.

commit a312ca1c5002f70c7e8cf9fcb802bbf7689dfca2
Author: Udo Schläpfer <rockbox-2014.10 <at>>
Date:   Wed Jan 21 20:35:03 2015 +0100

    CPUFreq scaling governor interface for Linux/Android hosted devices.

    For a usage example see

    Change-Id: I1d61e0eba6552a9b5d6e15a2e3169435b2f7079d

diff --git a/firmware/SOURCES b/firmware/SOURCES
index cf8a59b..999d920 100644
--- a/firmware/SOURCES
+++ b/firmware/SOURCES
 <at>  <at>  -12,6 +12,7  <at>  <at>  powermgmt.c

 #ifdef __linux__

 #if !defined(SAMSUNG_YPR0) || defined(SIMULATOR) /* uses as3514 rtc */
diff --git a/firmware/target/hosted/cpufreq-linux.c b/firmware/target/hosted/cpufreq-linux.c
new file mode 100644
index 0000000..55a0bf3
--- /dev/null
+++ b/firmware/target/hosted/cpufreq-linux.c
 <at>  <at>  -0,0 +1,151  <at>  <at> 
+ *             __________               __   ___
(Continue reading)

gerrit | 30 Jan 20:15 2015

iBasso DX50/DX90: CPU info enhancements.

commit 6d3dc8fce0401da24ad45593e4eb9a68e2cde297
Author: Udo Schläpfer <rockbox-2014.10 <at>>
Date:   Sat Dec 13 20:45:03 2014 +0100

    iBasso DX50/DX90: CPU info enhancements.

    System -> Debug (Keep Out) -> View CPU stats

    Will now show the current cpufreq scaling governor, minimum, current and
    maximum cpufreq scaling frequency for each CPU.

    This may be genric for Android kernel based devices but is only enabled
    for iBasso Devices. Other maintainers may choose do adopt this.

    Change-Id: I53e212f8707bf2abaa557e297293fb559ac37058

diff --git a/apps/debug_menu.c b/apps/debug_menu.c
index 75e23b3..e602b71 100644
--- a/apps/debug_menu.c
+++ b/apps/debug_menu.c
 <at>  <at>  -244,6 +244,23  <at>  <at>  static const char* get_cpuinfo(int selected_item, void *data,
             int cpu = (selected_item - 5) / (state_count + 1);
             int cpu_line = (selected_item - 5) % (state_count + 1);
+#if defined(DX50) || defined(DX90)
+            int min_freq = min_scaling_frequency(cpu);
+            int cur_freq = current_scaling_frequency(cpu);
+            int max_freq = max_scaling_frequency(cpu);
+            char governor[20];
+            bool have_governor = current_scaling_governor(cpu, governor, sizeof(governor));
(Continue reading)

gerrit | 30 Jan 20:06 2015

fix surround & pbe dsp crash

commit 572b36a51a7796e88c11cf0658ced40c1a6efece
Author: Chiwen Chang < <at>>
Date:   Wed Jan 28 17:30:54 2015 +1100

    fix surround & pbe dsp crash

    check handle before clean up buffer in flush().

    Change-Id: I36a130c45c9f5dce97aa723ef98922b6935ead75

diff --git a/lib/rbcodec/dsp/pbe.c b/lib/rbcodec/dsp/pbe.c
index 28cdbb2..3656f68 100644
--- a/lib/rbcodec/dsp/pbe.c
+++ b/lib/rbcodec/dsp/pbe.c
 <at>  <at>  -80,7 +80,8  <at>  <at>  static void dsp_pbe_flush(void)
         return; /* Not currently enabled */

     unsigned int total_len = (B0_SIZE + B2_SIZE + B3_SIZE) * 2;
-    memset(core_get_data(handle),0,sizeof(int32_t) * total_len);
+    if (handle > 0)
+        memset(core_get_data(handle),0,sizeof(int32_t) * total_len);
     b0_r[0] = 0; b0_w[0] = 0;
     b0_r[1] = 0; b0_w[1] = 0;
     b2_r[0] = 0; b2_w[0] = 0;
diff --git a/lib/rbcodec/dsp/surround.c b/lib/rbcodec/dsp/surround.c
index 26d12b1..b2995de 100644
--- a/lib/rbcodec/dsp/surround.c
+++ b/lib/rbcodec/dsp/surround.c
 <at>  <at>  -97,7 +97,8  <at>  <at>  static void dsp_surround_flush(void)
(Continue reading)

gerrit | 29 Jan 20:29 2015

ypr0/ypr1: GPIO handling API refactoring

commit f35d63bc216e59ba1eecfb138e23915521716128
Author: Lorenzo Miori <memoryS60 <at>>
Date:   Sun Jan 4 15:13:41 2015 +0100

    ypr0/ypr1: GPIO handling API refactoring

    The GPIO APIs for ypr0 and ypr1 targets was messy, requiring a
    direct communication via several ioctls calls.
    Since it is planned to add support to other devices, more GPIO are
    going to be used. For that reason the functions shall be clear and
    easy to use.

    Change-Id: Ia2304335e1fed1305cc2c4320bd4c097e13079be

diff --git a/firmware/target/hosted/samsungypr/gpio-ypr.c b/firmware/target/hosted/samsungypr/gpio-ypr.c
index e5abc4c..d6a19da 100644
--- a/firmware/target/hosted/samsungypr/gpio-ypr.c
+++ b/firmware/target/hosted/samsungypr/gpio-ypr.c
 <at>  <at>  -8,7 +8,7  <at>  <at> 
  * Module wrapper for GPIO, using kernel module of Samsung YP-R0/YP-R1
- * Copyright (c) 2011 Lorenzo Miori
+ * Copyright (c) 2011-2015 Lorenzo Miori
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
 <at>  <at>  -23,16 +23,42  <at>  <at> 
 #include <stdio.h>
 #include <unistd.h>
(Continue reading)

gerrit | 29 Jan 20:28 2015

yp-r0: improve the charging code

commit 6879dec6ece3c0797c5df16c9dd494b3dc3a1329
Author: Lorenzo Miori <memoryS60 <at>>
Date:   Sat Jan 4 22:23:34 2014 +0100

    yp-r0: improve the charging code

    Some people reported strange charging times and
    strange battery life.
    Charging by OF: 25 hours; RB: 18 hours
    It has been found that there are at least two issues here:

    1) the way of getting battery charging status wasn't
    really accurate. This attempts to fix that issue.
    This patch also simplifies some code (opening a
    device is no more needed, for example).

    To technically explain, battery charging implies first a constant
    current mode (where the voltage increases) and then a constant
    voltage mode (where, obviously, the voltage reads more or less
    the same). The old way the End Of Charge was detected was based solely
    on the voltage, while now it is based on chip's EOC interrupt,
    which should be more accurate.

    2) OF explicitly sets a constant current 350 mA, while we usually had
    55 mA (by as3543 default).
    This wasn't discovered before since there is a caching problem
    ("an accurate guess") in the Samsung power mgmt Linux module,
    thus its debugging dumper wasn't really working, reporting a 55 mA current.
    Strangely this option should have been set by the bootloader
    but apparently it does not.
(Continue reading)

gerrit | 23 Jan 11:04 2015

atj213x: Fix DMAC block in description file

commit f65baf9b0f385bc479de9ab2eb92aab23167eba8
Author: Marcin Bukat <marcin.bukat <at>>
Date:   Fri Jan 23 11:03:49 2015 +0100

    atj213x: Fix DMAC block in description file

    Change-Id: I4afc17b06f85d552248c0248e6b4b921ffc1e7a7

diff --git a/utils/regtools/desc/regs-atj213x.xml b/utils/regtools/desc/regs-atj213x.xml
index 6a7831a..cca7db9 100644
--- a/utils/regtools/desc/regs-atj213x.xml
+++ b/utils/regtools/desc/regs-atj213x.xml
 <at>  <at>  -235,14 +235,15  <at>  <at> 
       <addr name="IRQPD" addr="0x8"/>
     <reg name="DMA_MODE" desc="">
-      <addr name="DMA0_MODE" addr="0x100"/>
-      <addr name="DMA1_MODE" addr="0x200"/>
-      <addr name="DMA2_MODE" addr="0x300"/>
-      <addr name="DMA3_MODE" addr="0x400"/>
-      <addr name="DMA4_MODE" addr="0x500"/>
-      <addr name="DMA5_MODE" addr="0x600"/>
-      <addr name="DMA6_MODE" addr="0x700"/>
-      <addr name="DMA7_MODE" addr="0x800"/>
+      <formula string="0x100+n*0x20"/>
+      <addr name="DMA_MODE0" addr="0x100"/>
+      <addr name="DMA_MODE1" addr="0x120"/>
+      <addr name="DMA_MODE2" addr="0x140"/>
+      <addr name="DMA_MODE3" addr="0x160"/>
+      <addr name="DMA_MODE4" addr="0x180"/>
(Continue reading)

gerrit | 22 Jan 13:38 2015

atj213x: fix desc file errors

commit 15d4be5e9f8919b55ba5f9df548b4336a06cc433
Author: Marcin Bukat <marcin.bukat <at>>
Date:   Thu Jan 22 13:33:35 2015 +0100

    atj213x: fix desc file errors

    Catched by swiss_knife check there are some overlaping fields
    and invalid characters in some names.

    Change-Id: Ia26ffd2e29452f4ddd9f8229f78bb2a2cc325ab4

diff --git a/utils/regtools/desc/regs-atj213x.xml b/utils/regtools/desc/regs-atj213x.xml
index 27b348f..6a7831a 100644
--- a/utils/regtools/desc/regs-atj213x.xml
+++ b/utils/regtools/desc/regs-atj213x.xml
 <at>  <at>  -42,7 +42,7  <at>  <at> 
       <addr name="FIFOCTL" addr="0x2c"/>
     <reg name="FIFOCFG" desc="">
-      <addr name="FIFOCTL" addr="0x30"/>
+      <addr name="FIFOCFG" addr="0x30"/>
     <reg name="ADDRDEC" desc="">
       <addr name="ADDRDEC" addr="0x34"/>
 <at>  <at>  -102,7 +102,7  <at>  <at> 
       <field name="SIRE" desc="SIRQ Wakeup Enable" bitrange="29:29"/>
       <field name="RESERVED28" desc="" bitrange="28:28"/>
       <field name="USBE" desc="Usb Wakeup Enable" bitrange="27:27"/>
-      <field name="RESERVED26:12" desc="" bitrange="26:12"/>
+      <field name="RESERVED26_12" desc="" bitrange="26:12"/>
(Continue reading)

gerrit | 22 Jan 06:14 2015

Fix some language in the sound settings manual.

commit 716fea805f536dc3f5169abb4bf9bd1defe4b7cc
Author: Michael Giacomelli <giac2000 <at>>
Date:   Thu Jan 22 06:12:45 2015 +0100

    Fix some language in the sound settings manual.

    Change-Id: Ia487a903a221dda6cb81cf409cd18d1fb6522123

diff --git a/manual/configure_rockbox/sound_settings.tex b/manual/configure_rockbox/sound_settings.tex
index 3fe7efb..3ac346d 100644
--- a/manual/configure_rockbox/sound_settings.tex
+++ b/manual/configure_rockbox/sound_settings.tex
 <at>  <at>  -592,29 +592,32  <at>  <at>  details about how to use the feature.

 \section{Haas Surround}
-This setting does Haas effect with adjustable delay time to enhance the stereo stage
-of the sound. A full range haas effect may sounds like everything starts from left channel ends at right.
-Therefore, four additional functions are provided to move the stage back to the center:
-First is a \setting{Balance} setting for change left-right channel output ratio.  Second
-is a bypass band for frequency mostly contain vocals, using \setting{f(x1)}, \setting{f(x2)} to
reserved the
-frequncy range. The \setting{SIDE ONLY} setting uses mid-side
-processing to determine and apply effect to side only. And finally, a \setting{Dry/Wet Mix}
-to adjust the proportion of mix between the original (dry) and 'effected' (wet) signals.
+This setting implements the Haas effect with adjustable delay time to enhance 
+the stereo effect of the sound. A full range Haas effect creates the impression
+that sound  starts from one channel and ends in the other.  Therefore, four additional 
+functions are provided to move the stage back to the center:
+\setting{Balance} to change the left-right channel output ratio.  
(Continue reading)

gerrit | 22 Jan 05:38 2015

fix pbe/haas surround dsps: surround_enabled, redo flush functions.

commit 30784cc262a4ee34f73c25704e19905c1be9998e
Author: Chiwen Chang < <at>>
Date:   Thu Jan 22 13:24:15 2015 +1100

    fix pbe/haas surround dsps: surround_enabled, redo flush functions.

    surround_enabled was never true, end up dsp_surround_flush didn't work; Thats why a cracking noise
occurs in right channel when moving track positions.

    redo pbe/surround flush in a much simpler way suits the current single buffer style.

    Change-Id: I394054ddfb164b82c90b3dcf49df4442db87d8d2

diff --git a/lib/rbcodec/dsp/pbe.c b/lib/rbcodec/dsp/pbe.c
index 4966588..28cdbb2 100644
--- a/lib/rbcodec/dsp/pbe.c
+++ b/lib/rbcodec/dsp/pbe.c
 <at>  <at>  -79,20 +79,14  <at>  <at>  static void dsp_pbe_flush(void)
     if (pbe_strength == 0)
         return; /* Not currently enabled */

-    pbe_buffer_get_data();
-    memset(b0[0], 0, B0_DLY * sizeof(int32_t));
-    memset(b0[1], 0, B0_DLY * sizeof(int32_t));
-    memset(b2[0], 0, B2_DLY * sizeof(int32_t));
-    memset(b2[1], 0, B2_DLY * sizeof(int32_t));
-    memset(b3[0], 0, B3_DLY * sizeof(int32_t));
-    memset(b3[1], 0, B3_DLY * sizeof(int32_t));
-    b0_r[0] = 0; b0_w[0] = B0_DLY;
(Continue reading)

gerrit | 20 Jan 10:21 2015

Fix typo in zxbox.tex that broke the manual builds for some targets

commit 5732e3e32d5b707b75aea494a49f7947d2e963a1
Author: Frank Gevaerts <frank <at>>
Date:   Tue Jan 20 10:20:38 2015 +0100

    Fix typo in zxbox.tex that broke the manual builds for some targets

    Change-Id: I38e5ba2a99c807e6d24f39e9e75ad3df39cc0bf1

diff --git a/manual/plugins/zxbox.tex b/manual/plugins/zxbox.tex
index 079147c..5f20d95 100644
--- a/manual/plugins/zxbox.tex
+++ b/manual/plugins/zxbox.tex
 <at>  <at>  -14,7 +14,7  <at>  <at>  including an additional but fixed menu button, are assigned as follows:

rockbox-cvs mailing list
rockbox-cvs <at>
gerrit | 19 Jan 22:38 2015

Bypass the AS3543 audio mixer at higher volumes.

commit 42219b6e797791e2c037c41393a87513973e4588
Author: Mihail Zenkov <mihail.zenkov <at>>
Date:   Sun Dec 28 20:30:33 2014 +0100

    Bypass the AS3543 audio mixer at higher volumes.

    This change reduces noise and distortion very slightly at higher volumes.

    Change-Id: I1a2eb160c2956de90764c0bb11677fdac8d96dec

diff --git a/firmware/drivers/audio/as3514.c b/firmware/drivers/audio/as3514.c
index d8572df..6cad825 100644
--- a/firmware/drivers/audio/as3514.c
+++ b/firmware/drivers/audio/as3514.c
 <at>  <at>  -131,8 +131,8  <at>  <at>  void audiohw_preinit(void)

 #ifdef HAVE_AS3543

-    as3514_write(AS3514_AUDIOSET1, AUDIOSET1_DAC_on | AUDIOSET1_DAC_GAIN_on);
+    as3514_write(AS3514_AUDIOSET1, AUDIOSET1_DAC_on);
     /* common ground on, delay playback unmuting when inserting headphones */

 <at>  <at>  -144,8 +144,8  <at>  <at>  void audiohw_preinit(void)
     /* Select Line 2 for FM radio */
     as3514_set(AS3514_LINE_IN1_R, LINE_IN_R_LINE_SELECT);
-    /* Output SUM of microphone/line/DAC */
(Continue reading)