summaryrefslogtreecommitdiff
path: root/firmware
AgeCommit message (Collapse)Author
2018-07-26Optimize lcd-ssd1303 driver (clip series)William Wilgus
Saves 100+ bytes (50 of it in iram), saves a bit of power Internal LCD clock decreased but with added efficiency of drawing routines loses only around 2 Hz on the scanrate (~75Hz) while fps is slightly increased Column offsets are now calculated outside the loops saving a few instructions Passing a LCD_NOP command after lcd_update turns off Data/Cmd# gpio saving a bit more power Added a function lcd_write_cmd_triple() that allows 3 commands to be sent at once when enabled with LCD_USE_FIFO_FOR_COMMANDS it sends them back to back without checking FIFO status in between or sending to thhe D/C# Gpio. Makes an assumption about the FIFO being large enough to accept 3 commands after being emptied which should be the case on the clipv1, clipv2, clipplus. I have only enabled it for the clip plus as thats the only device I have to test it on. On clip+ the SSP clock is now turned off when screen is off Change-Id: Ib5fd24697bfe4ac8b8ee017361e789e4a7910d21
2018-07-26Update AS3525 v1/v2 debug menu; add scrolling and missing frequenciesWilliam Wilgus
On the clip zip most debug menu items get cut off and there is no way to read most of the debug menu items. This patch makes the menu button scroll the text 1 character to the right with each press and the center (select) button re-aligns the text Adds SSP frequency(v2) & register Adds SD slot frequency(v2) Change-Id: If4705d6790e25061931ca654062e22fc2e0a6f16
2018-07-25Fix lcd-scroll.c truncation warningsWilliam Wilgus
Change-Id: I312ec7ad06fde5b2f9747661cd2d4ffcb4cbf755
2018-07-25Revert "Ignore truncation in lcd-scroll.c"William Wilgus
This reverts commit 540637ed3334364fe9d1b54cdc96a52f59afda83. Change-Id: I88e71ef47a11818a5acb407ff9c0723d3c197243
2018-07-25Ignore truncation in lcd-scroll.cWilliam Wilgus
Change-Id: Id1008300e58cf12ab920c1023354a74a6d32daae
2018-07-25AMS v1/v2: Fix I2C2_CSPR debug menu entryWilliam Wilgus
I2c controller needs to be enabled in order to read CSPR0, CSPR1 registers function sets CGU_I2C_AUDIO_MASTER_CLOCK_ENABLE and only clears if it wasn't previously enabled Use divider set in register to calculate frequency rather than hard coded divider Change-Id: I54ecc0c1859e906c00f4c2ae8ae2424a4619df98
2018-07-25CLIPPLUS -- Remove un-needed handling for power button button ↵William Wilgus
button_read_device() switching GPIOB in order to read GPIOD96) (power button) is apparently unneeded Change-Id: I1fbf13f67f938806086754cdd5e389ef6746ae5f
2018-07-04AMS v1/v2: Remove sd_enabled as an externally-visible variable.Michael Sevakis
Also removes the sd_enable() function call. It was only used in the debug screen on AMSv1 and not used at all on AMS v2. For v1,obtain debug info in a struture passed to a dedicated debug info function so that enabling and disabling the controller isn't racy. Change-Id: I7c44693bc2df5a1f16168b05b3abfe622f9584ce
2018-06-28Agptek: Fix headphones detectionMarcin Bukat
Change-Id: Id43bfee7357eef8dda6a617c1207b930f3ea90a0
2018-06-28Agptek: Fix support for empty strings in sysfs helper functionsMarcin Bukat
Change-Id: Id5573059da2b454f5336b3cebce7c09a83a7826f
2018-06-20Agptek Rocker: Add missing lcd_set_active(true) in lcd_init_device()Marcin Bukat
This should fix problem introduced in 5c015ad resulting in not updating screen properly in wps. Change-Id: Ie36b6edfcfc7d425c84381402adae79d77fcc92f
2018-06-14Agptek Rocker: Slightly tweak build procedureMarcin Bukat
In bootloader build create stripped binary bootloader.rocker Change-Id: Id67bebe82251fac22ad905ad3d49525691816746
2018-06-14Agptek Rocker: Implement lcd_enable()Marcin Bukat
In theory this should slightly improve battery life. Change-Id: Iaf55beb7dbc20e7562017958aeb0386459d49a31
2018-06-12Add XRGB8888 native formatMarcin Bukat
This got lost somehow during Agptek port merge Change-Id: Ie84463ba523d2307466b49354867117e7393a440
2018-06-12Silence warningsMarcin Bukat
Change-Id: Ied5ad7d3c193427892b681f95b44fcac5af0e16e
2018-06-12Cleanup commentMarcin Bukat
Change-Id: If39a5d2f64a9453a9b9b0cf0a2e3ad36027978ff
2018-06-12Fix merge errors which broke sony linux targetsMarcin Bukat
Change-Id: Ic0c618c6e2034609d1964bb3e9ff96c7a7cf1d40
2018-06-12Fix MIPS threading code to compile with older compilerMarcin Bukat
Official rockbox mips gcc is old and doesn't support symbolic register names in inline assembly Change-Id: If67230d06e28ccf31b0f8f8e1b622275fed3f6ff
2018-06-12Fix merge errorMarcin Bukat
Change-Id: If1b5258bb86e477ac4cb1adb95f6c887a2ef8810
2018-06-12Fix ipod classic buildMarcin Bukat
Change-Id: I55a2849bd1a22b40c0f75dcaeac481866f7dbf61
2018-06-12Agptek Rocker: Callibrate power discharge/charge curveMarcin Bukat
Thanks 'elakir' and 'pechenyh' rockbox forum users for performing battery bench. Change-Id: I25d350deaa805a9ecdc236f81f0ad127a169de52
2018-06-12Agptek Rocker: Fix saving time in hwclockMarcin Bukat
Rocker is configured with CST (China Standard Time) timezone which is UTC+8. Time in RTC is stored in UTC. Change-Id: Ib9c03e0f0a1d3ea3a69f238cb083809ea9386e2a
2018-06-12Agptek Rocker: Implement RTC supportMarcin Bukat
Add define in config file to enable RTC support in rockbox, Fix time_menu.c to include radio.h only when tuner is present Implement time setting function on linux (was empty stub) Not tested. Change-Id: I40e6c4a6c1b66ada9cf4e698e502e221d0fc44df
2018-06-12Agptek Rocker: Add bass, treble and balance controlsMarcin Bukat
Change-Id: Ib84620850bbdc81afbdfff1610a0be7eab4f0ac0
2018-06-12Agptek Rocker: Implement USB mass storage driverMarcin Bukat
Agptek uses composite android driver. Change-Id: Iece188ad640f3dfd24c171946c14da4c3516b6d5
2018-06-12Agptek Rocker: Make simulator compile and runMarcin Bukat
There are some things to fix left but at least it starts and you can navigate. Change-Id: I76084bfc50334deeb55f46a10e97b5d6639815ac
2018-06-12Agptek Rocker: Restrict root directory to SD onlyMarcin Bukat
Actual / of underlying linux OS should not be available to user. I am still not sure if implementation is correct. It doesn't perform any relative path sandboxing for example. Change-Id: Ic577a10f3947f6e950e2c4d03173f9f207395eb7
2018-06-12Agptek Rocker: Initial commitMarcin Bukat
Change-Id: I26b51106c7b1c36a603fba6d521e917d79b5a95b
2018-05-25Fuze PLUS Fix lcd_update_rect()William Wilgus
Lcd_update rect was hanging during horizontal screen update x = 238 and width = 2 which was within the bounds of the screen, this seems to be a weird corner case but more testing needs done. Update_rect now properly bounded between 0 - screen w/h --Cleaned up code Pixels in x are now multiples of 4. Datasheet states: ------------------------------------------------------------------------------------------- WORD_LENGTH=0 implies the input frame buffer is RGB 16 bits per pixel. DATA_FORMAT_16_BIT field indicates if the pixels are in RGB 555 or RGB 565 format. Limitations: — BYTE_PACKING_FORMAT [3:0] should be 0x3 or 0xC if there is only one pixel per word. — If there are two pixels per word, BYTE_PACKING_FORMAT [3:0] should be 0xF and H_COUNT will be restricted to be a multiple of 2 pixels. and WORD_LENGTH=3 indicates that the input frame-buffer is RGB 24 bits per pixel (RGB 888). If BYTE_PACKING_FORMAT [3:0] is 0x7, it indicates that there is only one pixel per 32-bit word and there is no restriction on H_COUNT. Limitations: — If BYTE_PACKING_FORMAT [3:0] is 0xF, it indicates that the pixels are packed, i.e. there are 4 pixels in 3 words or 12 bytes. In that case, H_COUNT must be a multiple of 4 pixels. ------------------------------------------------------------------------------------------- We are using 16 bits per pixel and byte_packing = 0xF but device crashes with multiple of 2 pixels Behaviour can be verified with plugin - oscilloscope, Horizontal mode device hangs as indicator reaches right of screen Change-Id: I1445f5334f4e7fe59304c65c76b47d0daa0614b2
2018-05-25Fix Remove lcd_scroll_worker from bootloader except remote displays/charcellWilliam Wilgus
This patch was supposed to only remove scroll worker from devices without remote displays, the build system said otherwise Change-Id: I240db89ee6b55818dbd2567338515b53ebe09300 fixed: conditional define
2018-05-23Remove lcd_scroll_worker from bootloader except remote displays and charcellWilliam Wilgus
Removes unneeded scrolling fuctionality from bootloaders Change-Id: Iebe308144cc11c9139399702e3dcd1a548cb9831
2018-05-23Don't enable full vuprintf file in bootloader. Saves ~2KB packed space when ↵Michael Giacomelli
patching clip+ OF. Change-Id: Ie03714778918bfb4a1087f60534d60ff349a8330
2018-04-20Add battery calibration for Sony NWZ A10.Michael Giacomelli
2018-04-03Zen XFi2: Enable PluginsSebastian Leonhardt
Keymaps aren't tested, there may be room for improvement. Change-Id: I6b8fe697899b241ea6e96f4fe446d88671ad7818
2018-01-14Gigabeat S: Remove unwanted partitions on the flyMichael Sevakis
Windows now ignores the hidden flag, so just nullify the entries to hide depending upon whether or not bootloader install mode is activated. Change-Id: I00d0797e40ea3b5f5d5d8e1243b50cfcdd029bb4
2018-01-13Add information for NWZ-S630 and NWZ-S730Amaury Pouly
Change-Id: I4c48c9a8d862eaf67ec27c1c13b9b7f1fb204fc0
2018-01-07sonynwz: Add NVP information for NWZ-A810Amaury Pouly
Change-Id: I37671ddf15ee1a4b469f97fe06ec86249ff9ce60
2017-12-24Revert "Support floating-point formatting"Franklin Wei
This reverts commit 01c6dcf6c7b9bb1ad2fa0450f99bacc5f3d3e04b. The hack isn't used in duke, so having it is redundant. Change-Id: Ieb36d75718e0c2d1305440d08021744625117886
2017-12-23fix redFranklin Wei
Change-Id: I20f1bd6f0208f6108d68fb59206b09dd9da4f1af
2017-12-23Port of Duke Nukem 3DFranklin Wei
This ports Fabien Sanglard's Chocolate Duke to run on a version of SDL for Rockbox. Change-Id: I8f2c4c78af19de10c1633ed7bb7a997b43256dd9
2017-12-23Support floating-point formattingFranklin Wei
This is just a quick and dirty way to get %f formatting to work for some games. It works. Change-Id: I75585e0c6a0f9d6db41a87b71ca405b067d8b85d
2017-12-23stdio compat layer for pluginsMarcin Bukat
This is attempt to simplify porting programs to rockbox (as plugins). Currently this compat layer implements: fopen(), fclose(), fflush(), fread(), fwrite(), fseek(), fseeko(), ftell(), ftello(), fgetc(), ungetc(), fputc(), fgets(), clearerr(), ferror(), feof(), fprintf() In order to use it you need to include in ported sources "lib/stdio_compat.h" Change-Id: I5add615dd19c5af9c767ccbfb1bd5a4e466741cb
2017-12-12Get voice event out of playback.cMichael Sevakis
Purpose: A step in removing all voice references from playback code and prelude to other changes. Change-Id: Ic3ad7f7a33b979693e18a3456ced37eb1d2281a4
2017-12-09Playback: Move internal track list onto bufferMichael Sevakis
Does away the statically-allocated track list which frees quite a fair amount of in-RAM size. There's no compile-time hard track limit. Recommended TODO (but not right away): Have data small enough use the handle structure as its buffer data area. Almost the entire handle structure is unused for simple allocations without any associated filesystem path. Change-Id: I74a4561e5a837e049811ac421722ec00dadc0d50
2017-11-28Add a small 32-byte write buffer to fdprintf.Michael Sevakis
Avoids a call to write() for every output character. It doesn't need to be very large to have a great effect on speed and realize most of the potential. Change-Id: I11820c1968ed7b20aa00e106a022c1b864b03d21
2017-11-21Convert i.MX31 and AMS target to use RTC interruptMichael Sevakis
Instead of checking ticks, set a sticky dirty flag that indicates that the RTC needs to be read. This gives a timely update and more accurate readout without actually reading the RTC until it changes. The implementation should atomically read the flag and clear it. Setting the flag would typically happen in an RTC tick ISR. Change-Id: I6fd325f22845029a485c502c884812d3676026ea
2017-11-21Undo hacks to meant to get around string formatting limitationsMichael Sevakis
The new vuprintf makes unnecessary workarounds due to formatting limitations. I checked grep output for whatever appeared to fit but it's possible I missed some instances because they weren't so obvious. Also, this means sound settings can dynamically work with any number of decimals rather than the current assumption of one or two. Add an ipow() function to help and take advantage of dynamic field width and precision. Consolidate string formatting of sound settings. Change-Id: I46caf534859dfd1916cd440cd25e5206b192fcd8
2017-11-21Implement a much more capable vuprintf()Michael Sevakis
New support as well as some buggy support fixed. Still no floating point support if ever that would be desired. Support (*): * Flags: '-', '+', ' ', '#', '0' * Width and precision: 'n', '.n', '*' and '.*' * Length modifiers: 'hh', 'h', 'j', 'l', 'll', 't', 'z' * Radix: 'c', 'd', 'i', 'n', 'o', 'p/P', 's', 'u', 'x/X' (*) Provision exists to switch lesser-used stuff on or off or when certain functionality isn't desired (bootloader?). The compulsory radixes are everything but 'o', 'n', 'p/P' and 'x/X' with length modifiers being optional. The default setup is 'l', 'z', 'c', 'd', 'p/P', 's', 'u', 'x/X'. * Move fdprintf() to its own file. It was in a strange place. * Make callers compatible and fix a couple snprintf() bugs while at it. Could smush it down in size but I'm gonna get over the binsize neurosis and just the let optimizer do its thing. Change-Id: Ibdc613a9b6775802c188b29b9dd46c568c94f7c3
2017-11-14nwz: fix tuner on older players (also fixes audio because Sony)Amaury Pouly
Change-Id: I1915bcfc27708d34a9dde81fce1e0bc0b01e1040
2017-11-12Imx233 Disable Autoslow only at maximum cpu frequencyWilliam Wilgus
At normal loads: - disabling auto slow boosts performance at the cost of runtime (~ -5%) - disabling at max cpu does not noticibly decrease runtime Change-Id: I5de80201c9a24ce556862151cbd6b21b01708b63