summaryrefslogtreecommitdiff
path: root/firmware (follow)
Commit message (Collapse)AuthorAge
...
* buflib: Properly support allocations without any name, to avoid wasting spaceThomas Martitz2014-02-02
| | | | | | in micro-allocation scenarios. Change-Id: I97a065bcfba8e0fda9b1670445e839e267c769c8
* buflib: Check the validity of of handles passed to buflib_get_data() in ↵Thomas Martitz2014-02-02
| | | | | | DEBUG builds. Change-Id: Ic274bfb4a8e1a1a10f9a54186b9173dbc0faa4c8
* buflib: Abstract panicf() into buflib_panic().Thomas Martitz2014-02-02
| | | | Change-Id: I4968a9bc290e10e30a77c36c19f694e286e7ef22
* hosted: Substract more than 256K from total memory pool.Thomas Martitz2014-02-02
| | | | | | | | These 256K are intended to account for the binary size which reduces the total available RAM on native targets. 256K is really outdated though, 768K should be more accurate (for the majority of targets). Change-Id: Iab3ee51d42ae15b1b7efb8588881579cf1948ae7
* sim/sdlapp: Do not quit immediately on panicf, but wait for quit.Thomas Martitz2014-02-02
| | | | Change-Id: I2f0b4b560f00a43ad4b240911e4c30a162deb6e3
* charcell: Fix lockup after some scrolling lines.Thomas Martitz2014-01-26
| | | | Change-Id: I5cabbd396e2a6d4e9fd8e92090624643797af34a
* Fix warnings. convbdf needed to be updated for the changed font struct ↵Thomas Martitz2014-01-26
| | | | | | because it generates sysfont.c. Change-Id: Id5aea6b6c73438242a80ae6849ee5e29ab8659dc
* fonts: Fix regression(s) caused by c23ce62.Thomas Martitz2014-01-26
| | | | | | | | | | | | | The builtin sysfont does not have an associated buflib_alloc_data (because it's builtin right?). font_get_{width,bits} accessed a field of it for all fonts which crashed on some systems but not on mine. Solution: Move this field to struct font directly. The cache size calculated was also busted. Fixes FS#12944 and most likely FS#12938. Change-Id: I32303c4335a12a6c421fdca34f7ece851aac12ca
* imx233: be less strict about partition checks (>=1GB only)Amaury Pouly2014-01-21
| | | | Change-Id: I4bc073c500a65240e359ab50f001b4370d985781
* imx233: handle quirk about OF partition address bug/featureAmaury Pouly2014-01-21
| | | | Change-Id: Ib8b854ce7132ac460672f9adf8611f580ca53746
* Initial commit for the ZEN X-Fi StyleAmaury Pouly2014-01-21
| | | | Change-Id: Ib25a357a7bafd2ef25f273cadff70fafbd8d4661
* rombox: Do not copy .init section to ram on startup.Marcin Bukat2014-01-20
| | | | | | This is pointless to copy this code as it can be run in-place. Change-Id: I73b4f4a3337a88434af457c3f1e40b8d55a5a79e
* fix player rom buildMarcin Bukat2014-01-18
| | | | Change-Id: I3acc5ff3b6868c7ebbfda99368e4eafc8e368668
* coldfire: fix rom buildMarcin Bukat2014-01-18
| | | | | | | Properly handle .init section in rom build and accomodate the change in crt0.S introduced in b31c856 Change-Id: Icbf26a87162165da149232de264dc3671ca8ae96
* coldfire: fix bootloader buildsMarcin Bukat2014-01-18
| | | | | | | In b31c856 startup code section was renamed but boot.lds linker scripts were not updated accordingly. Change-Id: I9c9893ec2e199ac2555007a1d23e109ca0daea28
* coldfire: Implement HAVE_INIT_ATTR magicMarcin Bukat2014-01-17
| | | | | | | | This reclaims ~6kB of ram. Change-Id: Iafdc661b1cf4445669c08c79205043792b8d14c3 Reviewed-on: http://gerrit.rockbox.org/718 Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
* Some libc files are not needed on mingw anymore so don't compile them ↵Thomas Martitz2014-01-17
| | | | | | (unless HAVE_ROCKBOX_C_LIBRARY is set). Change-Id: I0b9948d0dbc07aaa8a1e2da8b3857e96fc3f9b48
* Fix red. Screw those last-minute changes :\Thomas Martitz2014-01-16
| | | | Change-Id: I12666e98114e490a13023af7149fc37147d4e864
* font: Fix crash due to uninitialized field.Thomas Martitz2014-01-16
| | | | Change-Id: If2fafb15a9998eebb2936e819507758e003abe30
* buflib: Add crc field protecting buflib cookie integrityMarcin Bukat2014-01-16
| | | | | | | | | | | | | | | This should catch the case of buffer misuse which results in corrupted cookie of next allocation. The check is performed on move_block() so it may be a bit late. There is buflib_check_valid() provided which checks the integrity of all cookies for given context. On DEBUG build with --sdl-thread this check is carried out for core_ctx on every context switch to catch problems earlier. Change-Id: I999d4576084592394e3dbd3bdf0f32935ff5f601 Reviewed-on: http://gerrit.rockbox.org/711 Reviewed-by: Thomas Martitz <kugel@rockbox.org>
* fonts: Do not unload completely on USB.Thomas Martitz2014-01-15
| | | | | | | | | The font engine can now perform cache lookups even if the font file is closed, if the font was disabled with the new font_disable_all() function. It is highly probable that the lookup succeeds but in the cache-miss case a blank, full-width glyph will be returned. Change-Id: I3c97e747d2a0ba30c7b495c6118c9f029d265b56
* coldfire: Use single app.lds script for all coldfires.Marcin Bukat2014-01-15
| | | | | | | | | | | The only true difference in this platform is the amount of iram between MCF5249 and MCF5250. Instead of duplicating the file simply use one with proper ifdefs. Change-Id: Ifd56ebd2666813633502e3b5d83669424659c039 Reviewed-on: http://gerrit.rockbox.org/713 Reviewed-by: Thomas Martitz <kugel@rockbox.org> Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
* HDD1630: enable headphones detection.Szymon Dziok2014-01-14
| | | | Change-Id: I329b12a8e90b4721b644ac326dfe75e52ce6c2b8
* HDD1630: implement lcd_enable (display on/off).Szymon Dziok2014-01-13
| | | | Change-Id: I8b72a9c333d8a9dbcb62c366a9af298f1dd9b2f7
* HDD1630: a proper way to enable and disable backlight.Szymon Dziok2014-01-13
| | | | Change-Id: Ic08a8a3ec4bcd6320ba07cb9bda1c95257ef14c9
* scroll_engine: Fix FS#12894: Text scrolling stops working after a few ↵Thomas Martitz2014-01-12
| | | | | | | | | | | | | seconds/minutes Since commit 706b920 a timeout of TIMEOUT_BLOCK (-1) will cause queue_event_w_tmo() block indefinitely (previously it behaved as TIMEOUT_NOBLOCK). scroll_process_message() can be called with negative timeouts, with luck also -1. To fix this convert all negative timeouts to TIMEOUT_NOBLOCK explicitely. Change-Id: I1fc20d93acbba50d713c8364f635365930b38cbf
* Fix remote warnings and charcell reds, and remove minor left-over tuff.Thomas Martitz2014-01-12
| | | | Change-Id: I10987ea9fcad94d502afd4ae4a80ab9022c75d2e
* put_line/scrolling: Make the scroll engine inform custom scrollers about ↵Thomas Martitz2014-01-12
| | | | | | | | | | | | | | | | | | | | | start/stop of scrolling. With the new lcd_putsxy_scroll_func() code can register custom scroll functions (put_line() makes use of that). In order for the custom scroller to be able to properly manage its userdata pointer (set via struct scrollinfo::userdata) the scroll engine must inform the scroller about start and stop of scrolling. To inform about start the lcd_scroll_* functions now return true when the line will scroll. To inform about stop the scroll engine calls into the scroller one last time, with the text set to NULL. put_line() can use this to release the userdata registered per scrolling line so that it can be recycled. This fixes that some scrolling lines became glitchy after some time because the userdata was recycled too early. Change-Id: Iff0a6ce2a4f9ae2bada1b8e62f4f5950224942a9
* Don't use core_alloc_maximum() in usb_storage.Frank Gevaerts2014-01-11
| | | | | | | | usb_storage needs a fairly reasonable amount of memory. Allocating what we need and no more allows other (future) USB drivers to get something too, and is much cleaner in general. Change-Id: Iec9573c0f251f02400f92d92727cbf2969785de0
* scroll engine: Factor out renderer function so it can be called by lcd code.Thomas Martitz2014-01-11
| | | | | | | | | | | This is used by lcd_puts_scroll_worker() to render the line immediately instead of waiting for the next scroll tick when only the text was updated. Previously lcd_puts_scroll_worker() did not render anything in this case which could lead to visible blinking. This fixes blinking scrolling lines with dynamic text in the skin engine. Change-Id: I475bde8c8eb7c92f505e3c5ecf4d32bb90690536
* Print `last logf lines on panic().Frank Gevaerts2014-01-11
| | | | | | | | | | | | If logf is enabled, panic() will print the last lines. On small screens this is more or less useless, but on large screens it can be very useful for debugging. Change-Id: I26dfc76e9ac4a2ddc2def8db1616a04f943dbba3 Reviewed-on: http://gerrit.rockbox.org/709 Reviewed-by: Thomas Martitz <kugel@rockbox.org> Reviewed-by: Frank Gevaerts <frank@gevaerts.be> Tested: Frank Gevaerts <frank@gevaerts.be>
* rk27xx: Implement HAVE_INIT_ATTR magicMarcin Bukat2014-01-10
| | | | | | This reclaims over 7kB of ram. Change-Id: I4a89c9a673ada7959311f320900060f6db303c07
* bidi.c: Check buffer sizes.Frank Gevaerts2014-01-09
| | | | | | This could cause a crash with certain themes and long filenames. Change-Id: I0a48c91bb089b122a56c4e126ba4d7a175399fa2
* lcd_nine_segment_bmp: Fixes for non-ideal image dimensions.Thomas Martitz2014-01-09
| | | | | | | | | | | 1) The 9-segment images need not be multiple of 3 pixels anymore. If it isn't the inner segments will be smaller than the corners. 2) If the desired actual images is not a multiple of the segment sizes the function drawed more than the desired rectangle. This is fixed by drawing the last segment only partially. Change-Id: Ic918facd8734fa4a4aa72536f0b67de82d81651e
* Fix Player red and icons on mono displays.Thomas Martitz2014-01-07
| | | | Change-Id: Ib8adcb4c70f2dd3ddd25da8f0606f48926dfd89e
* Add missing kernel.h include (hopefully the last one, really), take #4.Thomas Martitz2014-01-07
| | | | Change-Id: I167e988868b53203ea926540699d587e115635e8
* lcd/grey: Enable viewport fg_pattern and bg_pattern for all bitmap targets.Thomas Martitz2014-01-07
| | | | | | | | | Greylib performed a horrible hack and stored fg and bg patterns in other struct viewport fields. One of them was just removed. So instead of this hack simply enable the *_pattern fields for mono targets as well, so that greylib can use them normally. Change-Id: Ib0842ebcc97f5bf9d9382b4471903afa2f96f39f
* lcd-16bit: Remove {lss,lse,lst}_pattern fields from struct viewport.Thomas Martitz2014-01-07
| | | | | | | These where used for line styling during scrolling, which is now done in apps/, The viewport struct doesn't need to record these anymore. Change-Id: I810d9dcb2644b00a798c6e75acab69c74a78e77f
* lcd-16bit: Move lcd_gradient_fillrect/_part() to lcd-16bit-common.c.Thomas Martitz2014-01-07
| | | | Change-Id: I6b2d2ba73464610556cfd9ecec52fc62adb007c7
* lcd-common: Remove direct style (line decorations) from lcd-puts* functions.Thomas Martitz2014-01-07
| | | | | | | | | | This logic is moved into apps (put_line()) which can better handle line decorations with respect to scrolling, mulitline and other complications. Firmware doesn't need this. The remaining drawing function know only one style, that is foreground on background/backdrop (changing drawmode is still supported). Change-Id: I707060edc388a7d723a7d09b0cf5cbda6ec56708
* lcd-common: Remove support for specifying y_offset from lcd_puts* functions.Thomas Martitz2014-01-07
| | | | | | | | This main (and only) purpose for it was to adjust the pixel position of the text in otherwise linebased (scrolling) functions. With pixel-based scrolling this isnt necessary anymore. Change-Id: I2a45b8ca6a3f8f50aa2f6630201b30ce9ddfe043
* lcd-common: Remove support for custom line heights from viewport.Thomas Martitz2014-01-07
| | | | | | | | Since scrolling is now pixel-based this is not necessary anymore. custom line height is handled by put_line() but can also possible to implement with lcd_puts_scroll_func(). Change-Id: Iee9b12bf99afac93d95d2a1a6f5d5b4db237b21c
* lcd-common/scroll_engine: Remove unused functions lcd_puts_style_xyoffset() ↵Thomas Martitz2014-01-07
| | | | | | | | | | | | | and lcd_puts_scroll_style_xyoffset(). With this functions removed there is no exported function in firmware left that draws line decorations. Also no function supports specifying an y-offset anymore (was used for pixel accurate positioning of otherwise strictly line-based API calls). Both should be handled in apps/ now. Change-Id: Iba4b28ccc6e686c7db63e34b51ad4badae983fce
* lcd-common/scroll_engine: Remove unused functions lcd_puts_scroll_style().Thomas Martitz2014-01-07
| | | | Change-Id: Ia4f943b3738ab6e66b0e3f1507c629b36d7eba94
* lcd-common: Remove unused function lcd_puts_style_offset().Thomas Martitz2014-01-07
| | | | Change-Id: I24da23d132f933fe647416dc58e8f50879715423
* lcd-common: Remove unused function lcd_puts_style().Thomas Martitz2014-01-07
| | | | Change-Id: Id2c64c116f79b8e61a7af49b9072b3e884ffb455
* lcd-common: Remove unused function lcd_puts_offset().Thomas Martitz2014-01-07
| | | | Change-Id: I39749bf3db915e5a8ddb6e6f25eb201ea0aaf981
* lcd-common/scroll_engine: Remove unused functions lcd_puts_scroll_offset() ↵Thomas Martitz2014-01-07
| | | | | | and lcd_puts_scroll_style_offset(). Change-Id: Ia84ae88020d06a1cb634942ab5e635fd5d10ac66
* lcd-16bit: Introduce lcd_gradient_fillrect_part().Thomas Martitz2014-01-07
| | | | | | | | It is similar to lcd_gradient_fillrect(), except that it only draws a part of the complete gradient. This can be used to draw only the bottom half of a full gradient. Change-Id: Ib47cc5237f6966e35ba07988bddbb00fd97adf96
* lcd-common/scroll_engine: Introduce lcd_putsxy_scroll_func().Thomas Martitz2014-01-07
| | | | | | | | | | | This function supports installing a custom scroll callback. This will be called when the scrollengine redraws the line. It allows to draw extended styles (or anything your can possible imagine) along with the text. It is also strictly pixel-based, the first pixel-based function that supports scrolling. Change-Id: I57f81ac7b3d08b877aea4cb8afa882f175ebcdfc