Jens Arnold
1d6df54df2
Convert a number of places in core and plugins to use the BIT_N() macro instead of 1<<n. Speeds up things on SH1, and also reduces core binsize. Most notable speedups: 1 bit lcd driver: drawpixel +20%, drawline + 27%, hline +5%; jpeg viewer: +8% for 1/8 scaling. Other targets are unaffected.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21205 a1c6a512-1295-4272-9138-f99709370657
2009-06-07 21:27:05 +00:00
Frank Gevaerts
430343bca7
implement single-driver storage layer with macros instead of inlines
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18975 a1c6a512-1295-4272-9138-f99709370657
2008-11-02 01:14:46 +00:00
Frank Gevaerts
19eb800f75
conditionalise *_get_info() to get some binsize back
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18965 a1c6a512-1295-4272-9138-f99709370657
2008-11-01 17:33:21 +00:00
Frank Gevaerts
2f8a0081c6
Apply FS#9500. This adds a storage_*() abstraction to replace ata_*(). To do that, it also introduces sd_*, nand_*, and mmc_*.
...
This should be a good first step to allow multi-driver targets, like the Elio (ATA/SD), or the D2 (NAND/SD).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18960 a1c6a512-1295-4272-9138-f99709370657
2008-11-01 16:14:28 +00:00
Jens Arnold
f748d3b49f
Some more size optimisations, giving a tiny write speedup as well.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18552 a1c6a512-1295-4272-9138-f99709370657
2008-09-19 20:17:17 +00:00
Jens Arnold
5b17f37e84
Change the way send_cmd() returns data to make it cleaner and save binsize. Also change the command composition for the same reasons.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18551 a1c6a512-1295-4272-9138-f99709370657
2008-09-19 07:27:08 +00:00
Jens Arnold
3655a32a3e
Further MMC driver touchup: * Save a tiny amount of power by not enabling the internal flash clock when accessing the MMC. * R2W factors > 32 are valid in newer MMC specs, so don't limit to 32 anymore. * Revise the port setup, and only do the basic setup once.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18541 a1c6a512-1295-4272-9138-f99709370657
2008-09-17 18:53:11 +00:00
Jens Arnold
e42a7373f6
Fix error handling in multiple block read and multiple block write state. When an error occurs, the host still needs to send CMD_STOP_TRANSMISSION resp. the STOP_TRAN token.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18524 a1c6a512-1295-4272-9138-f99709370657
2008-09-15 21:10:08 +00:00
Jens Arnold
36e311f68b
Implement chasing bitswap for reading. Speeds up reading single 512-byte blocks by 15..20%. * Restructure the write buffer handling a bit, making it more readable and a bit smaller. Also fixes an old corner case bug: writing data from address 0x0 (archos boot ROM dump) would have written wrong data.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18516 a1c6a512-1295-4272-9138-f99709370657
2008-09-14 23:38:31 +00:00
Jens Arnold
b1a584a1b6
Simplify & fix the MMC driver. After more than 3 years I found that the MMC specs were a bit misleading, and the 'large' MMC which state a block size of 1024 or 2048 bytes and no partial read and/or partial write capability are happily accepting a block size of 512 bytes. So go KISS and remove all the variable/partial block handling code. This fixes the driver for the Transcend 4GB MMCplus, which doesn't cope when we actually set the 2048 byte block size it states. It also makes write operations involving small blocks faster and more reliable. * Note: The 4GB Transcend still doesn't work when plugged at boot, but works when hotplugged.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18515 a1c6a512-1295-4272-9138-f99709370657
2008-09-14 20:33:24 +00:00
Daniel Stenberg
2acc0ac542
Updated our source code header to explicitly mention that we are GPL v2 or
...
later. We still need to hunt down snippets used that are not. 1324 modified
files...
http://www.rockbox.org/mail/archive/rockbox-dev-archive-2008-06/0060.shtml
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17847 a1c6a512-1295-4272-9138-f99709370657
2008-06-28 18:10:04 +00:00
Jens Arnold
445fada24c
No need to have \n here. panicf() won't output it anyway.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16577 a1c6a512-1295-4272-9138-f99709370657
2008-03-08 23:56:00 +00:00
Jens Arnold
8c6920e343
Revert accidental tree commit. Sorry for that.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16574 a1c6a512-1295-4272-9138-f99709370657
2008-03-08 23:50:55 +00:00
Jens Arnold
d1ed7c37b1
No need to have \n here. panicf() won't output it anyway.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16570 a1c6a512-1295-4272-9138-f99709370657
2008-03-08 23:34:43 +00:00
Jens Arnold
a0b5780e2d
Remove sector 0 write protection from the ATA and MMC drivers. The one in the ATA driver makes it impossible to change sector 0 from within rockbox USB mode, and nobody reported having seen that sector 0 panic for a loong time. Afaik it dates back to when ATA and filesystem write support were developed.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16370 a1c6a512-1295-4272-9138-f99709370657
2008-02-22 20:29:45 +00:00
Jens Arnold
9e93b9e30a
Proper mutexing in the MMC driver's ata_init(), resembling what is done in the ata driver.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16116 a1c6a512-1295-4272-9138-f99709370657
2008-01-20 12:44:13 +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
Michael Sevakis
1167e3c72f
Accept FS#7134 - Sansa: external sd card support by Antonius Hellmann with some tweaks. All testers have given the green light. (Now for the RED ?? ;).
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13741 a1c6a512-1295-4272-9138-f99709370657
2007-06-30 02:08:27 +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
Daniel Ankers
82f9056988
Dual core support for PP502x players (iPod G4 and later, iriver h10, Sansa - iPod G3 will be coming soon.) This allows threads to be run on either core provided that all communications between the cores is done using uncached memory. There should be no significant change in battery life from doing this. Documentation (on the RockboxKernel wiki page) will follow shortly.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12601 a1c6a512-1295-4272-9138-f99709370657
2007-03-04 20:06:41 +00:00
Jonathan Gordon
b2e50906a4
Settings are now stored in /.rockbox/config.cfg instead of the hidden sector. (FS #6557 )
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12093 a1c6a512-1295-4272-9138-f99709370657
2007-01-23 13:40:44 +00:00
Michael Sevakis
26c514673d
Woops. Missed a file.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11819 a1c6a512-1295-4272-9138-f99709370657
2006-12-19 17:05:20 +00:00
Jens Arnold
8c3f0681b2
Get rid of ages-old interdependency between ata.c and mas.c
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11519 a1c6a512-1295-4272-9138-f99709370657
2006-11-12 14:17:49 +00:00
Jens Arnold
412bea9782
Ondio: Better activity monitoring for 'ata' idle notification.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11481 a1c6a512-1295-4272-9138-f99709370657
2006-11-09 18:57:47 +00:00
Jonathan Gordon
fd0e640edd
Bah, Linus was right, trying to call the ata_idle callbacks on usb and
...
shutdown doesnt work. Threads with callbacks must handle these 2 events
instead.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11477 a1c6a512-1295-4272-9138-f99709370657
2006-11-09 07:02:18 +00:00
Jens Arnold
5d67b4906d
Missed one hotswap ifdef...
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11466 a1c6a512-1295-4272-9138-f99709370657
2006-11-08 08:04:11 +00:00
Jens Arnold
af2d91f629
Fix idle monitoring to not freeze the Ondio, and add it in a more elegant way. Fixed hotswap ifdefing.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11465 a1c6a512-1295-4272-9138-f99709370657
2006-11-08 07:32:53 +00:00
Jonathan Gordon
d9f7ac24f4
fix booboo in ata.c (SYS_POWEROFF falling into SYS_USB_CONNECTED)
...
enable ata_idle callbacks in ata_mmc.c (calls the callbacks after 10s of
real inactivity)
fix builds
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11462 a1c6a512-1295-4272-9138-f99709370657
2006-11-08 02:23:01 +00:00
Jonathan Gordon
f184152c05
* changes to ata.c - idle callbacks are called after 2 sec of real idle,
...
and shutdown and usb (it makes sense here). ata_sleep doesnt get broken
by callbacks.
* allow ata_sleep() at the end of buffering again
* config block uses ata_idle instead of delayed sector when saving
* remove delayed sector code from ata_mmc.c (idle callbacks are not yet
implemented for ata_mmc.c tho)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11461 a1c6a512-1295-4272-9138-f99709370657
2006-11-08 01:55:26 +00:00
Miika Pekkarinen
a85044bf9e
New scheduler, with priorities for swcodec platforms. Frequent task
...
switching should be more efficient and tasks are stored in linked
lists to eliminate unnecessary task switching to improve performance.
Audio should no longer skip on swcodec targets caused by too CPU
hungry UI thread or background threads.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10958 a1c6a512-1295-4272-9138-f99709370657
2006-09-16 16:18:11 +00:00
Jens Arnold
61b8604a9c
Ondio: (Hopefully) fix the occasional freezes during playback: Use DMA channel 0 for MMC transfer. As it has higher priority than channel 3 (used for playback), the risk of serial receive overruns is minimised.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9885 a1c6a512-1295-4272-9138-f99709370657
2006-05-07 20:20:27 +00:00
Jens Arnold
a8c1c20305
Removed unused ata_standby(), changed return type of ata_sleep() to void, removed misleading comment from ata.h
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7782 a1c6a512-1295-4272-9138-f99709370657
2005-11-07 23:19:06 +00:00
Jens Arnold
8f1ace7525
Ondio: Fix multivolume and hotswap for the old MMC clock circuit.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6502 a1c6a512-1295-4272-9138-f99709370657
2005-05-22 00:42:00 +00:00
Jens Arnold
27abc2a641
(1) Early USB detection on boot, before trying to mount the partitions. Cleaner & quicker; removes the need for the extra USB check at the top of ask_resume() which caused a deadlock in screenshot mode (see patch #1110332 ). On Ondio, this allows to leave an MMC in the slot when booting with USB connected for instant access. (2) Ondio: Track MMC status, only ask to remove the card if required. Probe MMC status if unknown.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6488 a1c6a512-1295-4272-9138-f99709370657
2005-05-17 22:10:51 +00:00
Jens Arnold
fe1ce9d842
Hotswap: Better placement for switching the MMC monitor off/on.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6480 a1c6a512-1295-4272-9138-f99709370657
2005-05-16 15:21:09 +00:00
Jens Arnold
15d7077c3a
Hotswap: Avoid mount race at startup and after returning from USB mode.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6479 a1c6a512-1295-4272-9138-f99709370657
2005-05-16 13:25:02 +00:00
Jens Arnold
268f0b4337
Some code cleanup.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6471 a1c6a512-1295-4272-9138-f99709370657
2005-05-14 17:23:13 +00:00
Jens Arnold
251deaa4ca
Improved bitfield handling for settings and MMC (more straigtforward, smaller code). This switches the order for fields crossing a longword boundary, so the config block version bump is necessary. Save your settings to a file before upgrading.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6404 a1c6a512-1295-4272-9138-f99709370657
2005-05-04 22:30:36 +00:00
Jens Arnold
1ba26b8a60
MMC driver: More flexible background copy & bitswap concept, using global variables - slightly less read latency when both partial and full blocks are involved. Some code cleanup.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6393 a1c6a512-1295-4272-9138-f99709370657
2005-05-02 00:33:01 +00:00
Jens Arnold
74875ef37e
Speed optimisations: (1) Read, write: Use single/multiple block commands depending on the block count. (2) Write: Combine first partial sector transfer (after caching) & main loop into one block-transfer sequence.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6381 a1c6a512-1295-4272-9138-f99709370657
2005-04-28 20:47:55 +00:00
Jens Arnold
a7f7781dca
MMC driver does now handle block sizes != 512 bytes, which is necessary to support cards > 1 GB. Changed error handling to use the same method as other parts of rockbox, allowing to trace the call chain. Long policy, code cleanup.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6366 a1c6a512-1295-4272-9138-f99709370657
2005-04-28 01:11:21 +00:00
Jörg Hohensohn
3ea9aa4626
non-ambiguous error code
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6192 a1c6a512-1295-4272-9138-f99709370657
2005-03-12 12:35:06 +00:00
Jörg Hohensohn
fe0e368d5c
Don't panic on read attempts past end of card, just exit with error. Such can happen when mounting superfloppy MMC, without valid partition table.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6179 a1c6a512-1295-4272-9138-f99709370657
2005-03-10 05:43:44 +00:00
Jens Arnold
2aefbf7549
Correctly display USB activity on Ondios with old bridge. (Added blindly, please test.) Slight code cleanup, removed DOS line endings.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6025 a1c6a512-1295-4272-9138-f99709370657
2005-02-20 00:21:20 +00:00
Jörg Hohensohn
7e1d36f35b
Ondio: disk activity indication in USB mode, too
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6020 a1c6a512-1295-4272-9138-f99709370657
2005-02-19 14:45:34 +00:00
Jörg Hohensohn
c76fbf7162
Ondio: disk indication in the status bar, to compensate for lacking LED
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6012 a1c6a512-1295-4272-9138-f99709370657
2005-02-19 00:34:15 +00:00
Jens Arnold
4d6e482e56
Some MMCs don't like reading their very last sector with the read_multiple_blocks command, so always read it with read_single_block. Slight optimisation.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5942 a1c6a512-1295-4272-9138-f99709370657
2005-02-14 23:42:32 +00:00
Jens Arnold
b3017c8701
Fixed calculation of MMC sector count. Display sector count instead of (rough) size info for debugging.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5937 a1c6a512-1295-4272-9138-f99709370657
2005-02-12 23:09:00 +00:00
Linus Nielsen Feltzing
4d7671ce22
Aligned thread stack
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5803 a1c6a512-1295-4272-9138-f99709370657
2005-02-06 02:34:17 +00:00
Jens Arnold
404fd12aae
MMC driver now panics on out-of-bound accesses.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5768 a1c6a512-1295-4272-9138-f99709370657
2005-02-04 00:58:47 +00:00