Commit graph

9582 commits

Author SHA1 Message Date
Richard Quirk
71f70112b2 Add set_sleeptimer_duration function in minutes
Make set_sleep_timer a static function and only call
set_sleeptimer_duration externally, which is always called with minutes
values.

Change-Id: I985308bf014e354f91c47a0b2bf62f4f5a591919
Reviewed-on: http://gerrit.rockbox.org/327
Reviewed-by: Jonathan Gordon <rockbox@jdgordon.info>
2012-10-06 11:59:13 +02:00
Thomas Martitz
706b920b99 kernel: Allow queue_wait_w_tmo() to be called with TIMEOUT_BLOCK.
Previously TIMEOUT_BLOCK would be handled the same as TIMEOUT_NOBLOCK, i.e.
poll only without thread switch, which is rather unexpected from *_w_tmo()
functions. No current code doesn't call it that way yet.

Change-Id: I370ce0f752681122d197eadeee9ab17112647c20
2012-09-28 19:40:17 +02:00
Andrew Ryabinin
548dcc3c6a hm60x/hm801: Fix blinking white screen.
Change-Id: Ia435616872d5d4adb117d507bdb135bccf083b05
2012-09-27 22:00:58 +04:00
Andrew Ryabinin
82d882e1e2 Fix type cast for LCD_BUFF.
We should cast to (volatile uint32_t*) here, because attempt to refer to volatile
object through use of an lvalue with non-volatile-qualified type will result in
undefined behavior.

Change-Id: I1b2e9688af11d3dcba518a5e31865d703b54b635
2012-09-27 14:26:47 +04:00
Marcin Bukat
1e5e022a39 rk27generic: Enable frequency scaling
Change-Id: Ia806994fc77c93fbd4c4c5ec234bb0f34641303a
2012-09-27 09:46:27 +02:00
Andrew Ryabinin
84134f737f rk27xx lcd code rework
Use DMA engine for fullscreen updates and bypass mode for partial
updates. This gives major boost on rk27generic:
default ARM:AHB:APB 200💯50
HEAD    1/1:  26.3fps 1/4: 105.0fps
patched 1/1: 116.5fps 1/4: 249.5fps

with freq scalling NORMAL mode ARM:AHB:APB 50:50:50
HEAD    1/1:  13.1fps 1/4: 52.5fps
patched 1/1:  54.5fps 1/4: 119.0fps

Tested on rk27generic noname DAP and on Hifimans.

Change-Id: Id9dd4d2d61542c7ea6b5c6336b170d6357cefde9
2012-09-27 09:42:44 +02:00
Marcin Bukat
72ebcbf73b rk27xx: Fix commit_discard_idcache()
This version resembles how OF handle cache invalidates.
This seems to fix mysterious data aborts on plugin/codec loading
after introducing frequency scaling.

Credit goes to mortalis for pinpointing the reason of aborts.

Change-Id: I3477b3f65d593d7b43c36a0b06d863f71f000812
2012-09-19 20:44:36 +02:00
Amaury Pouly
49cded1704 imx233: properly disable frequency scaling for now
Change-Id: I3d700762a7f46e82ac99fed03e1aa9448b6cba47
2012-09-04 20:25:46 +02:00
Marcin Bukat
072badeafb rk27xx: Put some nand handling functions for reference
The functions document my reverse engineer findings about nand
controller. This code is commented out and is purely for reference
as FTL scheme is still unknown.

Change-Id: I70edeb4bfb0cbd51b6adc15afa7193dd8f71e8da
2012-09-04 09:48:48 +02:00
Amaury Pouly
a1b101b107 imx233: disable cpu frequency scaling
Frequency scaling seems to be unstable and causes the device to
freeze. It is unclear why at the moment, perhaps we need to ramp
up the vddd voltage to avoid a false brownout ?

Change-Id: I7aaea9d7c213922a65250fe50775fb785d430226
2012-09-04 00:35:58 +02:00
Amaury Pouly
c8e7964e81 imx233: more consistent debug screen
Change-Id: Ia6a869ec22734f95af2b453e01471b0656b7a273
2012-08-31 23:32:16 +02:00
Amaury Pouly
3a1ba755c6 imx233: fix auto slow divisor
The divisor must be set only when auto-slow is disabled.

Change-Id: I31ed94f43a7c9deb80275dc73f8e3c78463b54c0
2012-08-31 01:24:51 +02:00
Amaury Pouly
ee21359437 fix comment
Change-Id: I3a20b30e5707e98ffd5dfe3d0f267c5b2d4e7753
2012-08-31 01:06:57 +02:00
Amaury Pouly
4faaca13ca fuze+: use safer battery shutoff and dangerous levels
Change-Id: I68258828afd3021bab2067e5af0a5dcd2d44de04
2012-08-31 00:56:55 +02:00
Amaury Pouly
d6732a1a9b fix comment
Change-Id: I9eaa21ecfafda9679b4aa1a3d15fa7a550b48876
2012-08-30 23:13:35 +02:00
Amaury Pouly
8723132aaa fix red
Change-Id: I1ee070291d70b2e30ac2096aa8b3b89e6fcdeff1
2012-08-30 21:17:34 +02:00
Amaury Pouly
16dc22f2be fix red
Change-Id: I6bc5fd019160b05f48c9a65639e1025899651f1e
2012-08-30 21:13:28 +02:00
Amaury Pouly
13912fa1de imx233: fix clktrl auto slow function
Change-Id: I6c004836562b0605530ac334434b17afa89ebad5
2012-08-30 20:57:42 +02:00
Amaury Pouly
c9ad8688f1 imx233: implement basic frequency scaling and enable auto-slow
This does not scale the EMI frequency and keep the processor
betweel 261MHz and 454MHz. It can still be improve. The auto-slow
divisor could still be change, 8 seems reasonable for now

Change-Id: I639bb3f6b7f8efedc7dc58d08127849156eeb1b6
2012-08-30 20:56:39 +02:00
Amaury Pouly
6c2190ea04 fuze+: battery calibration
Change-Id: Iaaca5caa35b9624d8dd9ea14eabde24c5667e892
2012-08-30 20:40:13 +02:00
Amaury Pouly
7ff78c4ccb imx233: fix compilation of sdmmc for non-mmc targets
Change-Id: I0f61d0ca8e385fbfeaba53b81c3320b24aa61ab9
2012-08-30 17:28:13 +02:00
Marcin Bukat
722e24a76a rk27xx: implement frequency scalling
Implemented scheme:
        ARM AHB APB
Normal   50  50  50 MHz
Max     200 100  50 MHz

Frequency scaling is disabled on rk27generic due to too
slow lcd updates when running with 50MHz AHB.

battery_bench shows ~1h runtime improvement on hifiman.

Change-Id: I2c6f8acf6d4570c4e14f5bcc72280b51ce13c408
2012-08-30 13:50:36 +02:00
Amaury Pouly
417da66bb3 fix yellow
Change-Id: I798826c8240fa9ce5a87cb0443002ca1b8882922
2012-08-30 01:16:45 +02:00
Amaury Pouly
7ee1e30609 imx233: add regulator api
Remove the old debug stuff about VDDx and add a clean api to
get/set the regulator (VDDD, VDDA, VDDIO, VDDMEM). This is useful
for proper frequency scaling.

Change-Id: Ia5a1a712fd66652a8ad9601ed00db31aba5a7561
2012-08-30 01:10:36 +02:00
Amaury Pouly
51f63f0b2a imx233: fix header, add emi function
Change-Id: I1030e94f0dad4b66646cafa20b61df8a5c7f9278
2012-08-30 01:10:36 +02:00
Amaury Pouly
c9b4b4ea7b imx233: fix idle storage notification for sd/mmc driver
Change-Id: Ia70a0058f0e86824e2b0d74d12e369295629eb5a
2012-08-30 01:10:36 +02:00
Frank Gevaerts
9e61976a19 Only build LOGFDISK for SWCODEC.
Due to the way Archos devices (i.e. the only HWCODEC devices) boot,
memory is tight these days. Disabling LOGFDISK on them will make them
work for now. In the long term a better solution is needed.

Change-Id: Ifc6bb97a81cc33545294e319bbc0a6c499788d39
2012-08-28 21:48:30 +02:00
Marcin Bukat
2b6886d107 rk27xx: Turn off lsadc clock when not in use
Change-Id: Ic3f29e75aa5b894f17e289263a370fac13e2f1d8
2012-08-27 23:32:23 +02:00
Marcin Bukat
ae27c331e1 rk27xx: Turn off i2c clock when not in use
Change-Id: Ifc6c25a53ace1a5f4d716a33d4979ea0a37fac98
2012-08-27 23:18:31 +02:00
Amaury Pouly
4d8c5e59e7 imx233: sdmmc driver enhancement
Implement cache aligned transfer of more than one sectors. The
current code now transfers almost all data at once by moving
it within the buffer to make it cache aligned. This greatly
improves the performance of the transfers, especially in mass
storage mode.

Change-Id: Ic6e78773302f368426209f6fd6099089ea34cb16
2012-08-23 15:06:45 +02:00
Amaury Pouly
06aa7e83a9 imx233: remove debug panic
Change-Id: I7b6bf2bcac31ff65ae17f4a833587f4a5c9e6d7a
2012-08-21 16:30:13 +02:00
Amaury Pouly
41bf9ebc89 imx233: simplify sd/mmc driver
Further merge drivers by using the same command and data functions.
No use one mutex per drive instead of a global sd lock. Fix the
RCA handling which was different between SD and MMC (shifted 16)
and thus confusing. Add MMC commands definition to the mmc.h
header similarly to the SD one. Change MMC handling a bit by
selecting/deselecting on each transfer like SD, which allows
for several MMC devices in theory and is more uniform.

Change-Id: I7024cb19c079553806138ead75b00640f1d2d95c
2012-08-21 16:28:36 +02:00
Amaury Pouly
4908b8eb1c imx233: merge sd and mmc drivers, fix dma issues
Merge sd and mmc drivers into a single sdmmc driver. This allows
some factoring of the code and simplify bug fixing. Also fix the
dma/cache related issue by doing all transfers via a correctly
aligned buffer. The current code is not smart enough to take
advantage of large user buffers currently but at least it is safe!

Change-Id: Ib0fd16dc7d52ef7bfe99fd586e03ecf08691edcd
2012-08-18 18:24:42 +02:00
Amaury Pouly
4604e984e8 imx233: rework i2c driver to fix dma issues
There are tricky DMA/cache related issue on the imx233 which could
pop up with the old driver. The new one ensures that all dma
tranfers are cache safe by using an intermediate buffer.

Change-Id: I72060682d1c285c83ae16455cfdb62f372b5d687
2012-08-18 15:38:43 +02:00
Amaury Pouly
246c2127a7 imx233: small dma changes, update debug screen
Reduce DMA maximum transfer size since transfering 64Kb requires
to set a size of 0 and it's not worth adding checks everywhere
to handle this special case. Also add statistics about unaligned
transfer (wrt to cache). Update debug screen accordingly and
simplify it so it can fit smaller screens too.

Change-Id: I18391702f5e100a21f6f8d1ebab28d9f2bd8c66f
2012-08-18 15:22:51 +02:00
Amaury Pouly
51919937a9 imx233: fix comment
Change-Id: I86d6e61a497780a9e22ea16075b055c3d7455630
2012-08-18 14:55:41 +02:00
Amaury Pouly
ce54e747dc imx233: fix style
Change-Id: I45813d1f34aff74c6b88c84bae6c0feeb4422ed7
2012-08-18 14:55:41 +02:00
Michael Giacomelli
6f55433b01 Don't enable log to disk on PCTOOL builds since there is no disk to log to.
Change-Id: Ida589bcd20227f626349f80293bb423d784519be
2012-08-06 19:26:33 -04:00
Michael Giacomelli
633dd49283 Remove copy/pasted preprocessor defines that shouldn't have been included.
Also, add dummy defines for application targets so that ERRORF, etc
map to DEBUGF instead of a compile error and add a new line at the
end of logf.c.

Change-Id: Ie7c5bc3397a853af619e810defce6123114e7a51
2012-08-06 19:20:47 -04:00
Michael Giacomelli
97c1dc0368 Enable logdiskf to for all device targets, but not bootloaders or application
builds.

Change-Id: I651900fda676433841cfd14dba05bcb4116e0002
2012-08-06 19:07:54 -04:00
Michael Giacomelli
d46b090771 Introduce logging to disk feature into rockbox.
Logs information, errors, etc to disk using the register_storage_idle_func
mechanism to write to the disk when available.  Currently, this is disabled
in normal builds, but can be enabled by adding ROCKBOX_HAS_LOGDISKF to the
config file.  By default, it uses a 2KB buffer and drops text if the buffer
overflows.

The system includes a simple warning level mechanism that can be used to by
default exclude non-serious errors from logging on release builds.

Change-Id: I0a3d186a93625c7c93dae37b993a0d37e5a3a925
Reviewed-on: http://gerrit.rockbox.org/288
Reviewed-by: Jonathan Gordon <rockbox@jdgordon.info>
Tested-by: Michael Giacomelli <mgiacomelli@gmail.com>
Reviewed-by: Michael Giacomelli <mgiacomelli@gmail.com>
2012-08-07 00:53:46 +02:00
Thomas Martitz
efe73e143a Fix database tool.
It was also broken functionally, probably since a while.So restore the
functionality. Run it on the dap, the tcd files will be placed into .rockbox folder.

Change-Id: Id7a6ce4389dfaf99799258902be80d630af0601c
2012-07-31 10:33:27 +02:00
Michael Giacomelli
b61b14f5e8 Revert my previous commit disabling the internal ROM clock during normal
operation.

The interal ROM clock seems to be needed to reboot the player, so disabling
it is too dangerous.  Hopefully this will prevent problems where crashes during
the abort handler resulted in a stock player that needed the battery to drain
in order to reboot.

Change-Id: I7d1e64743dde15b64d718ad3255dada3d570736f
2012-07-22 19:21:54 -04:00
Thomas Martitz
b7937a729f fix database tool
Change-Id: I48702c3213aae7e2c64ea0e1f197e61368393759
2012-07-18 16:23:11 +02:00
Andrew Ryabinin
50370cd70d hm60x: Fix gpio pin direction.
Change-Id: I22324a3bd080a23d3606e6bc8e55881d072bf615
2012-07-13 22:30:09 +04:00
Andrew Ryabinin
e2d72d64fd hm60x: Fix not working backlight on some hm-601's.
Change-Id: I3e1e92f28537b6fb915a0f9d5960fbf5e217825b
2012-07-13 22:28:17 +04:00
Marcin Bukat
ad46064b83 rk27xx codec: simplify startup
Change-Id: I8b610363e67ec640664aa0d03488e430ec461244
2012-07-11 00:28:44 +02:00
Marcin Bukat
80ec94c497 rk27xx: implement system_exception_wait()
Change-Id: If55cfdf7ef91e732ac0aae6ad9fde24b8918e1b8
2012-07-11 00:27:13 +02:00
Marcin Bukat
676f72a0f4 rk27xx codec: Fix volume setting
Change-Id: If57e0225fed4a9f87dff9661b21b2e06fa3d341e
2012-07-10 20:09:21 +02:00
Marcin Bukat
5a89549c86 rk27generic: fix charging_state()
Change-Id: Iefa7fa4f9b2e535e2ab9004ffe8eeb8adf203f4b
2012-07-10 09:35:01 +02:00