summaryrefslogtreecommitdiff
path: root/firmware/target/arm/imx233
AgeCommit message (Collapse)Author
2015-01-12Get rid of stupid _backlight_* function namesMarcin Bukat
_remote_backlight_* and _buttonlight_* are cleaned as well Change-Id: I73653752831bbe170c26ba95d3bc04c2e3a5cf30
2014-11-10zen: typoAmaury Pouly
Change-Id: I68be3c768c092d7e43df8fa233f3a954e56f4d93
2014-09-08Fuze+: add a configurable deadzone area for touchpad buttonsAmaury Pouly
To stop erroneous button presses, allow users to add a deadzone between the button via the Settings > General > System menu > Touch Dead Zone. The configuration was chosen this way: the touchpad has the same DPI in both direction so the setting applies the same on both the X and Y axis. The setting ranges from 0 to 100 and is internally multiplied by 2 giving a maximum deadzone of 2*100 = 200 around each button, which account for 400 total (once around each button), effectively reducing each virtual button from 1000x600 to 600x200 when using the maximum value. Change-Id: I8683c63d2950200eb32d1dda0a00bbd92d83d5be Reviewed-on: http://gerrit.rockbox.org/677 Reviewed-by: Benjamin Brown <foolshperson@gmail.com> Tested: Benjamin Brown <foolshperson@gmail.com> Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2014-08-30Rewrite filesystem code (WIP)Michael Sevakis
This patch redoes the filesystem code from the FAT driver up to the clipboard code in onplay.c. Not every aspect of this is finished therefore it is still "WIP". I don't wish to do too much at once (haha!). What is left to do is get dircache back in the sim and find an implementation for the dircache indicies in the tagcache and playlist code or do something else that has the same benefit. Leaving these out for now does not make anything unusable. All the basics are done. Phone app code should probably get vetted (and app path handling just plain rewritten as environment expansions); the SDL app and Android run well. Main things addressed: 1) Thread safety: There is none right now in the trunk code. Most of what currently works is luck when multiple threads are involved or multiple descriptors to the same file are open. 2) POSIX compliance: Many of the functions behave nothing like their counterparts on a host system. This leads to inconsistent code or very different behavior from native to hosted. One huge offender was rename(). Going point by point would fill a book. 3) Actual running RAM usage: Many targets will use less RAM and less stack space (some more RAM because I upped the number of cache buffers for large memory). There's very little memory lying fallow in rarely-used areas (see 'Key core changes' below). Also, all targets may open the same number of directory streams whereas before those with less than 8MB RAM were limited to 8, not 12 implying those targets will save slightly less. 4) Performance: The test_disk plugin shows markedly improved performance, particularly in the area of (uncached) directory scanning, due partly to more optimal directory reading and to a better sector cache algorithm. Uncached times tend to be better while there is a bit of a slowdown in dircache due to it being a bit heavier of an implementation. It's not noticeable by a human as far as I can say. Key core changes: 1) Files and directories share core code and data structures. 2) The filesystem code knows which descriptors refer to same file. This ensures that changes from one stream are appropriately reflected in every open descriptor for that file (fileobj_mgr.c). 3) File and directory cache buffers are borrowed from the main sector cache. This means that when they are not in use by a file, they are not wasted, but used for the cache. Most of the time, only a few of them are needed. It also means that adding more file and directory handles is less expensive. All one must do in ensure a large enough cache to borrow from. 4) Relative path components are supported and the namespace is unified. It does not support full relative paths to an implied current directory; what is does support is use of "." and "..". Adding the former would not be very difficult. The namespace is unified in the sense that volumes may be specified several times along with relative parts, e.g.: "/<0>/foo/../../<1>/bar" :<=> "/<1>/bar". 5) Stack usage is down due to sharing of data, static allocation and less duplication of strings on the stack. This requires more serialization than I would like but since the number of threads is limited to a low number, the tradoff in favor of the stack seems reasonable. 6) Separates and heirarchicalizes (sic) the SIM and APP filesystem code. SIM path and volume handling is just like the target. Some aspects of the APP file code get more straightforward (e.g. no path hashing is needed). Dircache: Deserves its own section. Dircache is new but pays homage to the old. The old one was not compatible and so it, since it got redone, does all the stuff it always should have done such as: 1) It may be update and used at any time during the build process. No longer has one to wait for it to finish building to do basic file management (create, remove, rename, etc.). 2) It does not need to be either fully scanned or completely disabled; it can be incomplete (i.e. overfilled, missing paths), still be of benefit and be correct. 3) Handles mounting and dismounting of individual volumes which means a full rebuild is not needed just because you pop a new SD card in the slot. Now, because it reuses its freed entry data, may rebuild only that volume. 4) Much more fundamental to the file code. When it is built, it is the keeper of the master file list whether enabled or not ("disabled" is just a state of the cache). Its must always to ready to be started and bind all streams opened prior to being enabled. 5) Maintains any short filenames in OEM format which means that it does not need to be rebuilt when changing the default codepage. Miscellaneous Compatibility: 1) Update any other code that would otherwise not work such as the hotswap mounting code in various card drivers. 2) File management: Clipboard needed updating because of the behavioral changes. Still needs a little more work on some finer points. 3) Remove now-obsolete functionality such as the mutex's "no preempt" flag (which was only for the prior FAT driver). 4) struct dirinfo uses time_t rather than raw FAT directory entry time fields. I plan to follow up on genericizing everything there (i.e. no FAT attributes). 5) unicode.c needed some redoing so that the file code does not try try to load codepages during a scan, which is actually a problem with the current code. The default codepage, if any is required, is now kept in RAM separarately (bufalloced) from codepages specified to iso_decode() (which must not be bufalloced because the conversion may be done by playback threads). Brings with it some additional reusable core code: 1) Revised file functions: Reusable code that does things such as safe path concatenation and parsing without buffer limitations or data duplication. Variants that copy or alter the input path may be based off these. To do: 1) Put dircache functionality back in the sim. Treating it internally as a different kind of file system seems the best approach at this time. 2) Restore use of dircache indexes in the playlist and database or something effectively the same. Since the cache doesn't have to be complete in order to be used, not getting a hit on the cache doesn't unambiguously say if the path exists or not. Change-Id: Ia30f3082a136253e3a0eae0784e3091d138915c8 Reviewed-on: http://gerrit.rockbox.org/566 Reviewed-by: Michael Sevakis <jethead71@rockbox.org> Tested: Michael Sevakis <jethead71@rockbox.org>
2014-08-25Fuze+: fixed brightness settings: previously there were 81 settings for only ↵Avi Eisenberg
26 possible brightnesses, now there are 33 for 33 Change-Id: Idc6e3a635850f3ee54ec23246795af88af960ab0 Reviewed-on: http://gerrit.rockbox.org/916 Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2014-07-01Sony NWZ: calibrate discharge curvesAmaury Pouly
The charging curve also need to be calibrated but that will be part of another commit. Change-Id: Ie4c5995123e4059ae4f3c9d86c11fc1257314d39
2014-06-30sonynwz: fix backlightAmaury Pouly
Apparently the backlight driver is leaking current even when the PWM set to 0. This patch should greatly improve the battery life of the device. Change-Id: I76bbc8a87cae452e599b37de17e91f373cee58bc
2014-06-24zen/zenxfi: don't switch emi on cpu change to avoid screen flickerAmaury Pouly
On those targets, since the LCDIF cannot recover from underflow, changing the EMI frequency kills one frame and cause flicker. Change-Id: Id3c130636bcfddcc6c54896602699fbaa1636ab4
2014-06-24imx233/emi: cleanup and don't change emi freq if not neededAmaury Pouly
Change-Id: I19f633a85bb12f880215905482934e34da549a13
2014-06-24fix whitespaceAmaury Pouly
Change-Id: I12664528fdb0920430557739501367d1ed68346e
2014-06-24zen/zenxfi: switch lcd driver to 24-bit modeAmaury Pouly
Change-Id: I2c42f0e422130bcdaf1aaf92c7b56776752f4f64
2014-05-01regtools: normalise description files, and remove obsolete file. No logical ↵Amaury Pouly
change. Files were generated using utils/regtools/tester in "write" mode. Change-Id: Ib391b8dbb5ec84eb821e0d0a3699d306414f2aa1
2014-04-24imx233: fix commentsAmaury Pouly
Change-Id: I2e907feaec39e6ec1614ed19676b13a1d4f7f6b2
2014-04-23imx233: fix typos and sdmmc bug regarding write bufferAmaury Pouly
The write buffer should not be modified but the current code does and then forget to restore it to its original content. I'm not sure if any code relies to the write buffer to not be modifies by the write function but this seems like a reasonable assumption in general so it's better not to break it. Change-Id: I449a01db2ec51d2273e59b69c59db0e7d2eed3db
2014-04-23imx233: fix sdmmc driver bug when sector count is 0Amaury Pouly
Since the driver will read count-1 sectors, this will stuck the card. Change-Id: Ib80484044acd1fad2914d3ffeb3940a13d2480c4
2014-04-06Complete Plugin Keymaps for Creative Zen X-Fi3David Jilke
This patch completes the plugin keymaps for the Zen X-Fi3 and enables those plugins for compilation. One key was changed in "button-target.h" for compatibility with Rockboy. This also caused the changes to "keymap-zenxfi3.c", to keep the stock functionality (no further changes in here). Change-Id: Ic222faf89e9a9a2332a49d6e532cedb6eb16d3d7 Reviewed-on: http://gerrit.rockbox.org/762 Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2014-03-22zenxfi3: fix horrible bug which prevented the power button to workAmaury Pouly
Change-Id: Ic8e86762f84ca41e931801c1aee08007129eef20
2014-03-09zenxfi: enable speakerAmaury Pouly
Change-Id: I603112d2a348abf92d5c8975ea76d3a57fda7cfc
2014-03-08imx233: rewrite frequency scaling to use the new functionAmaury Pouly
Change-Id: I0f9968de76ce17710d31f7bc609440654e68b6f1
2014-03-08imx233: add function to change cpu/hbus frequency safelyAmaury Pouly
Change-Id: I88e9ad54ba65846ae4d94ae03009b3656f2489f2
2014-03-08imx233: prepare frequency scaling for stmp3700Amaury Pouly
Add entry for stmp3700 maximum frequency which is 320MHz. Change-Id: I6db4aad4efa0a7c1347a1ceb262a0295f63057ae
2014-03-08imx233: fix regulator code on stmp3700Amaury Pouly
For some reason the power subsystem needs to know the relationship between the VDD{D,A,IO} and uses a weird register to do so. Change-Id: I7fcc75f6cc0460b4997914986deda7ca544a4940
2014-03-08zen: handle lcd underflow by handAmaury Pouly
Contrary to the imx233, the stmp37xx lcdif doesn't know how to properly recover from underflow and things are worse because of the errata which makes the lcdif not clear the fifo. Workaround this by detecting underflow and taking action: stop dotclk mode (will clear fifo) and schedule next frame. The dma transfers now write the ctrl register as part of the PIO writes, making the code simpler. Change-Id: I15abc24567f322cd03bf2ef7903094f7f0178427
2014-03-08imx233: add lcdif underflow irq supportAmaury Pouly
Change-Id: Ie3fe223ff40abff38bb9b09f398eb5411fa0be4c
2014-03-03zen/zenxfi: correctly implement lcdif errataAmaury Pouly
Change-Id: Ib2a6000035d70d687025a78bbea416d77af562fe
2014-02-22zenxfi3: fix yellowAmaury Pouly
Change-Id: Id7eca51aa1c19cbb1798a0c8eeb5105ee4dc4769
2014-02-22zenmozaic: enable speaker supportAmaury Pouly
Change-Id: I5f90a9816e9b7ca817fcb3195b63891fda5236f5
2014-02-22stmp3700: implement speaker support by mean of lineoutAmaury Pouly
Change-Id: Ic4c8b536fde7a840d3f3f295531cc1253de6320d
2014-02-22imx233: remove nested irq check from debug menuAmaury Pouly
Change-Id: Ic16c6bf988d21c849488489d1b4a3477f2762afb
2014-02-22imx233: switch debug screen to new button driverAmaury Pouly
Change-Id: I402a2ee1ff11e71702a7a1d6c878eab1e5405313
2014-02-22fuzeplus: switch to new button driverAmaury Pouly
Change-Id: Ida1e5b4913131ec671b2d713743e26a28fca6a25
2014-02-22zenxfi3: switch to new button driverAmaury Pouly
Change-Id: I14b8f35a556ef07cc5fd43c39c6ad17a1229b4f8
2014-02-22zenxfi2: switch to new button driverAmaury Pouly
Change-Id: I5c5bc33d0cc08316e4d853e81a5ba4fb9c5b08d9
2014-02-22nwz{e360,e370}: switch to new button driverAmaury Pouly
Change-Id: Iad08653f6cdbcfd75d3130186f91ed0b49a04ac9
2014-02-22zen{,xfi,mozaic,xfistyle,v}: switch to the new button driverAmaury Pouly
Change-Id: I206b16f6374f536ab6d84e84fefc8370a96ef759
2014-02-22imx233: introduce new generic button driverAmaury Pouly
This driver will subsume the old button-lradc driver and support far more options. It can sense LRADC channels, PSWITCH, GPIOs and it handles special "buttons" like headphone insertion and hold detection. It also provides a more natural description of the buttons using a target-defined table with some macros to make it easy to read and write. It uniformely handles debouncing on LRADC channels and PSWITCH. Change-Id: Ie61d1f593fdcf3bd456ba1d53a1fd784286834ce
2014-02-22imxtools/scsitools: increase SCSI delay to 10 secondsAmaury Pouly
On some OSes like Windows or if running in a virtual machine, the one second timeout might be too short. Change-Id: I717f7a2aaed1cb3d40e8fbe6f9b1081b43ceea95
2014-02-20imx233: split lradc channel setup into source and sampling parametersAmaury Pouly
Change-Id: I1be43fec9622cb78fc5737e5ed8d7fda17baf576
2014-02-18imx233: stop watchdog on exceptionAmaury Pouly
Change-Id: If11d90343d32d5889857e7ba30a99f60a87639f1
2014-02-18imx233: regenerate headersAmaury Pouly
Change-Id: I9dae85eb27337154ddb82015666773a5254cc388
2014-02-17imx233: fix app.lds to properly support INIT_ATTRAmaury Pouly
Original fix by Marcin: it had a problem because crt0 on imx233 is more complicated than many targets: since we use virtual memory, we first disable the MMU, then move the entire image (including init and itext stuff), then setup a temporary stack to setup the MMU. Only when the MMU is enabled, can we move the init and itext stuff to its right location and finally boot. This requires some trickery because: - the initial move copies everything, including init and itext - the stack overlaps with init and itext to reclaim space - the temporary stack cannot be the same as the main stack to avoid trashing the init and itext code, also it needs to be a physical address Change-Id: Ibaf331c7d90b61f99225d93c9e621eb0f3f8f2dc
2014-02-17Revert "imx233: fix app.lds to properly support INIT_ATTR"Amaury Pouly
This reverts commit 2b02cbe1ccbf2fcdcc164c6a4139f6666aed23c9. For some reason it breaks the build, more investigation is needed.
2014-02-16imx233: rework interrupt nesting, disabled for nowAmaury Pouly
Rework the irq code, to put more code in the C part. When interrupt nesting is enable, Rockbox gets pretty unstable so disable it for now. Change-Id: Iee18b539c80ea408273f6082975faaa87d3ee1b6
2014-02-16zenxfistyle: implement speaker supportAmaury Pouly
Change-Id: If59aaacdea9f57932464a1615f2b80e410ec50dc
2014-02-16zenxfi2: implement headphones detectionAmaury Pouly
Change-Id: Ifbc8b10cebb3b7b126f1d6a212f6731f91e234e4
2014-02-16zenxfi2: add speaker supportAmaury Pouly
Change-Id: I37b85e23e6af92939700d640dbea74c646f49b7b
2014-02-16imx233: add support for speaker on stmp3780Amaury Pouly
Change-Id: I990ca2bd43e12047e257f85ff06f046dfa3f94b3
2014-02-16imx233: avoid overlapping text in debugAmaury Pouly
Change-Id: I9cb456ab60c0d05f202791ed8114a80d2819c399
2014-02-11imx233: cleanup in sdmmcAmaury Pouly
Change-Id: I82eac65b1bf9f2e963c4ebfb7c22da678ae63642
2014-02-10imx233: fix app.lds to properly support INIT_ATTRMarcin Bukat
Change-Id: I1a917511e7e1540856815c77c4d996d1b8a03606 Reviewed-on: http://gerrit.rockbox.org/725 Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>