summaryrefslogtreecommitdiff
path: root/firmware (follow)
Commit message (Collapse)AuthorAge
...
* iPod Classic: update documentation on PMU targetCástor Muñoz2016-01-12
| | | | Change-Id: I936889872f83521731e81a972657086a357bb5eb
* iPod Classic: use uncached memory for USB driverCástor Muñoz2015-12-17
| | | | Change-Id: I0e72b4a452a17ec894c975dfee4baee878113ff8
* iPod Classic: add non-cached memory regionCástor Muñoz2015-12-17
| | | | | | | | Configures uncached memory region and adds some defines for misc HW, for compability with the bootloader and other future use, current functionality should not be affected. Change-Id: I390e79bea1aef5b10dfbc72ad327d7fe438ec6f5
* iPod Classic: clickwheel fixesCástor Muñoz2015-12-17
| | | | | | | | | | | | | | | | | | | | | | Uses GPIO.E2 (Request To Send) to detect the holdswitch status, it is a temporal workaround that seems to work on all models. Holdswitch status must be detected to drive low GPIO.E2 (RTS) and GPIO.E4 (Data Out) when the holdswitch is locked, otherwise battery life decreases about 25%. Holdswitch unlock action is detected by reading the HELLO message that the external wheel controller sends when it is powered on, this allows to quickly capture clickwheel activity after unlock. GPIO.E2 is also used in case the HELLO message is missed because the holdswitch was unlocked before Rockbox/bootloader starts. These 2 lines (RTS and DOUT) can not be used to transmit messages to the external clickwheel controller, not a problem, actually no messages are sent while normal operation, only at initialization stage. Change-Id: I415fe54bfcbc2086d0f56d7affe6f789ce81a6db
* iPod Classic: set initial USB current limit to 500mACástor Muñoz2015-12-17
| | | | Change-Id: Ie56951457e45da04d8e93b53f5cc8f80f9a69de3
* iPod Classic: prepare LCD driver for the bootloaderCástor Muñoz2015-12-17
| | | | | | Optimizes encoding of LCD command sequences. Change-Id: I9d1eb735e5a972c1a176177ed570a3fe991d7b9f
* iPod Classic: s5l8702 clocking rewrite+documentationCástor Muñoz2015-12-17
| | | | | | | | | | | | | | | | | This is a rewrite of the clocking section, the resulting system frequencies are the same as the current git version. This pàtch uses fixed FClk and just one register is written to switch all system frequencies, it needs less steps than the current git version to reach the desired frequency, so it is faster and safer. Includes functions to step-up/down over a table of predefined set of frequencies. The major difference is that Vcore is decreased from 1050 to 1000 mV. See clocking-s5l8702.h for more information. Change-Id: I58ac6634e1996adbe1c0c0918a7ce94ad1917d8e
* YH8xx,YH9xx: Keymap improvementSebastian Leonhardt2015-11-15
| | | | | | | | | | | | | | | The main "innovation" in this patch are two "virtual buttons" for the record switch on YH92x targets. When the switch state changes, a single BUTTON_REC_SW_ON or .._OFF button event will be generated. Thus keymap code can react on switching, but not on the actual state of the switch. Wherever sensible, the following user scheme is applied: - use PLAY as confirm button - use REW button or Long REW to exit - use REC (YH820) or FFWD (YH92X) as modifier key for button combos Change-Id: Ic8d1db9cc6869daed8dda98990dfdf7f6fd5d5a1
* iPod Classic: enable AB repeatCástor Muñoz2015-10-17
| | | | Change-Id: I58f3b0a3e4d8a1649d5549c312e6a259bce697a4
* Samsung YH820/YH92X: different way of powering off to avoid poweringSzymon Dziok2015-10-14
| | | | | | on after powering off in a loop on YH92X. Change-Id: I5e5a4fe23c87286045ac82aff5c38bff6331a7f4
* Fix (D)EBUG compilation errors on targets using FATCástor Muñoz2015-10-09
| | | | Change-Id: I9517f9b470076a6febeafae76d735c2436812e7c
* iPod Classic: reads HDD S.M.A.R.T. dataCástor Muñoz2015-10-07
| | | | | | | | Adds ata_read_smart() function to storage ATA driver, current SMART data can be displayed and optionally written to hard disk using System->Debug menu. Change-Id: Ie8817bb311d5d956df2f0fbfaf554e2d53e89a93
* iPod Classic: initialize USB power configurationCástor Muñoz2015-10-07
| | | | | | | | | | | | | | | | | | | | | | | This patch limits the drawn USB current to 100/500mA, instead of the actual 200/1000mA settings. It also initializes other USB power related GPIOs. Solves some USB disconnect issues: FS#12990, FS#12956. I am using a powered USB HUB with no problems (Vusb=5.05V unloaded), but there are lots of USB disconnects when using the motherboard USB ports (Vusb=4.91V), this patch solves all my issues. Actually, it seems that the USB current drain is limited to 1000mA, when a load peak occurs most USB2 ports deliver more than 500mA, as current consumption increases the USB voltage decreases, an excesive voltage drop produces USB disconnections. Limiting USB current drain to 500mA also limits the voltage drop, preventing subsequent USB failures. Anyway, to minimize voltage drop, it is recommended to use quality cables and preferably connect to USB ports with higher Vusb. Change-Id: I1b931aa18ec93bfd1214e475a72e42893eff52f6
* iAP: lingo 1 (microphone)Cástor Muñoz2015-10-07
| | | | Change-Id: I65da2064951972368a2880d271280e5b5ae878fe
* iPod Classic: implement IPOD_ACCESSORY_PROTOCOLCástor Muñoz2015-10-07
| | | | Change-Id: I0f0950c42ae5bf5c5b4c2c2f097f8c68a92ba4dd
* iPod Classic: implement HAVE_SERIALCástor Muñoz2015-10-07
| | | | Change-Id: I24a861cd45095d858d1a7db39969f6eda17cc563
* iPod Classic: introduce s5l8702 UART driverCástor Muñoz2015-10-07
| | | | | | | | | - polling/IRQ modes for Tx/Rx (TODO?: DMA) - fine adjust for Tx/Rx bitrates - auto bauding using HW circuitry - status and stats in debug screen Change-Id: I8650957063bc6d274d92eba2779d93ae73453fb6
* ipod Classic: implement HAVE_RECORDINGCástor Muñoz2015-10-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch has been tested on iPod 80 and 160slim, actually it works but some updates must be done to the final version: - unlimitted input buffer - decrease CHUNK_SIZE - use non-cached addresses instead of discard d-cache ??? Capture hardware versions: Ver iPod models capture support --- ----------- --------------- 0 80/160fat dock line-in 1 120/160slim dock line-in + jack mic HW version 1 includes an amplifier for the jack plug mic. Capture HW detection only tested on iPod 80 and 160slim. CODEC power: AFAIK, OF powers CS42L55 at VA=2.4V for capture (1.8V for playback) and turns on the ADC charge pump. CODEC datasheet recommmends to disable the charge pump for VA>2.1V. CS42L55 DS, s4.13 (Required Initialization Settings): for VA>2.1V, some adjustments "must" be done using undocummented "control port compensation" registers. OF does not modifies these registers when VA=2.4V. This patch configures capture HW in the same way as OF does. TODO: - ADC full scale voltage depends on VA, perform tests to find clipping levels for VA=1.8V and VA=2.4V Change-Id: I7e20fd3ecaa83b1c58d5c746f5153fe5c3891d75
* iPod Classic: capture support for CS42L55 codecCástor Muñoz2015-10-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are a couple of power saving options that can be selected using defines, they configure the CODEC in a different way than OF does: MONO_MIC: jack microphone is connected to left channel, disabling right channel saves ~1 mW, there is no reason to not to do it. BYPASS_PGA: this option only applies to the line-in, OF does not bypass the PGA and configures it to 0 dB gain. At the beginning, this patch was written based on CODEC datasheet, bypassing PGA because it saves power and incrementes dinamic range ~1dB, i have used this setup for a while without problems. Finally this option was disabled at the last minute, i decided to do it after reviewing the OF and realizing that CS42L55 datasheet recommends to bypass the PGA only if the HW includes a couple of capacitors (see Typical Connection Diagram, Note 4), at this moment i don't know if Classic includes these capacitors (probably not). Anyway, i am not able to tell the difference listening to voice recodings. TODO: - Use variable PGA gain for jack microphone (it is fixed to +12 dB. as OF does). - I am not a fan of having lots of unused #define options, these could be useful for a generic driver but actually this driver is Classic oriented, i am not sure if it could be considered disirable to eliminate them in the final version. Change-Id: I3dadf2341f44d5e13f3847e6c9de4a76cd6f0918
* iPod Classic: use new PL080 DMA driverCástor Muñoz2015-10-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch uses the new pl080 DMA driver for I2S playback and LCD update. I have tried to be as fiel as possible to the current behaviour, algorithms and configurations are the same, but using the new driver. Other modifications: Playback: - CHUNK_SIZE is decreased from 42988 to 8188 bytes, it does not affect normal playback (block size 1024), was tested using metronome (block size 46080). This change is needed because the new code commits d-cache range instead of commiting the whole d-cache, maximum time spent commiting the range should be limited, CHUNK_SIZE can be decreased even more if necessary. - pcm_play_dma_start() calls pcm_play_dma_stop() to stop the channel when it is running (metronome replays the tick sound without stopping the channel). - pcm_play_dma_get_peak_buffer(): same as actual SVN function but returns samples count instead of bytes count. TODO: AFAIK, actually this function is not used in RB. Not tested, but probably this function will fail because it returns pointers to the internal double buffer. LCD update: - suppresses lcd_wakeup semaphore and uses yield() Change-Id: I79b8aa47a941e0dd91847150618f3f7f676c26ef
* iPod Classic: introduce PL080 DMA controller driverCástor Muñoz2015-10-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Motivation: This driver began as a set of functions to help to test and experiment with different DMA configurations. It is cumbersome, time consuming, and leads to mistakes to handle LLIs and DMA registers dispersed along the code. Later, i decided to adapt an old DMA queue driver written in the past for a similar (scatter-gather) controller, all task/queue code is based on the old driver. Finally, some cleaning and dmac_ch_get_info() function was added to complete RB needs. Description: - Generic, can be used by other targets including the same controller. Not difficult to adapt for other similar controllers if necesary. - Easy to experiment and compare results using different setups and/or queue algorithms: Multi-controller and fully configurable from an unique place. All task and LLI management is done by the driver, user only has to (statically) allocate them. - Two queue modes: QUEUE_NORMAL: each task in the queue is launched using a new DMA transfer once previous task is finished. QUEUE_LINK: when a task is queued, it is linked with the last queued task, creating a single continuous DMA transfer. New tasks must be queued while the channel is running, otherwise the continuous DMA transfer will be broken. On Classic, QUEUE_LINK mode is needed for I2S continuous transfers, QUEUE_NORMAL is used for LCD and could be useful in the future for I2C or UART (non-blocking serial debug) if necessary. - Robust DMA transfer progress info (peak meter), needs final testing, see below. Technical details about DMA progress: There are comments in the code related to the method actually used (sequence method), it reads progress without halting the DMA transfer. Althought the datasheet does not recommend to do that, the sequence method seems to be robust, I ran tests calling dmac_ch_get_info() millions of times and the results were always as expected (tests done at 2:1 CPU/AHB clock ratio, no other ratios were tried but probably sequence method will work for any typical ratio). This controller allows to halt the transfer and drain the DMAC FIFO, DMA requests are ignored when the DMA channel is halted. This method is not suitable for playback because FIFO is never drained to I2S peripheral (who raises the DMA requests). This method probably works for capture, the FIFO is drained to memory before halting. Another way is to disable (stop) the playback channel. When the channel is disabled, all FIFO data is lost. It is unknown how much the FIFO was filled when it was cleared, SRCADDR counter includes the lost data, therefore the only useful information is LINK and COUNT, that is the same information disponible when using the sequence method. At this point we must procced in the same way as in sequence method, in addition the playback channel should be relaunched (configure + start) after calculating real SRCADDR. The stop+relaunch method should work, it is a bit complicated, and not valid for all peripheral FIFO configurations (depending on stream rate). Moreover, due to the way the COUNT register is implemented in HW, I suspect that this method will fail when source and destination bus widths doesn't match. And more important, it is not easy to garantize that no sample is lost here or there, using the sequence method we can always be sure that playback is ok. Change-Id: Ib12a1e2992e2b6da4fc68431128c793a21b4b540
* iPod Classic: s5l8702 GPIO interrupt controller.Cástor Muñoz2015-10-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch implements a simple API to use the external interrupt hardware present on s5l8702 (GPIO interrupt controller). This GPIOIC has been fully tested using emcore apps. Code is based on openiBoot project, there are a few modifications to optimize space considering we will only use two or three external interrupts. The API compiles and works, but has been never used, therefore probably will need some changes to the final version. External interrupts are necessary for jack remote+mic controller (see iAP Interface Specifiction: Headphone Remote and Mic System), this controller is located at I2C bus address 0x72, there is a IRQ line for remote button press/release events routed to GPIO E6. At this moment, the functionallity of this controller has been extensively tested using emcore, getting a lot of information about how it works. Microphone is already working on RB, jack accessory detection and button events are work in progress. PMU IRQ line is also routed to GPIO F3, it signals many events: holdswitch, usb plug, wall adapter, low battery... The use of PMU interrupts is the orthodox way of doing things, at this moment there is no work done in this direction, there are a lot of PMU events and i think it is a matter of discursion what to do and how. Change-Id: Icc2e48965e664ca56c9518d84a81c9d9fdd31736
* Samsung YHxxx: reduce pop noise on power downSebastian Leonhardt2015-09-24
| | | | Change-Id: Ifc82ac1051ed05527393838d8aa93bde65287b5d
* iPod Classic: do not use HDD features on CE-ATA drivesCástor Muñoz2015-07-17
| | | | | | Fix an 'ATA error' issue that affects CE-ATA devices. Change-Id: I246348bb0506155b096ed8559dcf1b0b0fab3596
* AS3543: Fix recording volume setting and voiceMihail Zenkov2015-06-02
| | | | | | Fix regressions introduced by 42219b6e7 Change-Id: I1f3edb5f269f60e9431b45a43c4370836ecac733
* AMS: Change DMA transfer size for audio.Mihail Zenkov2015-06-01
| | | | | | Slightly reduces power consumption due to DMA overhead. Change-Id: I8576e9e243ce13a71cde710c3a726dce19bafb97
* AMS: Fix pop-clicks noise on play/stop.Mihail Zenkov2015-04-09
| | | | | | | This noise itroduced by starting/stopping I2SO MCLK. Enable MCLK permanently fix it. Change-Id: I6d9c51e5ea5bca13026833d2bfdda49d94c6b723
* Fix a race condition in as3525 I2C driver caused by stacked ISRs.Michael Sevakis2015-03-16
| | | | | | | | | It was possible for interrupts of higher priority than the current IRQ level to attempt to restart the interface while it was still active on a transfer. The list modification also wasn't protected within the I2C ISR itself. Change-Id: I70635c307a1443bba6801c588cf1efde299db9a4
* Fix warnings in firmware/screendump.cFranklin Wei2015-02-24
| | | | Change-Id: If01caf8a124e925b308bdefc6327420dde355ac9
* Fix whitespace in firmware/screendump.cFranklin Wei2015-02-24
| | | | Change-Id: Id3b4f259a6ae77bde02c040fe67fd21e29e2aa04
* Fix warning in firmware/common/structec.cFranklin Wei2015-02-24
| | | | Change-Id: I3de9891042b7ae7ce695209c651bd075c861928d
* Whitespace fixes in firmware/common/structec.cFranklin Wei2015-02-24
| | | | Change-Id: I2a6c5d5bd0c5b8fb516e167df74dc1f18508d702
* Revert "usb_storage: make it a bit more correct"Amaury Pouly2015-02-16
| | | | | | Clearly this was a stupid commit, no idea why I did that. This reverts commit 074e911859a0d3464fde9b701b3cff712c5826e0.
* iBasso DX90 sound enabling fixEduard Kutuev2015-02-14
| | | | | | Writing 0 instead of '0' to /sys/class/codec/wm8740_mute enables sound on DX90. Change-Id: Ie8e3980cac6b9298ef2c94f2faac023811d47b32
* iBasso DX50: Digital filter roll off setting.Udo Schläpfer2015-02-07
| | | | | | | | | This patch enables "Settings -> Sound Settings -> DAC's filter roll-off" for the iBasso DX50. Confirmed working on iBasso DX50, firmware 1.6. Change-Id: I901615541d8fa4f6550c5156cf8c6069f5bdf9d0
* iBasso DX50/DX90: User selectable USB mode.Udo Schläpfer2015-02-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | Depends on http://gerrit.rockbox.org/r/#/c/1043/. This patch adds a new setting in Settings -> General -> System: USB Mode. Usable in Quickscreen and Shortcuts. Possible settings are: - Mass Storage: The default, on USB connect export the internal and external drives as usual. Rockbox will exit gracefully in this case, since the internal drive (/mnt/sdcard) is exported as mass storage device and Android prevents Rockbox from continued execution. - Charge Only: USB charge only, do not export the internal and external drives. This will not close Rockbox. - ADB: Enable the Android Debug Bridge. This will not close Rockbox. Charge only and ADB are actually the same, since it is not yet established if charge only is doable without adb and major hooks into Android. German translation provided. This may be genric for Android based devices but is only enabled for iBasso Devices. Other maintainers may choose do adopt this. Change-Id: I616247c29946c6595ebcf8f0c14b2410c9f0498b
* iBasso DX50/DX90: User selectable freq scaling governor.Udo Schläpfer2015-02-02
| | | | | | | | | | | | | | | | | | | | | | Depends on http://gerrit.rockbox.org/r/#/c/1043/. This patch adds a new setting in Settings -> General -> System: Freq Scaling Governor Usable in Quickscreen and Shortcuts. Possible settings are: - Conservative: Slow frequency switching. - Ondemand or Interactive: Fast frequency switching. - Powersave: Allways lowest frequency. - Performance: Allways highest frequency. German translation provided. This may be genric for Android kernel based devices but is only enabled for iBasso Devices. Other maintainers may choose do adopt this. Change-Id: I10296f5be9586ad3a409105db0cd03682a30e9c1
* iBasso DX50/DX90: Major code cleanup and reorganization.Udo Schläpfer2015-02-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reorganization - Separated iBasso devices from PLATFORM_ANDROID. These are now standlone hosted targets. Most device specific code is in the firmware/target/hosted/ibasso directory. - No dependency on Android SDK, only the Android NDK is needed. 32 bit Android NDK and Android API Level 16. - Separate implementation for each device where feasible. Code cleanup - Rewrite of existing code, from simple reformat to complete reimplementation. - New backlight interface, seperating backlight from touchscreen. - Rewrite of device button handler, removing unneeded code and fixing memory leaks. - New Debug messages interface logging to Android adb logcat (DEBUGF, panicf, logf). - Rewrite of lcd device handler, removing unneeded code and fixing memory leaks. - Rewrite of audiohw device handler/pcm interface, removing unneeded code and fixing memory leaks, enabling 44.1/48kHz pthreaded playback. - Rewrite of power and powermng, proper shutdown, using batterylog results (see http://gerrit.rockbox.org/r/#/c/1047/). - Rewrite of configure (Android NDK) and device specific config. - Rewrite of the Android NDK specific Makefile. Misc - All plugins/games/demos activated. - Update tinyalsa to latest from https://github.com/tinyalsa/tinyalsa. Includes - http://gerrit.rockbox.org/r/#/c/993/ - http://gerrit.rockbox.org/r/#/c/1010/ - http://gerrit.rockbox.org/r/#/c/1035/ Does not include http://gerrit.rockbox.org/r/#/c/1007/ due to new backlight interface and new option for hold switch, touchscreen, physical button interaction. Rockbox needs the iBasso DX50/DX90 loader for startup, see http://gerrit.rockbox.org/r/#/c/1099/ The loader expects Rockbox to be installed in /mnt/sdcard/.rockbox/. If /mnt/sdcard/ is accessed as USB mass storage device, Rockbox will exit gracefully and the loader will restart Rockbox on USB disconnect. Tested on iBasso DX50. Compiled (not tested) for iBasso DX90. Compiled (not tested) for PLATFORM_ANDROID. Change-Id: I5f5e22e68f5b4cf29c28e2b40b2c265f2beb7ab7
* CPUFreq scaling governor interface for Linux/Android hosted devices.Udo Schläpfer2015-01-30
| | | | | | For a usage example see http://gerrit.rockbox.org/r/#/c/1074/ Change-Id: I1d61e0eba6552a9b5d6e15a2e3169435b2f7079d
* iBasso DX50/DX90: CPU info enhancements.Udo Schläpfer2015-01-30
| | | | | | | | | | | | System -> Debug (Keep Out) -> View CPU stats Will now show the current cpufreq scaling governor, minimum, current and maximum cpufreq scaling frequency for each CPU. This may be genric for Android kernel based devices but is only enabled for iBasso Devices. Other maintainers may choose do adopt this. Change-Id: I53e212f8707bf2abaa557e297293fb559ac37058
* ypr0/ypr1: GPIO handling API refactoringLorenzo Miori2015-01-29
| | | | | | | | | | The GPIO APIs for ypr0 and ypr1 targets was messy, requiring a direct communication via several ioctls calls. Since it is planned to add support to other devices, more GPIO are going to be used. For that reason the functions shall be clear and easy to use. Change-Id: Ia2304335e1fed1305cc2c4320bd4c097e13079be
* yp-r0: improve the charging codeLorenzo Miori2015-01-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some people reported strange charging times and strange battery life. Charging by OF: 25 hours; RB: 18 hours It has been found that there are at least two issues here: 1) the way of getting battery charging status wasn't really accurate. This attempts to fix that issue. This patch also simplifies some code (opening a device is no more needed, for example). To technically explain, battery charging implies first a constant current mode (where the voltage increases) and then a constant voltage mode (where, obviously, the voltage reads more or less the same). The old way the End Of Charge was detected was based solely on the voltage, while now it is based on chip's EOC interrupt, which should be more accurate. 2) OF explicitly sets a constant current 350 mA, while we usually had 55 mA (by as3543 default). This wasn't discovered before since there is a caching problem ("an accurate guess") in the Samsung power mgmt Linux module, thus its debugging dumper wasn't really working, reporting a 55 mA current. Strangely this option should have been set by the bootloader but apparently it does not. Some testing is still needed, but I confirm that with this patch I could run a benchmark for 25 hours (vs. 18 hours), by charging within Rockbox of course. Change-Id: I3bd921e86b9018d1cc3c720d15cc46896e8490b3
* Bypass the AS3543 audio mixer at higher volumes.Mihail Zenkov2015-01-19
| | | | | | This change reduces noise and distortion very slightly at higher volumes. Change-Id: I1a2eb160c2956de90764c0bb11677fdac8d96dec
* Don't return pointer to array allocated on the stackThomas Jarosch2015-01-13
| | | | | | | | | | It will be out of scope once the function is left. cppcheck reported: [firmware/drivers/rtc/rtc_zenvisionm.c:31]: (error) Pointer to local array variable returned. [firmware/drivers/rtc/rtc_zenvisionm.c:38]: (error) Pointer to local array variable returned. Change-Id: Ibf28ba9b3d20cadcaff22398e143488c86746660
* Fix red/yellow round #2Marcin Bukat2015-01-12
| | | | Change-Id: Ife25eac11fc6f6cedeca8f3fa59536bce0efe2cd
* Fix red/yellowMarcin Bukat2015-01-12
| | | | Change-Id: Ie01251af2cd843979b5fdefcfa541ba377d13bd7
* Get rid of stupid _backlight_* function namesMarcin Bukat2015-01-12
| | | | | | _remote_backlight_* and _buttonlight_* are cleaned as well Change-Id: I73653752831bbe170c26ba95d3bc04c2e3a5cf30
* Limit more variables to file scopeThomas Jarosch2015-01-11
| | | | Change-Id: I30219d626316776eb73b4205d63376fa3dbc6361
* Improve readability by adding parenthesisThomas Jarosch2015-01-11
| | | | Change-Id: Iff51ab441a59f1ba842132b809a49d1fe7232e05
* Make a few local variables staticThomas Jarosch2015-01-11
| | | | Change-Id: Ieb77a7f2cdf765afa3121320d03c0478cd97eb0f