dev builds
themes manual
device status forums
mailing lists
IRC bugs
dev guide

12th Feb 20:56 8ff1b6b: Remove FF_CREAT and FF_EXCL flags in from file code.

These flags aren't stored for an open file because they're simply actions for open() to take, corresponding to O_CREAT and O_EXCL. Just pass the oflag argument along to the deeper call, with some minor filtering.
firmware/common/file.c [diff]
firmware/include/file_internal.h [diff]
Michael Sevakis
12th Feb 06:13 dc22522: Tweak a few tagcache things.

* Take out pointless dircache_search; nothing can be reconstructed with the given info in find_entry_ram(); don't even try there. Path AND index id must be known. Work it out later.

* Timed yield must be far more often than once every 1/4 second (?!)

* Do better the memory-remaining checks for ramcache load.

* Root separator mustn't be doubled up when searching files.
apps/tagcache.c [diff]
Michael Sevakis
12th Feb 19:28 0a9f717: xworld: fix several horrendous bugs

- unregisters timer on exit, preventing possible crash
- disables synchronization mechanisms when used from an IRQ
- prevents memory allocations from overflowing the audio buffer (unlikely)
apps/plugins/xworld/sys.c [diff]
Franklin Wei
12th Feb 19:26 e4a04fa: xworld: get rid of annoying warning
apps/plugins/xworld/engine.c [diff]
Franklin Wei
11th Feb 23:15 eaf6aad: Forgot to remove unused RDS buffers from the ipod remote tuner.

Also, use rds_reset() now to clear data on station change since the rds driver internal buffers are used.
firmware/drivers/tuner/ipod_remote_tuner.c [diff]
Michael Sevakis
11th Feb 22:16 523ef4e: Fix warnings and errors from fc9695e

* fmradio.c needs an implementation of tuner_get_rds_info() for the sim (kill all the sims).

* Some macro bitflags shouldn't be seen unless HAVE_RDS_CAP is defined.
firmware/drivers/tuner/si4700.c [diff]
uisimulator/common/fmradio.c [diff]
Michael Sevakis
30th Jan 08:52 fc9695e: Improve radio RDS driver and framework

* Remove unused bits like the radio event and simplify basic radio interface. It can be more self-contained with rds.h only required by radio and tuner code.

* Add post-processing to text a-la Silicon Labs AN243. The chip's error correction can only do so much; additional checks are highly recommended. Simply testing for two identical messages in a row is extremely effective and I've never seen corrupted text since doing that, even with mediocre reception.

Groups segments must arrive in order, not randomly; logic change only accepts them in order, starting at 0.

Time readout was made a bit better but really we'd need to use verbose mode and ensure that no errors were seen during receiving of time and more checks would be need to have a stable PI. The text is the important bit anyway.

* Time out of stale text.

* Text is no longer updated until a complete group has been received, as is specified in the standard. Perhaps go back to scrolling text lines in the radio screen?

* Add proper character conversion to UTF-8. Only the default G0 table for the moment. The other two could be added in.

* Add variants "RDS_CFG_PROCESS" and "RDS_CFG_PUSH" to allow the option for processed RDS data to be pushed to the driver and still do proper post-processing (only text conversion for now for the latter).
apps/debug_menu.c [diff]
apps/gui/skin_engine/skin_tokens.c [diff]
apps/radio/radio.c [diff]
firmware/drivers/rds.c [diff]
firmware/drivers/tuner/ipod_remote_tuner.c [diff]
firmware/drivers/tuner/si4700.c [diff]
firmware/export/config.h [diff]
firmware/export/config/gigabeats.h [diff]
firmware/export/config/ipod4g.h [diff]
firmware/export/config/ipod6g.h [diff]
firmware/export/config/ipodcolor.h [diff]
firmware/export/config/ipodmini1g.h [diff]
firmware/export/config/ipodmini2g.h [diff]
firmware/export/config/ipodnano1g.h [diff]
firmware/export/config/ipodnano2g.h [diff]
firmware/export/config/ipodvideo.h [diff]
firmware/export/ipod_remote_tuner.h [diff]
firmware/export/rds.h [diff]
firmware/export/si4700.h [diff]
firmware/export/tuner.h [diff]
firmware/target/arm/as3525/fmradio-i2c-as3525.c [diff]
firmware/target/arm/imx233/sansa-fuzeplus/fmradio-i2c-fuzeplus.c [diff]
firmware/target/arm/imx31/gigabeat-s/fmradio-i2c-gigabeat-s.c [diff]
firmware/target/hosted/samsungypr/radio-ypr.c [diff]
firmware/tuner.c [diff]
Michael Sevakis
10th Feb 19:10 6436c6e: Fix tagtree from blowing up when its buffer moves

I noticed that after booting with the external storage removed, playing from tagtree, inserting the card, forcing dircache to reallocate from the debug screen, and trying to reenter tagtree, it would data abort because the dircache reallaction to a larger size caused the tagtree buffer to move.

Adjustment to at least one pointer (csi) was missed. Since it's non-trivial there to determine when things should be NULL and when they shouldn't, add check for menu too before moving it. As for the rest, who knows.
apps/tagtree.c [diff]
Michael Sevakis
10th Feb 16:11 f483a07: puzzles: fix makefile producing temporary files in the build directory (sorry!)

- thanks to Michael Sevakis for catching this
apps/plugins/puzzles/puzzles.make [diff]
Franklin Wei
10th Feb 04:44 a4dc244: Fix warnings and errors from 7373cf5

dircache.h has to be included no matter what.
apps/tagcache.c [diff]
Michael Sevakis
18th Jan 03:39 7373cf5: Restore dircache hookup in the database ramcache.

Do a few other changes to dircache and file code flags to accomodate its demands.
apps/playlist.c [diff]
apps/tagcache.c [diff]
firmware/common/dir.c [diff]
firmware/common/dircache.c [diff]
firmware/common/file.c [diff]
firmware/common/file_internal.c [diff]
firmware/include/dircache.h [diff]
firmware/include/file_internal.h [diff]
Michael Sevakis
9th Feb 21:34 abd75a1: puzzles: fix up makefile
- rewrote a bunch of repetitive rules with a pattern rule
apps/plugins/puzzles/puzzles.make [diff]
Franklin Wei
2016-02-05 882921e: ipod6g: bootloader v1

- dual boot
- USB mode
- battery trap
bootloader/SOURCES [diff]
bootloader/ipod6g.c [new]
firmware/SOURCES [diff]
firmware/export/config.h [diff]
firmware/export/config/ipod6g.h [diff]
firmware/target/arm/s5l8702/ [diff]
firmware/target/arm/s5l8702/crt0.S [diff]
Cástor Muñoz
7th Feb 18:25 0d0b163: Slightly increase CVDD1 for Clip Zip
firmware/target/arm/as3525/system-as3525.c [diff]
Mihail Zenkov
7th Feb 01:45 e5042fd: Add some comments about the behavior of a couple path functions.

Critical reminders about the reasons path_dirname() and path_basename() do certain things with a given kind of input and how to interpret them.
firmware/common/pathfuncs.c [diff]
Michael Sevakis
6th Feb 02:20 72dc239: Make sure dircache resolves outstanding references on volume root.

If a volume root was open at the beginning of a build, its dircache reference wouldn't be resolved on an already open volume root directory because the call to do it was simply omitted. Nothing horribly bad unless a root were opened at mount time and kept open long term.
firmware/common/dircache.c [diff]
Michael Sevakis
6th Feb 01:25 29c493d: Fix a bug in disk.c that really wasn't affecting anything.

volume_onmount_internal() was being given the next volume to mount instead of the one just mounted. Only dircache was being notified for now, which always attempts to scan everything that needs to be rebuilt, currently making the volume parameter value immaterial.

Put things in the right place and also set the disk sector multiplier before notifying anybody of the new volume.
firmware/common/disk.c [diff]
Michael Sevakis
15th Jan 23:10 d787191: Fix dangerous casts

On Windows 64-bit, the size of long is 32-bit, thus any pointer to long cast is not valid. In any case, one should use intptr_t and ptrdiff_t when casting to integers. This commit attempts to fix all instances reported by GCC. When relevant, I replaced code by the macros PTR_ADD, ALIGN_UP from system.h
apps/gui/skin_engine/skin_parser.c [diff]
apps/misc.c [diff]
apps/plugins/doom/d_deh.c [diff]
apps/plugins/doom/d_main.c [diff]
apps/plugins/doom/p_saveg.c [diff]
apps/plugins/doom/z_zone.c [diff]
apps/plugins/goban/util.c [diff]
apps/plugins/lib/simple_viewer.c [diff]
apps/plugins/lib/strncpy.c [diff]
apps/plugins/lrcplayer.c [diff]
apps/plugins/mikmod/mikmod_internals.h [diff]
apps/plugins/solitaire.c [diff]
apps/plugins/zxbox/snapshot.c [diff]
apps/plugins/zxbox/tapefile.c [diff]
apps/plugins/zxbox/z80.c [diff]
apps/recorder/keyboard.c [diff]
apps/tagcache.c [diff]
firmware/asm/memset16.c [diff]
firmware/drivers/lcd-16bit-common.c [diff]
firmware/drivers/lcd-16bit.c [diff]
firmware/drivers/lcd-color-common.c [diff]
firmware/kernel/queue.c [diff]
firmware/target/hosted/filesystem-win32.c [diff]
lib/rbcodec/codecs/liba52/bitstream.c [diff]
lib/rbcodec/codecs/libtremor/codebook.c [diff]
lib/rbcodec/metadata/id3tags.c [diff]
lib/tlsf/src/tlsf.c [diff]
Amaury Pouly
14th Jan 00:40 1245c5f: Implement speaker enable/disable on jack (un)plug

The implementation is not very complicated but there are a few things worth noting. There was a previous "speaker enable" setting but it was a boolean. I decided to replace it with a choice setting that has 2 options (on, off) if headphones cannot be detect on this target, or 3 options (on, off, auto) if we can detect headphones. This will break the old setting on target that cannot detect jack but it makes the code more uniform and avoid maintaining two settings with more #ifdef. The third option (auto) uses the LANG_AUTO text, which I think is clear enough (disable speaker on jack plug). In order to avoid code duplication (both in apps and firmware), I decided to keep the audiohw_enable_speaker function as-is: it takes a boolean and doesn't care about the speaker policy. I introduced a new audio_enable_speaker that takes directly the mode (which follows the setting encoding): 0=off, 1=on and 2=auto. This way one calls audio_enable_speaker and it changes the speaker once to reflect the request mode. The apps code then uses this function in the places where it makes sense: on setting load, setting change and jack (un)plug event.
apps/audio_path.c [diff]
apps/menus/sound_menu.c [diff]
apps/misc.c [diff]
apps/plugin.h [diff]
apps/recorder/recording.c [diff]
apps/settings.c [diff]
apps/settings.h [diff]
apps/settings_list.c [diff]
firmware/export/audio.h [diff]
Amaury Pouly
28th Jan 16:19 d052f13: nwztools/script: fix to handle ext4
utils/nwztools/scripts/ [diff]
Amaury Pouly
27th Jan 17:21 2ea0ccb: regtools/qeditor: replace deprecated QStyleOptionViewItemV4 QStyleOptionViewItem. Yes Qt got it right, in 5.7 they deprecated QStyleOptionViewItemV4 and recommend using QStyleOptionViewItem which contains less fields except on newer Qt where it contains all fields. Hopefully it still works on Qt>4.x for a large enough value of x.
utils/regtools/qeditor/utils.cpp [diff]
utils/regtools/qeditor/utils.h [diff]
Amaury Pouly
26th Jan 20:54 2a3a6bb: regtools/qeditor: compute RAM size
utils/regtools/qeditor/std_analysers.cpp [diff]
utils/regtools/qeditor/std_analysers.h [diff]
Amaury Pouly
26th Jan 20:31 fa5324b: regtools/qeditor: enable imx233 analysers for imx233

The clock structure is identical, and the EMI are the same. Also fix SSP clock, it was broken on imx233 as well.
utils/regtools/qeditor/std_analysers.cpp [diff]
Amaury Pouly
26th Jan 20:30 fafb770: regtools/soc_desc: fix bug in library

Because a node ref is at root doesn't make it valid, check that soc is valid otherwise we return garbage.
utils/regtools/lib/soc_desc.cpp [diff]
Amaury Pouly
26th Jan 14:26 6f0f119: regtools: add new tool list/find/describe registers
utils/regtools/Makefile [diff]
utils/regtools/regtool.cpp [new]
Amaury Pouly
25th Jan 13:33 c156c5f: zen/zenxfi: adjust maximum emi voltage

Running at 130MHz is unsafe since on those targets, we disable memory frequency scaling because it is unstable. That leads to situation where cpu is running at 64MHz and VDD is at 1.050V. But on STMP3700, the EMI uses the VDD rail instead of a dedicated VDDMEM rail as on STMP3780. Thus we are essentially running the EMI at 130MHz at 1.050V when the minimum recommened voltage is 1.2V. This commit runs the EMI at 64MHz all the time on the ZEN and ZEN X-Fi which will lead to reduce performance but hopefully increases stability.
firmware/target/arm/imx233/system-imx233.c [diff]
Amaury Pouly
25th Jan 11:07 baec807: zenmozaic: adjust button voltage

The values were recorded for VDDIO at 3.46V and not 3.5
firmware/target/arm/imx233/creative-zen/button-zen.c [diff]
Amaury Pouly
25th Jan 11:06 501e8a7: imx233: remove weak attribute on some functions

This feature was never used and it is not even working because weak linking doesn't work in-between files in a library.
firmware/target/arm/imx233/audio-imx233.c [diff]
firmware/target/arm/imx233/audio-imx233.h [diff]
firmware/target/arm/imx233/button-imx233.c [diff]
firmware/target/arm/imx233/button-imx233.h [diff]
Amaury Pouly
4th Feb 15:30 96a7603: nano2g: fix dangerous mutex in hold switch

This is a quick patch to solve FS #13104, we can not disable the clickwheel LDO from within interrupt code, so for the moment we leave it enabled all the time, it is unknown how power comsumption is affected when the hold switch is locked.
firmware/target/arm/ipod/button-clickwheel.c [diff]
Cástor Muñoz
25th Jan 18:34 248bff5: Improve code for gmtime_r()

Unlike the current code, it does no looping to count days or do table lookups, which means running time doesn't increase with year or month. A good thing if it's call a lot, especially if the algorithm were asked to compute dates centuries or more from the epoch start.

As a bonus, handles negative time values.
firmware/libc/gmtime.c [diff]
Michael Sevakis
2nd Feb 15:06 4d4b0c5: In queue_wait_w_tmo, guarantee wait duration

It is possible to have a thread awoken and subsequently the message that was placed in the queue has been removed by the time the thread is able to check the queue. Ensure theads that failed to find a message do not return prematurely.

It was at worst imprecise when a timeout is specified. It's entirely incorrect if the function ever returns with SYS_TIMEOUT when using TIMEOUT_BLOCK.
firmware/kernel/queue.c [diff]
firmware/kernel/thread-internal.h [diff]
Michael Sevakis
31th Jan 03:28 1fa7c56: Fix for Chessbox bug FS #10363

Chessbox was overflowing GameList[240] causing the board to flip + crash

GameCnt changed to unsigned char which allows the array to roll over to 0 after 255

define MAX_GAME_CNT 256 and GameList[MAX_GAME_CNT] along with 1 byte GameCnt should fix this issue

dbg save routine left in for now to help identify any other problems

Added bounds checking to prevent second bug found when loading .pgn files
apps/plugins/chessbox/chessbox.c [diff]
apps/plugins/chessbox/chessbox_pgn.c [diff]
apps/plugins/chessbox/gnuchess.c [diff]
apps/plugins/chessbox/gnuchess.h [diff]
William Wilgus
31th Jan 00:07 37522ec: Remove Whitespaces from chessbox

Remove 1616 Whitespaces from chessbox
apps/plugins/chessbox/chessbox.c [diff]
apps/plugins/chessbox/chessbox_pgn.c [diff]
apps/plugins/chessbox/chessbox_pgn.h [diff]
apps/plugins/chessbox/gnuchess.c [diff]
apps/plugins/chessbox/gnuchess.h [diff]
apps/plugins/chessbox/opening.c [diff]
William Wilgus
29th Jan 18:50 324ad24: i.MX31: Restore screen clearing in DVFS/DPTC debug screen

Somewhere along the line the screen stopped being cleared prior to writing new text on each frame, which left visible bits of previously-displayed text when it changed.
firmware/target/arm/imx31/debug-imx31.c [diff]
Michael Sevakis

Page was last modified "Oct 24 2016" The Rockbox Crew