summaryrefslogtreecommitdiffstats
path: root/firmware/target/arm
AgeCommit message (Collapse)AuthorFilesLines
2020-10-31pcm: Get rid of pcm_play_pause() and associated APIsSolomon Peachy14-167/+1
Nothing in the core has used it for some time. It's exported to the plugin API but the last plugins to use it were switched to the mixer API back in 2011. This allows us to get rid of pcm_play_dma_pause() from all audio drivers Change-Id: Ic3fa02592316f84963e41d792d1cabb436d1ff6b
2020-10-26'Fix RED e200 Framebuffer_viewport_rewriteWilliam Wilgus1-2/+2
Free malloc in checkwps too Change-Id: I2b8fcbc94beb0644b643d3b7a9cb53bc26fc8a51
2020-10-26LCD core move buf ptr and address look up function viewport structWilliam Wilgus3-4/+4
I'm currently running up against the limitations of the lcd_draw functions I want these functions to be able to be used on any size buffer not just buffers with a stride matching the underlying device [DONE] allow the framebuffer to be decoupled from the device framebuffer [DONE need examples] allow for some simple blit like transformations [DONE] remove the device framebuffer from the plugin api [DONE}ditto remote framebuffer [DONE] remove _viewport_get_framebuffer you can call struct *vp = lcd_set_viewport(NULL) and vp->buffer->fb_ptr while remote lcds may compile (and work in the sim) its not been tested on targets [FIXED] backdrops need work to be screen agnostic [FIXED] screen statusbar is not being combined into the main viewport correctly yet [FIXED] screen elements are displayed incorrectly after switch to void* [FIXED] core didn't restore proper viewport on splash etc. [NEEDS TESTING] remote lcd garbled data [FIXED] osd lib garbled screen on bmp_part [FIXED] grey_set_vp needs to return old viewport like lcd_set_viewport [FIXED] Viewport update now handles viewports with differing buffers/strides by copying to the main buffer [FIXED] splash on top of WPS leaves old framebuffer data (doesn't redraw) [UPDATE] refined this a bit more to have clear_viewport set the clean bit and have skin_render do its own screen clear scrolling viewports no longer trigger wps refresh also fixed a bug where guisyncyesno was displaying and then disappearing [ADDED!] New LCD macros that allow you to create properly size frame buffers in you desired size without wasting bytes (LCD_ and LCD_REMOTE_) LCD_STRIDE(w, h) same as STRIDE_MAIN LCD_FBSTRIDE(w, h) returns target specific stride for a buffer W x H LCD_NBELEMS(w, h) returns the number of fb_data sized elemenst needed for a buffer W x H LCD_NATIVE_STRIDE(s) conversion between rockbox native vertical and lcd native stride (2bitH) test_viewports.c has an example of usage [FIXED!!] 2bit targets don't respect non-native strides [FIXED] Few define snags Change-Id: I0d04c3834e464eca84a5a715743a297a0cefd0af
2020-10-13Work around wonky inline asm issue with creativezenvm build.Solomon Peachy1-1/+13
The right thing here probably to just not bother at all, as this bootloader can't launch rockbox yet anyway. Change-Id: I62bd22353b6adc9dbe35b94f3b60a6a67348356a
2020-10-13Fix more red.Solomon Peachy1-2/+4
Change-Id: Id1a45b420f8eb70a25010b058822b78f80db33d8
2020-10-13fix more yellowSolomon Peachy2-1/+5
Change-Id: I74bad58707d05ea167169d4315c05eb0cd1c8b7b
2020-10-13Fix more warnings.Solomon Peachy3-1/+11
Change-Id: Ib3a9fc622a46b1fc72e94dcbc6d29d2e430cd81b
2020-10-13imx31: Work around an apparently not-quite-kosher abuse of CPPSolomon Peachy3-4/+19
(we were trying to foward-declare functions from within static initializer context. GCC no longer accepts this) Change-Id: I58f316ecc84c8ab45fffc054955727a55714b0a3
2020-10-13Fix a pile of yellow in the bootloaderSolomon Peachy6-45/+59
Change-Id: Ia89a33bbb13683566e421ac2a002baa20cdb07de
2020-10-08Undo the hacks that allowed targets without LEFT/RIGHT (UP/DN) to build.Solomon Peachy2-6/+2
Replaced them with warnings until they are fixed *PROPERLY* Change-Id: I4425200e60f8b5224262a54f105b974cec471d22
2020-10-02imx233: Hardware codec supports up to 192KHz. Make it so!Solomon Peachy2-2/+8
Change-Id: If08a1d244f28092a5d5332d666fb9afdc78f35a9
2020-08-19Enable boot from SD for Sansa e200Johannes Rauh2-12/+161
Change-Id: I0940f2cd5fc914d6d5061b5798b1a636009649b7
2020-08-06FS#9295: Detect external power supply for ipod 1st & 2nd gen (Mark Fawcus)Solomon Peachy1-1/+1
Change-Id: I7b64c37ead60152c8a12556cfa344e225abc1980
2020-07-28imx233: rtc: generalize PERSISTENT0 fixMoshe Piekarski1-1/+4
Change-Id: Id8452055534df239dcf5e535943ee918a93ec10c
2020-07-28Fix IPod 3G USB Recognition ProblemMichaelRey1-5/+11
Allow IPod 3rd generation to recognize when USB is connected and reboot into disk mode. This problem is listed at the bottom of the Ipod status page https://www.rockbox.org/wiki/IpodStatus Change-Id: I8f32afd065d3a91cddc56fe63454bd082bfa29b9
2020-07-28FS#8778: Fix iPod 1G scroll wheel not being enabled (Mark Fawcus and Rune Pade)Solomon Peachy3-5/+5
They confirmed it worked in the original ticket. Change-Id: I949f119554a1e8bbdd0e4160c104cbc4aa2bd17d
2020-07-27imx233: rtc: Initialize PERSISTENT0 registerMoshe Piekarski1-0/+1
Prevents the rtc from breaking on power removal Change-Id: I1e434285ccc27d864d2fd9454993d02cae32711d
2020-07-24Fix two variable-set-but-not-used warningsSolomon Peachy1-0/+4
(found using -Os with gcc494 on the nano2g) Change-Id: If0deee3e3cde50e6bf5aff595bebc0f134dcc393
2020-07-15imx233: rtc: Explicitly clear the soft reset bit when initializingSolomon Peachy1-0/+2
If we come up and the RTC is in a reset state, we need to release that before trying to initialze anything else. (See IMX23RM 23.8.1 and 39.3.10) Change-Id: I1820ab771ba81f7d428d07040b7d188d9f688127
2020-07-15rk27xx: rename 'start' to '__start'Solomon Peachy3-5/+5
Change-Id: I3c5bbbc952222e840e82171431ba996a6a5d298b
2020-07-09FS#12082: Add Tuner support to the Nano2G (Bertrik Sikken)Solomon Peachy1-1/+1
(The serial portions of the patch were already present, this just pulls in the tuner enablements) Change-Id: I8090e318f34835769ac0a56d7a48b9250631eb4f
2020-07-05portalplayer: Fix three set-but-not-used warnings.Solomon Peachy2-1/+7
(They show up when building with gcc494) Change-Id: Id5e2bccf18114ed78a557ac1b369f46b4f07d042
2020-07-05imx31: Fix regression in bootloader caused by cd9906Solomon Peachy1-1/+1
Change-Id: I1b561c9136a727f49e02e53798e46ef9197a3958
2020-07-05imx233: Fix bootloader link regression caused by cd9906Solomon Peachy1-2/+2
Change-Id: I6341069aa3855a8a3ea9ed021c27aaa742cab698
2020-07-05arm: Fix PortalPlayer linker scripts with binutils 2.21+Solomon Peachy5-7/+7
For reasons that are still unclear, the 'ncbss' region was overlapping the "audiobuffer" when linked with 2.21, but okay with 2.20. Fixed it by making the audiobuffer explcitly use the current position instead of relying on it being implicit. With this change, portalplayer-based targets generate working binaries when built with binutils 2.21 or newer. This bug also theoretically affects imx233/imx31 targets as they also have NOCACHE_BASE games in their linker scripts, but I lack access to one to test with. Change-Id: Idb38ab20f03599b9ed3d4bc0eafe519f38677438
2020-05-23Sansa AMS add Minimum Clocks for I2c IDE SDSLOT SSPWilliam Wilgus1-7/+28
This patch doesn't implement them just defines them Change-Id: I1762152c3c683cc68bcedac5923c536316441613
2020-05-23Sansa AMS set I2C properlyWilliam Wilgus1-5/+18
Change-Id: I95c93933487c4260a7aa43ebed273ab2c05e55c1
2020-05-23Sansa Clip+ set lcd SSP properlyWilliam Wilgus1-1/+15
Change-Id: I152f038954ac1649b30dd17c3e6332e4d756502c
2020-05-23Sansa ClipZip set lcd SSP properlyWilliam Wilgus1-1/+16
Change-Id: Ice62dfa7f266ee4369793777a39e675bceae1831
2020-04-17ClipZip LCD Corruption Backlight fixWilliam Wilgus1-3/+5
User reported LCD screen corruption via forum in 3.14 and 3.15 turning backlight off and back on seems to fix the issue http://forums.rockbox.org/index.php/topic,53192.0.html Change-Id: Id0b34d2f9b77e79ab0ecabace331f0b203184724
2020-04-13obsolete: Nuke the very-incomplete Archos AV300 targetSolomon Peachy4-208/+0
It's even missing a config header file. Just shoot it in the head. Change-Id: I4c5cdb4fb63361a4e4fc893e93d73d3890fe17df
2020-04-04pp502x: Don't fill the cache starting from address 0x0Solomon Peachy1-1/+5
The pp502x cache init code tries to flush the cache by reading a block of DRAM. Change the starting point from 0x0 to 0x1000 so the compiler doesn't helpfully insert an undefined instruction to deliberately crash the target. (This behavior is intentional on the part of GCC, and was triggered by using -Os with my experimental 4.9.4 toolchain) Change-Id: I2d2719615a1164a035f3dac8a56dd3737bbab1d5
2019-12-30Fix As3525 SD unused parameter warningWilliam Wilgus1-2/+3
Change-Id: I0a4bbcf94e9cadf43a822c1cb2f2dad3bd4f7588
2019-12-31Sansa AS3525V1 Sd Interface implement powersave modeWilliam Wilgus1-30/+65
This patch cleans up the sd driver for the V1 sansas powersave implemented for the sd interface Change-Id: I3d864f7aa304cf792cc65fa4ff06c1e52fbed329
2019-10-13iPod Classic: enable IRAM1 in bootloaderFranklin Wei1-0/+6
7442742 ("iPod Classic: disable IRAM1") was causing subsequent ipod6g bootloader builds to result in a completely black screen upon installation, with recovery only possible with a reflash through DFU mode. IRAM1 is re-enabled for bootloader only. Change-Id: I92d489c91f81cad55d66a8647c1e61a45f468770
2019-02-07YH820: implement LCD sleepSebastian Leonhardt2-4/+42
use sleep setting to keep transflective LCD active without backlight Change-Id: Iccd97e956d5e4a2a22abc90d15e9123782126ecb
2019-01-02Add Xuelin iHIFI 770/770C/800 supportSolomon Peachy17-502/+1662
Taken from the xvortex fork (Roman Stolyarov) Ported, rebased, and cleaned up by myself. Change-Id: I7b2bca2d29502f2e4544e42f3d122786dd4b7978
2018-07-30iPod Classic: disable IRAM1Cástor Muñoz3-3/+4
On Classic, IRAM1 (second 128Kb of a total of 256KB available IRAM) is slower than DRAM. Codecs that actually are using regions of IRAM1 runs faster when DRAM is used, so IRAM1 is disabled and only IRAM0 remains enabled: 48KB for core and 80KB for codecs/plugins. The next test_codec results shows how decode time is decreased: file boosted unboosted *.ra ~1.5% ~0.5% *.mpc ~21% ~4.5% *.ogg ~0.5% ~0% nero_he*.m4a ~8% ~1% nero*.m4a ~25% ~7% wmapro*.wma ~4.5% ~0% wma*.wma ~25% ~7% In addition there is a small power save when IRAM1 HW is disabled. Change-Id: I102adee11458e82037f23076d5d5956e23235de8
2018-07-28Revert "As3525 v1/v2 Add power savings menu"William Wilgus8-309/+51
This reverts commit 6f0320a9535bc1aa81d83fa879ac14d5ee603658. Change-Id: I7425d422a4a0af7a49e9194cfe0bb55d431bc401
2018-07-28Revert "Fix Red on PowerSave in Simulator"William Wilgus1-2/+0
This reverts commit 568b81202ebd24a3f7e9efe0558b5f6beed05b44. Change-Id: I2af42cd53d0ce490bf96c68288e9fbde034c0069
2018-07-28Slightly raise voltage on FuzeV2 devices.Michael Giacomelli1-0/+3
Some devices seem to have trouble accessing the storage at lower voltages.
2018-07-28Fix Red on PowerSave in SimulatorWilliam Wilgus1-0/+2
Change-Id: Ic5d9de230efceabc2c428e5c78fa6596a5a34840
2018-07-27As3525 v1/v2 Add power savings menuWilliam Wilgus8-51/+309
Allow user to select cpu undervolt There have been quite a few issues across the SANSA AMS line related to CPU undervolting while most players show greatly increased runtime some crash. Rather than constanly upping the voltage we now have a setting with a safe value for all players and the option for lower voltages I plan to add a few other options here later such as disk timings and maybe some other clocks/experimental settings Added: Disk Low speed option for AS3525v2 devices cuts frequency to 12 MHz from 24 MHz Added: Disk Low speed option for AS3525v1 devices cuts frequency to 15.5 MHz from 31 MHz Added: I2c Low Speed AS3525 devices, should be bigger improvement for v1 devices Fixed: Debug menu for AS3525v2 No SDSLOT frequency, Showed IDE freq though it is unused Added: DBOP and SSP underclocking affects display on v1/v2 respectively Fixed: debug menu now has SSP frequency, and SSP_CPSR Update: made settings menu more generic Update: cleaned up code Added: Clip v1 & Fuze v1 didn't have HAVE_ADJUSTABLE_CPU_VOLTAGE. not sure why but, waiting on testing to confirm Added: C200v2 and E200v2 devices and HAVE_ADJUSTABLE_CPU_VOLTAGE. Fixed: v1 devices don't like display timing set lower (dbop) v1 devices don't have a divider set for ssp (causes divide by 0) Fixed: ClipZip display lags with Max SSP divider changed from 0xFE to 0x32 Fixed: v1 devices didn't work properly with highspeed sd cards Added code from http://gerrit.rockbox.org/r/#/c/1704/ Added powersave and IDE interface enable/disable Added: V2 devices now have powersave enabled on sd interface Update: cleaned up code, lang defines, added manual entries Update ssp clock mechanism added calculated ssp divider to clipzip Update turn display clock off when clip+ turns off display Fixed: clipzip wrong register for SSP clock Change-Id: I04137682243be92f0f8d8bf1cfa54fbb1965559b TODO: add other players?
2018-07-26Optimize lcd-ssd1303 driver (clip series)William Wilgus5-82/+228
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 Wilgus1-192/+188
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-25AMS v1/v2: Fix I2C2_CSPR debug menu entryWilliam Wilgus3-20/+32
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 Wilgus1-7/+9
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 Sevakis4-42/+29
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-05-25Fuze PLUS Fix lcd_update_rect()William Wilgus1-6/+21
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-04-03Zen XFi2: Enable PluginsSebastian Leonhardt1-2/+0
Keymaps aren't tested, there may be room for improvement. Change-Id: I6b8fe697899b241ea6e96f4fe446d88671ad7818