summaryrefslogtreecommitdiff
path: root/firmware/drivers (follow)
Commit message (Collapse)AuthorAge
...
* some optimization for iriver h100 and h300 seriesDmitry Gamza2014-03-18
| | | | | | | | | | | | Turn on 4x oversampling inside UDA1380 codec. This allow will move the quantization noise to the higher frequencies, that slightly improve the final sound quality. Change-Id: Idf79cd877c526d8937a47c34e9c180d837a15db1 Reviewed-on: http://gerrit.rockbox.org/435 Reviewed-by: Michael Giacomelli <giac2000@hotmail.com> Reviewed-by: Björn Stenberg <bjorn@haxx.se>
* Fix (unintentional) linkage of HAVE_BUTTON_DATA with HAVE_TOUCHSCREENSebastian Leonhardt2014-03-18
| | | | | | | | | | Defining HAVE_BUTTON_DATA without simultaneously defining HAVE_TOUCHSCREEN caused compile errors. (I need them separated for a scrollstrip driver.) Change-Id: I945d3437d840035ccc0c147f8155029b403c6ec2 Reviewed-on: http://gerrit.rockbox.org/771 Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com> Reviewed-by: Thomas Martitz <kugel@rockbox.org>
* Fix ipod6g build.Thomas Martitz2014-03-09
| | | | Change-Id: I218e1721b8ddbb067581f4bc686a20f4c88694ae
* Fix more reds.Thomas Martitz2014-03-03
| | | | Change-Id: I4b58dda0953b7f9799238c32b78037b0a5403c04
* Fix various reds. Some includes needed fixup.Thomas Martitz2014-03-03
| | | | Change-Id: I4327740bae17054131feb917abdd58846c451988
* kernel: Break out kernel primitives into separate files and move to separate ↵Thomas Martitz2014-03-03
| | | | | | | | | dir. No code changed, just shuffling stuff around. This should make it easier to build only select parts kernel and use different implementations. Change-Id: Ie1f00f93008833ce38419d760afd70062c5e22b5
* imx233: add support for speaker on stmp3780Amaury Pouly2014-02-16
| | | | Change-Id: I990ca2bd43e12047e257f85ff06f046dfa3f94b3
* Samsung YP-R1 target portLorenzo Miori2014-02-05
| | | | | | | | | This is the basic port to the new target Samsung YP-R1, which runs on a similar platform as YP-R0. Port is usable, although there are still some optimizations that have to be done. Change-Id: If83a8e386369e413581753780c159026d9e41f04
* charcell: Fix lockup after some scrolling lines.Thomas Martitz2014-01-26
| | | | Change-Id: I5cabbd396e2a6d4e9fd8e92090624643797af34a
* 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
* 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
* 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
* 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
* Add missing kernel.h includes (hopefully all of them).Thomas Martitz2014-01-05
| | | | Change-Id: I9c1825296a788587b8d494d8514b3314847b0ff0
* Do not include kernel.h in system.h.Thomas Martitz2014-01-05
| | | | | | | system.h doesn't need it on its own and this change makes it less dependant on Rockbox internals. Change-Id: I4e1e4108a52a7b599627a829204eb82b392fc6d6
* lcd: Fix certain drawmode combinations.Thomas Martitz2014-01-05
| | | | | | | | Some seldomly used drawmode combinations did not work in conjunction with alpha bitmaps and backdrops. Now all should work (see comment added) by using more bits. Change-Id: I2bc96ecf471fa8c1a608a321a235b9c8527b3dc5
* Fix bpb_is_sane() cluster size calculation for non-512 byte sectors.Frank Gevaerts2014-01-04
| | | | | | | | | | | bpb_is_sane() used to effectively multiplying the sector size (relative to 512 bytes) twice, which meant that filesystems with e.g. 2K sectors and 32 sectors per cluster were rejected because while this adds up to 64K clusters (i.e. the upper limit), the calculation wrongly came to 256K. This bug tends to affect 5.5G ipods when formatted using dosfstools. Change-Id: Ia3f1e1303b2af953f497ccdbf23cd49c3d72e46a
* lcd: Fix scrolling.Thomas Martitz2013-12-23
| | | | Change-Id: I1f8d3d67b224c1c531438b94e3aab640b76770be
* Fix audio on m:robe 100.Szymon Dziok2013-12-17
| | | | | | Tested on different revisions and it works reliably. Change-Id: Ic710236247a17f516c8561429f2da5c9684341b9
* Fix more reds.Thomas Martitz2013-12-15
| | | | Change-Id: Ie62386a8f3e9986381f96eb83abb69bfc42b42e1
* Fix reds. Also apply the new scrolling to lcd charcell (this even uncovered anThomas Martitz2013-12-15
| | | | | | error). Change-Id: I29243bb36b6cec1471bd6c0afc64e00547a68c50
* scroll_engine: Major rework to support pixel-based scrolling and scroll ↵Thomas Martitz2013-12-14
| | | | | | | | | | | | | | | | | | | callbacks. Much of the scrolling work is moved from lcd-bitmap-common to lcd-scroll.c, a small scroll callback routine remains. This callback can potentially be overridden by more extensive scrollers. The callback also gets fed with pixel-based scrolling information, which finally removes the strict line-based nature of the scroll engine. Along with this is the change from scroll_stop_viewport_line() to scroll_stop_viewport_rect() which works on a pixel-based rectangle instead of lines. The ultimate goal is to move most of the scroll work to apps, which can much better decide which line decorations to apply etc. This work is laying the ground work. Change-Id: I3b2885cf7d8696ddd9253d5a9a73318d3d42831a
* scroll_engine: Add STYLE_NONE to allow for drawing lines without styling.Thomas Martitz2013-12-14
| | | | | | | This allows to draw lines without destroying styles that were drawn manually (e.g. from apps/) beforehand. Change-Id: I0de290c9343061efb115e1b76da5b76395c2b2af
* scroll_engine: Split out common main and remote lcd functions.Thomas Martitz2013-12-14
| | | | | | | Uses a similar technique as lcd_*.c files of #including a common .c file, so that a unified implementation can be reused for both displays. Change-Id: I21f6de76df757b093e1a1dff0a4caf96a44fe77e
* scroll_engine: Rename scroll_stop* functions to be more consistent with the ↵Thomas Martitz2013-12-14
| | | | | | lcd api. Change-Id: I8ada10b96bfb628cca0331689e8b936ae47c7e1c
* lcd-*: Merge common viewport operations into lcd-bitmap-common.cThomas Martitz2013-12-14
| | | | Change-Id: Ibec2d039ac0ba1214c9bd1b667bc8a9538a0d3d7
* tea5767: properly power up the tuner during detectLorenzo Miori2013-11-21
| | | | | | Change-Id: I5ca5c3ae28db1427e2528cb1740a9199180b9b38 Reviewed-on: http://gerrit.rockbox.org/670 Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
* ma8/ma9: Cleanup - fix tabs, remove unused defines.Andrew Ryabinin2013-11-05
|
* Introduce HiFi E.T. MA8/MA8C ports.Andrew Ryabinin2013-11-05
| | | | | | | | | HiFi E.T. MA8 is almost the same as MA9 except another DAC(pcm1792 in ma8, df1704 in ma9). MA8 has ILI9342 lcd, MA8C has ILI9342C lcd. Change-Id: If2ac04f5a3382590b2a392c46286559f54b2ed6a
* ma9: Slightly change df1704 driver API.Andrew Ryabinin2013-11-05
| | | | This change should be done for easier integration of ma8 port.
* tea5760uk: use correct i2c address on the CreativeAmaury Pouly2013-10-22
| | | | | | | Actually 0x20 is the right address, the 0x22 applies to the meizu which probably use a Chinese clone with a non-spec compliant address. Change-Id: I65b9ab6477c07a2293226536db3e696d34d3bc2c
* tea5760uk: properly power up the tuner during detectAmaury Pouly2013-10-21
| | | | | | | The old was doing register read/writes without calling tuner_power(), this is broken for target with real tuner power management. Change-Id: I5e60234697a8b91de6189daf6a10e871d5119b65
* tea5760uk: add support for TEA5761UKAmaury Pouly2013-10-21
| | | | | | | They share most of registers (except test and some extra bits), since our driver is very basic, it is safe to relax the manufacurer & chip id check. Change-Id: If54e8b9e0d852cd9128d5e28ff59bd2c7a55d98d
* sonynwz: fix time handlingAmaury Pouly2013-09-26
| | | | | | Be consistent with the OF and use RTC PERSISTENT2 as offset Change-Id: Ic8b970cbc4096d1f4efa0380a3af51c93484fe58
* fix redAmaury Pouly2013-09-05
| | | | Change-Id: Ibca5879553a87e77014f850308d9b54cc339d474
* touch devices: Disable touch on softlock.Jean-Louis Biasini2013-09-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | Target that have a touchpad/touchscreen should disable it while being locked (In order to avoid LCD to drain battery power due to "key locked" constant reporting messages. If they a have a keylock button this was already handled at driver level. If not (e.g. fuze+), they will have to implement a switch at driver level that action.c can operate on softlock. This patch does the following for any target having a touchpad or a touchscreen and no HAS_BUTTON_HOLD (ie any softlock target) 1) it implements the code to call button_enable_touch(bool en) in action.c. 2) button_enable_touch is implemented in button.c and call either touchpad_enable or touchscreen_enable 3) those two function are implemented respectively in touchscreen.c and a new touchpad.c file. They provide a generic way to silents touch's device and call a function at driver level where target specific code can be implemented if possible/needed (for power saving for instance). Those function name are touchpad_enable_device and touchscreen_enable_device 4) we implement an empty function at driver level of targets that need it to have them still being able to compiled. Change-Id: I9ead78a25bd33466a8533f5b9f259b395cb5ce49 Reviewed-on: http://gerrit.rockbox.org/569 Reviewed-by: Thomas Martitz <kugel@rockbox.org> Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
* Cleanup MV/MD macros a little.Michael Sevakis2013-08-17
| | | | | | | | | | When using variadic macros there's no need for IF_MD2/IF_MV2 to deal with function parameters. IF_MD/IF_MV are enough. Throw in IF_MD_DRV/ID_MV_VOL that return the parameter if MD/MV, or 0 if not. Change-Id: I7605e6039f3be19cb47110c84dcb3c5516f2c3eb