Commit graph

54 commits

Author SHA1 Message Date
Jens Arnold
feb5b15e9b All-new greyscale library, replacing the old one. Features: (1) Drawing/updating is faster than the old grayscale lib at full depth. (2) Always 129 shades instead of 2..33 shades. (3) No graininess caused by frequent updates (mpegplayer, doom, ...). (4) Needs less memory than the old grayscale lib at full depth. * The tradeoff is slightly higher CPU load in the ISR (frames are calculated 'live') and an extra function in the core. * Ported all plugins which used the graylib to use the new one. * Some slight optimisations for archos and H1x0 LCD update.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15998 a1c6a512-1295-4272-9138-f99709370657
2008-01-04 23:42:38 +00:00
Michael Sevakis
7126d64820 Further lockdown of multipart i2c operations that must be done without intrusion.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15823 a1c6a512-1295-4272-9138-f99709370657
2007-11-27 00:35:41 +00:00
Jens Arnold
120fb4f319 Speed up YUV blitting on iPod Video by ~8% (FS #8075 by Andree Buschmann).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15820 a1c6a512-1295-4272-9138-f99709370657
2007-11-26 23:48:23 +00:00
Linus Nielsen Feltzing
e75327b332 FS#7738 - Scroll wheel acceleration for iPod
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15681 a1c6a512-1295-4272-9138-f99709370657
2007-11-19 11:05:54 +00:00
Jens Arnold
940fe31f81 Move 4th Gen (grayscale and color) backlight init where it belongs.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15661 a1c6a512-1295-4272-9138-f99709370657
2007-11-18 14:01:58 +00:00
Jens Arnold
6ef2db2c11 Significant LCD speedup for all greyscale iPods and Sansa c200 (c200, 4th Gen, Mini 1st Gen: >3.3x speedup, 1st..3rd Gen: ~2x speedup, Mini 2nd Gen: ~30% speedup).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15655 a1c6a512-1295-4272-9138-f99709370657
2007-11-18 12:49:24 +00:00
Jens Arnold
f4c5c6aa62 Fix bootloaders, and the backlight-modded Ondio build.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15600 a1c6a512-1295-4272-9138-f99709370657
2007-11-12 19:19:38 +00:00
Jens Arnold
ef12b3b5c6 Hardware controlled backlight brightness for iPod Video and Nano, retaining the software PWM fade in/ fade out. * Backlight handling cleanup, getting rid of one layer of 'lowlevelness'. * Use atomic GPIO bit manipulation for PP502x backlight handling.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15599 a1c6a512-1295-4272-9138-f99709370657
2007-11-12 18:49:53 +00:00
Jens Arnold
20a39f485a Get rid of some more inl/outl, and use the new macros for bitwise GPIO manipulation. No functional change.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15492 a1c6a512-1295-4272-9138-f99709370657
2007-11-06 00:36:39 +00:00
Barry Wardell
03dd35db0e Get rid of some more inl/outl. 0x70000084 seems to be GPO32_ENABLE.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15477 a1c6a512-1295-4272-9138-f99709370657
2007-11-05 17:19:00 +00:00
Barry Wardell
4ef3e821cb Fix red.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15476 a1c6a512-1295-4272-9138-f99709370657
2007-11-05 16:12:13 +00:00
Barry Wardell
2d95fd524d Get rid of some more inl/outl and use the new GPO32 define instead.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15474 a1c6a512-1295-4272-9138-f99709370657
2007-11-05 15:48:59 +00:00
Jens Arnold
6fb4c53fb9 The GPIO interrupts are split into several port groups on all PP502x versions, so move those definitions into pp5020.h, and add the missing group. Make microSD hotswap detection work on Sansa c200. Note that microSD access itself does not work yet.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15460 a1c6a512-1295-4272-9138-f99709370657
2007-11-04 13:22:17 +00:00
Jens Arnold
015f6286a8 Finally: HDD power control for all PP502x iPods (4th gen Grayscale, Color, Minis, Video). * Wait a short time after powering on the HDD on all disk based targets, as that seems like a good idea. Shorten the excessive wait on initial power on.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15444 a1c6a512-1295-4272-9138-f99709370657
2007-11-03 23:57:24 +00:00
Jens Arnold
9daf658ef1 iPod Video LCD driver: Reintroduce the simple method of waiting for update completion for use in the bootloader, because bootloaders don't enable interrupts and hence the tick task won't work. Slower than the full driver, but still faster than the old one, because it first transfers the data, and then polls the BCM.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15399 a1c6a512-1295-4272-9138-f99709370657
2007-11-02 01:18:14 +00:00
Jens Arnold
c888a9bebe Bootloaders are single core... (aka fix red)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15398 a1c6a512-1295-4272-9138-f99709370657
2007-11-02 00:24:20 +00:00
Jens Arnold
ef8a7eaf2a Major speedup of the iPod Video LCD driver. The internal update procedure of the BCM chip is now completely shadowed, handled by a tick task as necessary. Also fixes the occasional UI freezes due to stalled BCM updates by re-kicking it after a timeout.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15397 a1c6a512-1295-4272-9138-f99709370657
2007-11-02 00:07:45 +00:00
Jens Arnold
b05066de12 iPod Video: Further optimised LCD data transfer (5..6% speedup, but increase in FPS measured with test_fps is less), making use of the fact that the low address bits aren't decoded by the BCM. Major cleanup of the driver, and introduced register names.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15341 a1c6a512-1295-4272-9138-f99709370657
2007-10-28 12:09:46 +00:00
Jens Arnold
3c1b9d9d70 Assembler optimised lcd_yuv_blit() for iPod Video (Fs #7951 by Andree Buschmann, adapted and separated into an .S file by me).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15257 a1c6a512-1295-4272-9138-f99709370657
2007-10-22 00:37:50 +00:00
Thom Johansen
b5f779b2ef Parts of FS #7951 by Andree Buschmann. Faster YUV BLIT (means faster mpegplayer) for Ipods Nano and Video while we're waiting for the assembler ones.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15147 a1c6a512-1295-4272-9138-f99709370657
2007-10-16 19:47:15 +00:00
Michael Sevakis
a9b2fb5ee3 Finally full multicore support for PortalPlayer 502x targets with an eye towards the possibility of other types. All SVN targets the low-lag code to speed up blocking operations. Most files are modified here simple due to a name change to actually support a real event object and a param change to create_thread. Add some use of new features but just sit on things for a bit and leave full integration for later. Work will continue on to address size on sensitive targets and simplify things if possible. Any PP target having problems with SWP can easily be changed to sw corelocks with one #define change in config.h though only PP5020 has shown an issue and seems to work without any difficulties.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15134 a1c6a512-1295-4272-9138-f99709370657
2007-10-16 01:25:17 +00:00
Jens Arnold
8aeed2d32e PP LCD drivers: * Optimised and cleaned up PP colour LCD drivers. Immeasurable speedup on iPod Color, huge speedup on small H10 (a factor of 3). Should be a bit faster on big H10 too. * Big H10 changed bitmap format, so needs reconfiguring + full rebuild. * Better register naming for the mono LCD bridge. Register names for the colour LCD bridge.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15082 a1c6a512-1295-4272-9138-f99709370657
2007-10-12 00:28:57 +00:00
Jens Arnold
1f0d06f085 * Use proper definitions for the PP (mono) LCD bridge. * Clean up pp5002.h a bit.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15018 a1c6a512-1295-4272-9138-f99709370657
2007-10-07 16:44:55 +00:00
Nicolas Pennequin
f548336e27 Fix the LCD line remaining active after shutdown on grayscale ipods (FS#5199). Original patch by Tomasz Mon, modified by me.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14907 a1c6a512-1295-4272-9138-f99709370657
2007-09-29 20:56:07 +00:00
Thom Johansen
d6ad3fbeb5 FS #7763 by Andree Buschmann. Speed up video rendering for Ipod Video.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14882 a1c6a512-1295-4272-9138-f99709370657
2007-09-28 11:25:02 +00:00
Jens Arnold
f265ee9cd5 * Don't touch the backlight(s) (and buttonlight) at backlight init in order to avoid a short flash when the lights are both disabled in the bootloader and in rockbox settings. * Properly reflect the backlight state set by the 1st/2nd gen bootloader.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14679 a1c6a512-1295-4272-9138-f99709370657
2007-09-12 22:24:58 +00:00
Jens Arnold
7c37c54ce5 iPod 1st Gen: Dynamic wheel enable. This reduces wheel power consumption to about 0.5% when hold is not enabled and there is no activity, and keeps it disabled on hold.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14386 a1c6a512-1295-4272-9138-f99709370657
2007-08-18 09:47:19 +00:00
Jens Arnold
347b351e8a iPod 1st Gen: Electronically disable the wheel when hold is enabled, saving quite some power.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14383 a1c6a512-1295-4272-9138-f99709370657
2007-08-18 08:14:07 +00:00
Jens Arnold
0fac492c3d First step of powermanagement rework: * Move target specific stuff into target tree, starting with battery voltage tables and voltage reading. (This revealed some incorrect percent_to_voltage_charging mappings). * Voltage reading on 1st gen ipods is now correct. * Clean up obsolete config #defines.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14375 a1c6a512-1295-4272-9138-f99709370657
2007-08-17 06:45:18 +00:00
Jens Arnold
c68e3cc3d6 Make the wheel work on 1st gen iPod.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14359 a1c6a512-1295-4272-9138-f99709370657
2007-08-15 17:53:23 +00:00
Jens Arnold
97bdfce5b6 iPod greyscale LCD driver: * Further speedup (timeout check turned out to be unnecessary, as well as setting the LCD control register every time on Mini G2. Put lcd_write_data() in IRAM on PP5002). * Better blacklevel stability on 1st...3rd gen. * lcd_enable() function in preparation for suspend on 1st/2nd gen, and shutdown without a black line remaining.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14264 a1c6a512-1295-4272-9138-f99709370657
2007-08-10 08:09:53 +00:00
Jens Arnold
92abed78cc iPod greyscale LCD driver: Slight speedup and correct greylevels for other targets than 1st/2nd gen. * Code cleanup.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14240 a1c6a512-1295-4272-9138-f99709370657
2007-08-08 07:57:34 +00:00
Jens Arnold
0ee44031f0 Use correct 1/3 and 2/3 greylevels.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14223 a1c6a512-1295-4272-9138-f99709370657
2007-08-06 20:17:30 +00:00
Jens Arnold
7f85b5b907 Disk poweroff for 3rd gen iPods.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14171 a1c6a512-1295-4272-9138-f99709370657
2007-08-03 22:54:33 +00:00
Jens Arnold
ccf51927b9 Disk poweroff for 1st/2nd gen iPods.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14157 a1c6a512-1295-4272-9138-f99709370657
2007-08-03 12:05:47 +00:00
Jens Arnold
4e8b171fc4 Interrupt driven ADC reading on the 2nd gen.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14086 a1c6a512-1295-4272-9138-f99709370657
2007-07-30 23:48:03 +00:00
Jens Arnold
a4a3cd9d52 First version of a 1st/2nd gen ADC driver. 1st gen is untested yet.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14082 a1c6a512-1295-4272-9138-f99709370657
2007-07-30 20:12:03 +00:00
Jens Arnold
ffb121c7a3 iPod 1st..3rd gen: Interrupt driven button driver for 100% smooth wheel operation.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14054 a1c6a512-1295-4272-9138-f99709370657
2007-07-29 08:03:21 +00:00
Jens Arnold
41534a9ace 2nd gen: Correct LCD inversion state on init. * Fine tuned default contrast.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14025 a1c6a512-1295-4272-9138-f99709370657
2007-07-27 12:40:36 +00:00
Jens Arnold
021c0868dd iPod 2nd gen: * Fake battery voltage of 4.00V so rockbox doesn't shutdown (ADC is not yet implemented). * Fix button hold polarity for main rockbox. * Implement backlight inversion (the 1st/2nd gen backlight works in a way that makes the LCD look inverted when active). * Fix default contrast and clean up target tree.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14022 a1c6a512-1295-4272-9138-f99709370657
2007-07-27 12:05:54 +00:00
Jens Arnold
b701322fea Rockbox compiles and boots now on the 2nd gen, but doesn't work properly yet.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14021 a1c6a512-1295-4272-9138-f99709370657
2007-07-27 09:57:27 +00:00
Dave Chapman
ebc076bc15 Remove the hack which read the ipod hardware revision from flash in the bootloader and passed it to Rockbox via a fixed address in SDRAM. Rockbox now remaps flash and so can just read the value itself. Also clean up the debug menu a little - only display the hw revision for ipods, and add the lcd_type variable to indicate the type of LCD (0 or 1) for ipod Color/Photo.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13986 a1c6a512-1295-4272-9138-f99709370657
2007-07-25 13:12:38 +00:00
Jens Arnold
fe23dc8f15 Improved CPU clock setup for PP502x. PP5020 and PP5022 are not register compatible here, so define the PP5022 targets properly, and introduce a CPU_PP502x macro for easier family check. Improves stability on PP5020 (less freezing, tested with Mini G1) and reduces clock change penalty (500us on PP5020; uses the relock bit on PP5022).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13763 a1c6a512-1295-4272-9138-f99709370657
2007-07-02 05:16:40 +00:00
Jens Arnold
47bf6c5a5a Moved archos backlight code to target tree. Changed old mutlivalue CONFIG_BACKLIGHT to a simple HAVE_BACKLIGHT.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13136 a1c6a512-1295-4272-9138-f99709370657
2007-04-12 22:12:13 +00:00
Jens Arnold
8636e6949e Moved SH1 system code to target tree. * First shot at hwcompat cleanup.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13114 a1c6a512-1295-4272-9138-f99709370657
2007-04-11 23:51:00 +00:00
Barry Wardell
8b061252c4 Replace some inl/outl with register #define's instead. Also tidy up pp5020.h so that it's in increasing address order.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12574 a1c6a512-1295-4272-9138-f99709370657
2007-03-03 17:25:20 +00:00
Jens Arnold
2906c36df3 Moved ipod LCD code to target tree.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12479 a1c6a512-1295-4272-9138-f99709370657
2007-02-25 13:11:02 +00:00
Jens Arnold
4012aaeb1d iPod G3: Touching the wheel now resets the poweroff timer the same way as on the other iPods.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12071 a1c6a512-1295-4272-9138-f99709370657
2007-01-19 07:33:23 +00:00
Jens Arnold
11b06f0423 iPods: Touching the wheel now resets the poweroff timer, so the iPod no longer shuts down unexpectedly while operating the wheel only, e.g. in the text viewer.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12068 a1c6a512-1295-4272-9138-f99709370657
2007-01-18 22:10:29 +00:00
Barry Wardell
4b54302b07 Combine USB code for all PortalPlayer targets since they most likely all use the same USB hardware. Add register defines for the USB hardware addresses, based off the Freescale i.MX31 datasheet. Use usb_init() from the iPod code, but modified to use the new register defines rather than oul/inl on the hardware addresses.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11823 a1c6a512-1295-4272-9138-f99709370657
2006-12-20 15:28:32 +00:00