Commit graph

285 commits

Author SHA1 Message Date
Bertrik Sikken
55a7a31ce3 Split off target-specific parts from firmware/drivers/serial.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29768 a1c6a512-1295-4272-9138-f99709370657
2011-04-23 08:23:07 +00:00
Thomas Martitz
cc889e9d60 Change the thread api a bit.
* Remove THREAD_ID_CURRENT macro in favor of a thread_self() function, this allows thread functions to be simpler.
* thread_self_entry() shortcut for kernel.c.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29521 a1c6a512-1295-4272-9138-f99709370657
2011-03-05 17:48:06 +00:00
Michael Sevakis
12375d1d3a Merge functionality of wakeups and semaphores-- fewer APIs and object types. semaphore_wait takes a timeout now so codecs and plugins have to be made incompatible. Don't make semaphores for targets not using them.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29492 a1c6a512-1295-4272-9138-f99709370657
2011-03-02 08:49:38 +00:00
Michael Sevakis
da3417706d Gigabeat S: Smoother bootup. Don't do full drive reset at boot since it's not really a coldstart. Seems to work alright in both the bootloader and firmware.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29383 a1c6a512-1295-4272-9138-f99709370657
2011-02-23 00:34:56 +00:00
Michael Sevakis
480c663e5b i.MX31: Now that it matters because there's a debug screeen that allows changing things while running, some DVFS/DPTC stuff has to be done more carefully. Trim out some stuff and group functions better as well.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29122 a1c6a512-1295-4272-9138-f99709370657
2011-01-23 20:21:35 +00:00
Michael Sevakis
6546cd1282 Gigabeat S: Keep LCD options in sync even when display is turned off.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29118 a1c6a512-1295-4272-9138-f99709370657
2011-01-22 22:48:43 +00:00
Michael Sevakis
90aafeae67 Fix yellow. Left an unused temp variable.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29117 a1c6a512-1295-4272-9138-f99709370657
2011-01-22 21:11:29 +00:00
Michael Sevakis
0a98e8af9d i.MX31: Allow interrupts in thread context, not just ISR context, during the lengthy DVFS voltage ramp-up delay. Also, explicitly enable them just before mc13783_init since that does anyway because of the PMIC write inside it.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29116 a1c6a512-1295-4272-9138-f99709370657
2011-01-22 21:04:25 +00:00
Michael Sevakis
6d2e7769e2 Better boost calculation for multifrequency CPUs. Frequencies between minimum and maximum count as fractional boost.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29115 a1c6a512-1295-4272-9138-f99709370657
2011-01-22 18:30:24 +00:00
Michael Sevakis
98246b82b9 i.MX31: Add a debug menu to play around with DVFS/DPTC settings for fun, testing or benchmarking purposes. Can set the CPU frequency working point, whether DPTC voltage scaling is enabled and change the software-programmable load tracking weights.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29113 a1c6a512-1295-4272-9138-f99709370657
2011-01-22 16:58:17 +00:00
Michael Sevakis
060609a202 i.MX31: Busy wait for a couple microseconds at most then sleep until next tick when polling drive status. This prevents pointless jumps to overdrive speed from perceived high load when waiting for lengthy ops to complete such as spinup and sleep.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29108 a1c6a512-1295-4272-9138-f99709370657
2011-01-22 09:23:31 +00:00
Michael Sevakis
863c03f2ae Gigabeat S: Renovate bootloader a bit to show splash, implement verbose, shutdown on low battery, handle hold-switch-on and wait only so long for USB if a USB charger is inserted at boot instead of being connected to a host. 'Bootloader USB mode' display is just part of normal printf stream now. Move interrupt stacks into .bss area so they aren't loaded (for firmware too).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29099 a1c6a512-1295-4272-9138-f99709370657
2011-01-21 07:05:51 +00:00
Michael Sevakis
1b275d8ddb Some static data is only used by .init functions. Add .initdata to declare such data (otherwise section conflicts arise). For i.MX31, use INITDATA_ATTR in the appropriate places.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29008 a1c6a512-1295-4272-9138-f99709370657
2011-01-08 20:42:51 +00:00
Michael Sevakis
9d97ee1b54 Gigabeat S/i.MX31: Take care of an interrupt priority inversion that can happen during PCM callback lockout when DVFS switches frequecies during the lockout, preventing a thread from unlocking the callback until DVFS finishes, causing an SSI FIFO underrun. Hadn't thought of an acceptable way to deal with it before.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28996 a1c6a512-1295-4272-9138-f99709370657
2011-01-07 20:40:36 +00:00
Michael Sevakis
89a7a8138e Gigabeat S: Make it a removable mass-storage device. Windows will assign a drive to only the main data partition by default. To access the bootloader partition instead, press 'Vol -' while it connects (in bootloader and firmware). Hopefully doesn't break anything for anyone.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28972 a1c6a512-1295-4272-9138-f99709370657
2011-01-05 19:35:51 +00:00
Michael Sparmann
9339be1279 Rework ATA driver to get rid of lots of target-specific constants and allow for non-memory-mapped task file registers.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28950 a1c6a512-1295-4272-9138-f99709370657
2011-01-02 22:51:47 +00:00
Michael Sevakis
4048cf27a2 Gigeabeat S: Reset DMA size info when stopping audio playback and recording transfers so that size remaing/peak buffer calls return 0/NULL when stopped.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28941 a1c6a512-1295-4272-9138-f99709370657
2011-01-01 22:35:00 +00:00
Michael Sevakis
65850011cc Gigabeat S: Do simple direct keypad scanning rather than triggering a separate scan interrupt and it all does the same thing but with 1 tick less latency.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28926 a1c6a512-1295-4272-9138-f99709370657
2010-12-29 18:20:31 +00:00
Marcin Bukat
b8a7f5137b move dbg_ports() from apps/menu_debug.c to target tree. FS#11712 by me.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28522 a1c6a512-1295-4272-9138-f99709370657
2010-11-06 14:24:25 +00:00
Rafaël Carré
66f8fb52a9 */app.lds: remove STUBOFFSET
This is related to gdb, and gdb can only work on SH and ifp
This was mistakenly kept when app.lds was forked for each SoC
Side-effect: fix DEBUG builds when the rockbox binary is expected to
be loaded at the start of DRAM and there is no runtime relocation

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28124 a1c6a512-1295-4272-9138-f99709370657
2010-09-20 17:09:55 +00:00
Rafaël Carré
aca255e8e8 gigabeats: remove inline from extern functions
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28022 a1c6a512-1295-4272-9138-f99709370657
2010-09-07 14:30:30 +00:00
Thomas Martitz
0e2286f226 Introduce NORETURN_ATTR wrapper for __attribute__((noreturn)), using this and a bit further cleanup in main gets rid of a warning when compiling for android.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27788 a1c6a512-1295-4272-9138-f99709370657
2010-08-12 13:38:25 +00:00
Michael Sevakis
90a2671833 i.MX31: Make DMA ISR call loop a bit more efficient.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27192 a1c6a512-1295-4272-9138-f99709370657
2010-06-30 07:08:10 +00:00
Michael Sevakis
ce4da595e1 Gigabeat S: INIT section wasn't properly overlapping the uninitialized areas thus wasn't being reclaimed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27190 a1c6a512-1295-4272-9138-f99709370657
2010-06-30 05:49:56 +00:00
Michael Sevakis
6920d2b9cd i.MX31: Only include the SDMA code that will be used on the target. Simplify the script selection.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27189 a1c6a512-1295-4272-9138-f99709370657
2010-06-30 05:02:58 +00:00
Michael Sevakis
e286b0bbc0 Remove atomic register bit manipulation functions from i.MX and s3c target code and introduce generic functions for ARM (bitmod32, bitset32, and bitclr32). Multiprocessor support is possible but just not implemented at the moment, only interrupt lockout.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27188 a1c6a512-1295-4272-9138-f99709370657
2010-06-30 02:02:46 +00:00
Michael Sevakis
d164678738 Gigabeat S: The forced shutoff voltage level can be lowered a tiny bit it seems.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27170 a1c6a512-1295-4272-9138-f99709370657
2010-06-29 07:29:42 +00:00
Michael Sevakis
c2851389b9 Gigabeat S: Use statically initialized channel descriptors. Also, there's no need for them to be in non-cached memory since they're only used on the AP side.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27103 a1c6a512-1295-4272-9138-f99709370657
2010-06-24 08:40:05 +00:00
Michael Sevakis
60f843bf18 Configure Gigabeat S with EABI compiler by default. Implement the INIT section that this enables (due to selective need for long calls). Remove pcm_postinit from INIT section since it's asynchronous. Disable strict aliasing on SPC codec for now just to shut it up.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26779 a1c6a512-1295-4272-9138-f99709370657
2010-06-11 14:39:35 +00:00
Torne Wuff
991e92fd3d New USB charging system, part 1 - API rework and user-visible setting update
1) "Charge during USB connection" option is now tristate: off/on/force. Currently "force" behaves just like "on", but in future it will allow charging even when it was not possible to positively identify a charger.

2) The H300 code has been adjusted to use the new system but there should be no functional differences, it already had the USB charging option and its USB/charging support is hardware controlled.

3) The Gigabeat S code has been adjusted to use the new system: the player now has the USB charging option, which wasn't previously available. The player will only charge at full speed when allowed to do so by a working USB host, so USB AC adapters won't work very well; however, they didn't work before either, so this is not a change in functionality.

4) The iPod Nano 2G code has been adjusted to use the new system: it already had the USB charging option. Using a USB AC adapter won't charge at full speed any more (it did before) - the old implementation was equivalent to the not-yet-implemented "force" option in the new system.

No other target should be affected. Support for the "force" mode and support for at least some other iPod models will come in a future commit :)


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26570 a1c6a512-1295-4272-9138-f99709370657
2010-06-05 10:05:27 +00:00
Rafaël Carré
0ea7905395 ARM: use BX when branch to an address in register
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26432 a1c6a512-1295-4272-9138-f99709370657
2010-05-31 15:14:26 +00:00
Michael Sevakis
6b6123444e Gigabeat S PCM: Sync some comments to changes.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26341 a1c6a512-1295-4272-9138-f99709370657
2010-05-27 23:22:55 +00:00
Michael Sevakis
25ebd9832d Gigabeat S PCM: There's no reason to touch any hardware registers in order to lock out PCM callbacks.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26340 a1c6a512-1295-4272-9138-f99709370657
2010-05-27 23:14:39 +00:00
Michael Sevakis
72ccb14ab1 Gigabeat S: Turn off hardware effects (tone and 3d) when doing digital loopback for FM recording otherwise the signal and levels are poorly represented in monitoring (can't just do ADC->DAC for general FM and get voice too). Some tweaking to input setup to improve gain a tiny bit. A little bit quieter startup too.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26300 a1c6a512-1295-4272-9138-f99709370657
2010-05-26 05:13:45 +00:00
Michael Sevakis
d56999890f Make PCM->driver interface about as simple as it will get. Registered callback, zero data, alignment and stops are handled entirely inside pcm.c; driver merely calls fixed pcm.c callback. Remove pcm_record_more and do it just like playback; the original reason behind it isn't very practical in general. Everything checks out on supported targets. There wer some compat changes I can't check out on many unsupoorted but if there's a problem it will be a minor oops. Plugins become incompatible due to recording tweak-- full update. Sorted API.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26253 a1c6a512-1295-4272-9138-f99709370657
2010-05-24 16:42:32 +00:00
Michael Sevakis
9594f86c1a Gigabeat S: Use longer battery filter; lag is not a problem with voltage for charging since it's I-controlled. Initialize local copy of last_inputs for the power routines in target init otherwise the battery filter is reinitialized too soon.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26180 a1c6a512-1295-4272-9138-f99709370657
2010-05-19 23:39:59 +00:00
Michael Sevakis
3356effcdf Gigabeat S: Wrong thing messing with IPU_CONF. No fiddling is needed just yet.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26155 a1c6a512-1295-4272-9138-f99709370657
2010-05-19 00:42:55 +00:00
Michael Sevakis
54c649697b Gigabeat S: Implement LCD contrast, invert and flip modes. Enhance LCD power management. Include init data but it's not needed yet (identical to Gigabeat F).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26154 a1c6a512-1295-4272-9138-f99709370657
2010-05-18 23:50:00 +00:00
Michael Sevakis
e34c0593e7 Gigabeat S: There's no reason to pause the LCD DMA when changing the framebuffer address.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26054 a1c6a512-1295-4272-9138-f99709370657
2010-05-15 14:58:16 +00:00
Michael Sevakis
4d04132c76 PCM bottom layer simplification. pcm_rec_peak_addr variable no longer has to be handled there. Driver can just return current pointer for recording peaks. A new define, HAVE_PCM_REC_DMA_ADDRESS, specifies that physical addresses are being used for recording and translation is needed before starting a new block. The drivers need not worry about aligning start and size nor should care if either will be zero. All this will be checked in the logical layer first.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25970 a1c6a512-1295-4272-9138-f99709370657
2010-05-12 14:05:36 +00:00
Michael Sevakis
43d2c7ad19 Clean the DCache just before going to main because areas were written by init code that need to be coherent (.ncbss and .sdmacode).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25896 a1c6a512-1295-4272-9138-f99709370657
2010-05-08 08:32:09 +00:00
Michael Sevakis
a420561bf8 Gigabeat S: Reclaim about 800K of memory that was laying unused. Get rid of DEVBSS_ATTR for this target and implement as NOCACHEBSS_ATTR. Plugin and codec buffers move so all that is now incompatible (do full update). No version increase for plugins/codecs because the loader will reject them.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25895 a1c6a512-1295-4272-9138-f99709370657
2010-05-08 07:45:34 +00:00
Michael Sevakis
d7ef247412 i.MX31/Gigabeat S minor cleaning: Make HW access more obvious in places I forgot to do earlier. Reduce the number of structs that need to be filled-out for some drivers just to simplify a little. Change some types.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25870 a1c6a512-1295-4272-9138-f99709370657
2010-05-07 10:53:19 +00:00
Michael Sevakis
affea5fe9e i.MX31: Make some style changes to some driver code so that hardware vs. variable access is more obvious to the eye. Change a few data types and qualifiers. No functional differences.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25865 a1c6a512-1295-4272-9138-f99709370657
2010-05-07 02:29:18 +00:00
Frank Gevaerts
ab4a162763 Fix gigabeat S includes so it builds again
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25855 a1c6a512-1295-4272-9138-f99709370657
2010-05-06 22:13:54 +00:00
Thomas Martitz
50a6ca39ad Move c/h files implementing/defining standard library stuff into a new libc directory, also standard'ify some parts of the code base (almost entirely #include fixes).
This is to a) to cleanup firmware/common and firmware/include a bit, but also b) for Rockbox as an application which should use the host system's c library and headers, separating makes it easy to exclude our files from the build.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25850 a1c6a512-1295-4272-9138-f99709370657
2010-05-06 21:04:40 +00:00
Michael Sevakis
0defb8483c Gigabeat S bootloader: Fix archaic call placement in dptc_stop which hangs the bootloader before jumping to FW. Let the backlight LED ramp up after unplugging USB which just looks better.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25840 a1c6a512-1295-4272-9138-f99709370657
2010-05-06 04:45:05 +00:00
Michael Sevakis
992b7e10b8 Gigabeat S: There's no compelling reason to start automatic scaling in the bootloader only stop it milliseconds later. Do init to default frequency and working point, however.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25839 a1c6a512-1295-4272-9138-f99709370657
2010-05-06 04:17:34 +00:00
Michael Sevakis
021f9e9e56 Changed a macro to a raw in int constant. Didn't mean to do that. Put it back right.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25838 a1c6a512-1295-4272-9138-f99709370657
2010-05-06 03:30:59 +00:00
Michael Sevakis
a36a498c57 i.MX31/Gigabeat S: This should fix stability problems. One problem was to start using the DVFS controller properly so that interrupts will be masked at the lowest and highest frequency indexes. Millions of useless interrupts were occurring at 132MHz because its index was 2, not 3, which masks it automatically when it can't go slower. Stopping the flood was enough to actually see the difference in general. IRQ must be disabled when fiddling with the CCM registers and only enabled when waiting for voltage ramp as having them enables also causes spurious DVFS ints. Implement interruptible ISR pro/epilogue more safely (always using IRQ stack even in SVC mode handling). Fix an improper inequality in DVFS code (which set regs for down when going up and v.v.). Misc. support changes. Have internal tables take less RAM.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25837 a1c6a512-1295-4272-9138-f99709370657
2010-05-06 03:23:51 +00:00
Michael Sevakis
630b4fc555 i.MX31/Gigabeat S: The nested IRQ code was just totally wrong and not actually working anyway (which is why it wasn't crashing). AVIC doesn't seem truthful about priority of current ISR either :\. Sometimes there were channel swaps during really active DVFS due to FIFO underflow from a needed long delay in the ISR (100us, and IIS TX only has 45us reserve) and DMARQ *must* be serviced low-latency. Get it doing as was intended.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25822 a1c6a512-1295-4272-9138-f99709370657
2010-05-05 07:15:20 +00:00
Michael Sevakis
4048a1cf4b Merely correct a comment.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25802 a1c6a512-1295-4272-9138-f99709370657
2010-05-04 10:43:32 +00:00
Michael Sevakis
5edcb11f44 i.MX31/Gigabeat S: Just a little paranoid change to switcher write to active regulators method, to keep things localized a bit more from global data pool, for safety's sake. It's going to Mars afterall.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25801 a1c6a512-1295-4272-9138-f99709370657
2010-05-04 10:37:06 +00:00
Michael Sevakis
931e06de64 i.MX31/Gigabeat S: Actually enable DPTC which can set optimal voltage for 528MHz. Requires an SPI and PMIC interface rework because of the low-latency needs for the DPTC to work best with minimal panicing. SPI can work with multitasking and asynchronously from interrupt handlers or normal code.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25800 a1c6a512-1295-4272-9138-f99709370657
2010-05-04 10:07:53 +00:00
Michael Sevakis
b3f1eb8bba Gigabeat S: Those odd calls to irq_handler can still happen rarely after executing WFI. With no explanation forthcoming after trying many things, hide head in sand and ignore them and the IRQ will get vectored to the correct handler anyway. Have vector tables execute an immediate return and remove irq_handler from compilation altogether.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25792 a1c6a512-1295-4272-9138-f99709370657
2010-05-03 07:48:00 +00:00
Michael Sevakis
1c770046b6 Gigabeat S: All the target backlight functions are currently called on the backlight thread whereas that wasn't the case when the hardware fading was added. Now there's no danger of setting brightness interfering while setting up fades, so get rid of the superfluous mutex.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25700 a1c6a512-1295-4272-9138-f99709370657
2010-04-23 17:35:01 +00:00
Michael Sevakis
11cca264ff i.MX31/Gigabeat S: Implement frequency and voltage scaling-- 1.6V for 528MHz, and 1.35V for 264MHz and 132MHz. Keep DPTC overdrive ( > 400MHz) voltage scaling off for now because of uncertainties. Simplify the (working) mess later.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25699 a1c6a512-1295-4272-9138-f99709370657
2010-04-23 15:32:50 +00:00
Michael Sevakis
6cee7579db i.MX31: Add some enums and a couple helper functions to make dealing with pin muxing and pad configuration a bit more sane. Convert any existing code which changes mux/pad settings to use helpers.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25698 a1c6a512-1295-4272-9138-f99709370657
2010-04-23 13:46:04 +00:00
Michael Sevakis
f359ec7630 Gigabeat S: Employ more accurate battery charging curve.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25615 a1c6a512-1295-4272-9138-f99709370657
2010-04-13 04:57:35 +00:00
Michael Sevakis
79d90b9e76 Gigabeat S/i.MX31: Continue, and most likely complete, the platform/player-specific code/data shuffling begun in r25547.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25564 a1c6a512-1295-4272-9138-f99709370657
2010-04-10 09:24:06 +00:00
Michael Sevakis
eb755ec351 Gigabeat S: Slow down the SPI clock to 1/8 current speed. It seems lower voltages can reveal the weakness that forbids maximum-speed clocking per the SPI spec. OF leaves it set much slower. Push it a bit over OF since it's been gotten away with fairly cleanly so far. Settings on pins and interface to be more thoroughly investigated.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25554 a1c6a512-1295-4272-9138-f99709370657
2010-04-09 13:21:32 +00:00
Michael Sevakis
7686c8fa99 Gigabeat S: More accurate battery level estimation for discharge curve.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25551 a1c6a512-1295-4272-9138-f99709370657
2010-04-09 10:31:40 +00:00
Michael Sevakis
86545174b9 Gigabeat S: A little more housekeeping. Move source clock frequencies to config. header and name them per ref. manual designations.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25549 a1c6a512-1295-4272-9138-f99709370657
2010-04-09 03:24:17 +00:00
Michael Sevakis
7abf2b53a4 Gigabeat S/i.MX31: Sort files in the /target tree into things that are SoC-generic (into /imx31) and player-specific (into /gigabeat-s, based upon current appearances). Move i2s clock init into the appropriate file. Housekeeping only-- no functional changes.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25547 a1c6a512-1295-4272-9138-f99709370657
2010-04-09 01:21:53 +00:00
Torne Wuff
62321ed0bd Make ATA code not bother to retry requests that return IDNF (specified sector not valid).
There's no point retrying these requests for five seconds, the sector number isn't going to get any more valid. It interferes with being able to detect broken drives like the 5.5G 80GB iPod's.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25525 a1c6a512-1295-4272-9138-f99709370657
2010-04-07 20:01:21 +00:00
Michael Sevakis
b3d44fcb57 Gigabeat S: Add some sanity checks for a strange charging anomaly that I have personally witnessed twice-- no, I don't have photos or a YT video but it did happen. Details are given in a comment in powermgmt-imx31.c. If it happens again, the checks may serve to reveal the true cause.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25524 a1c6a512-1295-4272-9138-f99709370657
2010-04-07 19:59:26 +00:00
Michael Sevakis
4e8704c387 Gigabeat S: Extend the upper temperature range for battery charging to 50C: OK and 45C: Resume. Currently extended disk activity can cause it to detect overtemp which doesn't quite seem correct. Add macros for the range so that they may be target-specific.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25508 a1c6a512-1295-4272-9138-f99709370657
2010-04-07 06:26:18 +00:00
Michael Sevakis
87eea33def Gigabeat S (imx31): Begin voltage and frequency scaling code. For now, to avoid overdrive voltage, just lower core voltage to 1.35V since voltage scaling shouldn't be required for frequencies lower than 399 MHz (according to Freescale BSP, which set all working points to 1.35V for those frequencies). Perhaps battery life will improve as well (cross fingers :).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25506 a1c6a512-1295-4272-9138-f99709370657
2010-04-07 03:43:48 +00:00
Rafaël Carré
b2323be33b ARM: lr addresses the next instruction after the failing one in undefined instruction vector
Substract 4 before passing the argument to UIE so the correct address is displayed

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24321 a1c6a512-1295-4272-9138-f99709370657
2010-01-24 15:04:21 +00:00
Andree Buschmann
56d972ad57 Fix tabs
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24153 a1c6a512-1295-4272-9138-f99709370657
2010-01-03 10:19:43 +00:00
Andrew Mahone
becdbaa12d Enable and initialize VFP on imx31. VFP state is not saved on thread change, and it is initialized for scalar operations, rounding toward zero, with exception/error handling and "correct" handling of NaN and denormal values disabled. In this mode it should still be usable for integer divisions (by casting operands to double and result to int or unsigned).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24129 a1c6a512-1295-4272-9138-f99709370657
2009-12-31 08:32:05 +00:00
Nils Wallménius
7d4ca1a85a Increase stack space for the Gigabeat S specific headphone thread to fix stack overflow when compiled with gcc 4.4
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23678 a1c6a512-1295-4272-9138-f99709370657
2009-11-20 16:42:07 +00:00
Thomas Martitz
78c956d73b Make current_vp static and importings from Gigabeat F/X/S lcd drivers as they don't need it anymore.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23354 a1c6a512-1295-4272-9138-f99709370657
2009-10-26 01:44:39 +00:00
Jens Arnold
5365cbe0a5 Color targets: Ported assembler optimised transparent bitmap drawing from Gigabeat S/F/X to all ARM targets (~23..40% speedup). * C optimised transparent bitmap drawing for non-ARM targets and sims. * Use the more compact boundary checking for non-transparent native bitmap drawing as well.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23353 a1c6a512-1295-4272-9138-f99709370657
2009-10-26 01:35:31 +00:00
Thomas Martitz
d85c3ec410 Convert lcd_activation callbacks to use the event system to allow for multiple parallel callbacks (for custom statusbar).
Increase maximum event count as we need more (I actually had a report about it during custom statusbar testing).
Removed corresponding functions from the core and plugin api. Bump min version and sort.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23302 a1c6a512-1295-4272-9138-f99709370657
2009-10-20 21:54:59 +00:00
Nils Wallménius
f34a841b0c Revise r23225 a bit, removing the debug_printf function and implementing more generic lcd_(remote)_putsf function(s) instead and use those in more places
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23233 a1c6a512-1295-4272-9138-f99709370657
2009-10-17 18:02:48 +00:00
Nils Wallménius
47608e06b3 fix red
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22432 a1c6a512-1295-4272-9138-f99709370657
2009-08-19 22:15:45 +00:00
Bertrik Sikken
a26ea3f67a Revert static-ing of iim_prod_rev, this function is never used so it causes a compiler warning.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22185 a1c6a512-1295-4272-9138-f99709370657
2009-08-06 09:44:09 +00:00
Bertrik Sikken
d767883a41 Various files: make functions static if they're local or make sure there is a proper #include if not
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22184 a1c6a512-1295-4272-9138-f99709370657
2009-08-06 09:28:25 +00:00
Rafaël Carré
ffefe0c08b Put TIMER_FREQ definition in CPU-specific config, and remove timer-target.h
Note : SH has TIMER_FREQ defined to CPU_FREQ, so any code wanting it must include #config.h before #cpu.h

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21560 a1c6a512-1295-4272-9138-f99709370657
2009-06-29 14:30:12 +00:00
Rafaël Carré
c5dedd7d76 Remove the TIMER_* macros and declare target-specific functions in timer.h
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21559 a1c6a512-1295-4272-9138-f99709370657
2009-06-29 14:29:57 +00:00
Rafaël Carré
89ccd5c145 Remove int_prio argument from timer_register, and move the only use for it into alpine_cdc plugin, since this plugin is only built on SH7034
Also remove it from TIMER_START()

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21558 a1c6a512-1295-4272-9138-f99709370657
2009-06-29 14:29:46 +00:00
Rafaël Carré
b3ed33d04a Move SH7034 timer code in the target tree
Add an argument int_prio to TIMER_START() macro because SH7034 needs it
Leaves a target specific code in timer_register (could be given to target code through timer_set and __timer_set() )

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21556 a1c6a512-1295-4272-9138-f99709370657
2009-06-29 14:29:14 +00:00
Rafaël Carré
e0640c3c4b Rename TIMER_REGISTER macro to TIMER_START and TIMER_UNREGISTER to TIMER_STOP to reflect what they does exactly.
registering and unregistering are handled by the non target-specific functions of timer.c
Remove arguments from the new TIMER_START since they are unused by targets

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21553 a1c6a512-1295-4272-9138-f99709370657
2009-06-29 14:28:56 +00:00
Bertrik Sikken
2dc2054319 Remove some unused declarations
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21010 a1c6a512-1295-4272-9138-f99709370657
2009-05-21 12:32:26 +00:00
Bertrik Sikken
0023943439 Fix duplicate #includes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20977 a1c6a512-1295-4272-9138-f99709370657
2009-05-17 14:50:19 +00:00
Thomas Martitz
6abae1f124 Remove the calls to backlight_lcd_sleep_countdown from target specific code and move it into backlight.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20793 a1c6a512-1295-4272-9138-f99709370657
2009-04-26 01:23:39 +00:00
Michael Sevakis
e48cece75c imx31: Oops. Fix a misplaced comma in wmcodec-imx31.c. Add a couple parentheses in statment (just to be clearer). Should take care of things for now :).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20444 a1c6a512-1295-4272-9138-f99709370657
2009-03-22 02:27:20 +00:00
Michael Sevakis
ba71cc540c imx31: Rename clkctl-imx31.* to ccm-imx31.* and move up from ...imx31/gigabeat-s to .../imx31. A bunch more should probably go up a level too.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20443 a1c6a512-1295-4272-9138-f99709370657
2009-03-22 02:13:27 +00:00
Michael Sevakis
b7f7655dc2 imx31/mc13783: Do some housekeeping with register macros, function names and other defines. No functional changes (except to alter a couple int priorities).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20442 a1c6a512-1295-4272-9138-f99709370657
2009-03-22 01:50:48 +00:00
Thomas Martitz
b7739fbf1c Rework lcd_enabled and lcd_set/call_enable hook
a) lcd_enabled() is now lcd_active(), and is available for HAVE_LCD_SLEEP only targets (e.g. ipod video) too. It was depandent on HAVE_LCD_ENALE only before
b) rename the hook accordingly, and implement the hook for other other targets too (e.g. the clip [the only mono target with lcd_enable/lcd_sleep yet, so the code is still in the lcd driver], ipod, fuze, c200)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20331 a1c6a512-1295-4272-9138-f99709370657
2009-03-17 02:43:47 +00:00
Michael Sevakis
a1a332e04b Gigabeat S: Implement MDMA and UDMA disk access for bootloader and main binary. Add a needed SDMA API to check channel errors. Increase audio DMA channels' priority as required. Reads and writes measure faster accross all test_disk tests and especially at 4KB and 1MB.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20299 a1c6a512-1295-4272-9138-f99709370657
2009-03-12 06:31:40 +00:00
Michael Sevakis
d1adf35e62 Gigabeat S: Switch SSI1 and 2 around so that playback can use the shared peripheral DMA with SSI2 which doesn't require use of the peripheral DMA unit-- SSI2 is mapped to the SDMA core address space. Fix some break keywords in get_script_pc(). Use the patched script for mcu_2_app (BSP appears to have neglected to update that). Use _SHP instead of _SP for shared peripheral constants (consistency).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20254 a1c6a512-1295-4272-9138-f99709370657
2009-03-09 04:25:25 +00:00
Michael Sevakis
2d8813e26b imx31 ATA: Correct a register #define error (due to error in user's manual). Fix timing for PIO tAX.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20169 a1c6a512-1295-4272-9138-f99709370657
2009-03-02 06:10:13 +00:00
Michael Sevakis
63404a7d5d Separate running an SDMA channel from resetting it. It should make usage more flexible since resets are needed only before restarting if aborting transfers (because the script is left awaiting requests, not the next start) which PCM does alot of but other things likely won't.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20000 a1c6a512-1295-4272-9138-f99709370657
2009-02-13 12:59:30 +00:00
Michael Sevakis
e6bac4c6f4 Gigabeat S: Handle any DMA playback errors reported and stop in that case (none are expected but it's better to handle than ignore).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19983 a1c6a512-1295-4272-9138-f99709370657
2009-02-12 02:04:26 +00:00
Michael Sevakis
911cc69ebd Gigabeat S: No need to do cache writeback on recording buffers now.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19982 a1c6a512-1295-4272-9138-f99709370657
2009-02-12 00:22:31 +00:00
Michael Sevakis
63e709c7c8 Refine the routines in mmu-arm.c and move them to mmu-arm.S since the code is now 100% assembly.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19980 a1c6a512-1295-4272-9138-f99709370657
2009-02-11 23:56:00 +00:00
Michael Sevakis
21f0c9a282 Make basic cache functions into calls, and get rid of CACHE_FUNCTION_WRAPPERS and CACHE_FUNCTIONS_AS_CALL macros. Rename flush/invalidate_icache to cpucache_flush/invalidate. They're inlined only if an implementation isn't provided by defining HAVE_CPUCACHE_FLUSH/INVALIDATE.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19971 a1c6a512-1295-4272-9138-f99709370657
2009-02-11 12:55:51 +00:00
Michael Sevakis
e46309fde3 Gigabeat S: Update some very stale comments about what's going on in the startup code.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19965 a1c6a512-1295-4272-9138-f99709370657
2009-02-10 15:48:48 +00:00