Commit graph

253 commits

Author SHA1 Message Date
Frank Gevaerts
c0a5a67387 Commit FS#9545, storage cleanup and multi-driver support
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21933 a1c6a512-1295-4272-9138-f99709370657
2009-07-17 22:28:49 +00:00
Frank Gevaerts
057a5802cd ignore write data if the length doesn't match what we expect. This avoids the data corruption caused by FS#10319, but doesn't solve the root cause yet (patch by Martin Ritter)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21521 a1c6a512-1295-4272-9138-f99709370657
2009-06-26 15:14:49 +00:00
Frank Gevaerts
4f2dfcc01b always call the class driver init function. This is needed because they are called before the usb_core_enable_driver() calls, so depending on enabled status breaks things
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21069 a1c6a512-1295-4272-9138-f99709370657
2009-05-24 20:46:57 +00:00
Frank Gevaerts
c61a75173b Reorganise USB stack defines. Now config.h decides which class drivers get enabled instead of usb_core.h
Also enable HID, and use that as the dummy class instead of charging-only for controllers that have working interrupt transfers.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21053 a1c6a512-1295-4272-9138-f99709370657
2009-05-23 14:30:20 +00:00
Frank Gevaerts
bca3d3dca4 Fix #ifdef nesting to allow USB_HID to be built without USB_CHARGING_ONLY (FS#10236 by Tomer Shalev)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21052 a1c6a512-1295-4272-9138-f99709370657
2009-05-23 12:41:46 +00:00
Frank Gevaerts
fba4be213f Don't force double-buffering for sd devices. They apparently are not faster with it, ans possibly actually slower
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20999 a1c6a512-1295-4272-9138-f99709370657
2009-05-20 16:57:17 +00:00
Frank Gevaerts
792a7a6086 Use different read and write buffer sizes. Due to interaction between common transfer sizes used by most OSes (64k) and the double-buffering system we use for writes, writes need a smaller buffer to make sure that USB and disk I/O can overlap.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20988 a1c6a512-1295-4272-9138-f99709370657
2009-05-19 18:51:03 +00:00
Frank Gevaerts
c8d6a02c5a Speed up USB storage by being a bit smarter in ordering transfer setups
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20982 a1c6a512-1295-4272-9138-f99709370657
2009-05-18 19:45:24 +00:00
Frank Gevaerts
2bc6b7c5cd Add usb_hid_usage_tables.h for HID to actually compile
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20963 a1c6a512-1295-4272-9138-f99709370657
2009-05-16 15:30:39 +00:00
Frank Gevaerts
69a4117c1d Add working USB HID driver, by Tomer Shalev (part of his GSoC work).
This needs support for usb interrupt transfers, so there are some changes in various USB drivers as well (only usb-drv-arc supports it at this point, others won't have working HID yet).

HID is disabled for now, as the apps/ part is not included yet.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20962 a1c6a512-1295-4272-9138-f99709370657
2009-05-16 15:30:09 +00:00
Frank Gevaerts
685cee87be fix send_command_result() size checking for the SCSI_REQUEST_SENSE case (thanks to Tomer Shalev, FS#10203)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20914 a1c6a512-1295-4272-9138-f99709370657
2009-05-11 23:00:56 +00:00
Maurus Cuelenaere
1ab19d0b9b Disable usage of USB serial descriptor when no unique one is available
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20761 a1c6a512-1295-4272-9138-f99709370657
2009-04-20 20:24:23 +00:00
Frank Gevaerts
2a085f4477 Add preliminary HID driver. It doesn't do anything yet, but that should change soon (FS#10116 by Tomer Shalev)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20750 a1c6a512-1295-4272-9138-f99709370657
2009-04-19 21:17:18 +00:00
Frank Gevaerts
08b04cc587 reorganise usb_core.c a bit, to make the code more readable and more maintainable (FS#10150 by Tomer Shalev))
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20748 a1c6a512-1295-4272-9138-f99709370657
2009-04-19 19:53:32 +00:00
Frank Gevaerts
4bff30a77f simplify and cleanup usb_serial.c (FS#10149 by Tomer Shalev)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20746 a1c6a512-1295-4272-9138-f99709370657
2009-04-19 19:25:59 +00:00
Frank Gevaerts
00b407b04f USB related Cosmetics, whitespace and readability fixes (FS#10147 by Tomer Shalev)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20737 a1c6a512-1295-4272-9138-f99709370657
2009-04-18 21:32:41 +00:00
Frank Gevaerts
3314f389ba Allow class drivers to reuse the core data buffer for control transfers. This doesn't make much difference right now, but it should keep HID memory usage lower (once HID is ready) (FS#10146 by Tomer Shalev)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20735 a1c6a512-1295-4272-9138-f99709370657
2009-04-18 20:40:50 +00:00
Frank Gevaerts
ab09322b7a Add a PACK_DESCRIPTOR macro to make the class drivers a bit more readable (FS#10145 by Tomer Shalev)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20733 a1c6a512-1295-4272-9138-f99709370657
2009-04-18 20:04:52 +00:00
Frank Gevaerts
463e20271b Fix some whitespace issues (including tabs that slipped in somehow) (FS#10144 by Tomer Shalev)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20731 a1c6a512-1295-4272-9138-f99709370657
2009-04-18 18:17:29 +00:00
Frank Gevaerts
a8b6f1cb7b Fix unintentional usage of relatively unknown C features (FS#10119, found by Tomer Shalev)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20685 a1c6a512-1295-4272-9138-f99709370657
2009-04-11 12:55:34 +00:00
Maurus Cuelenaere
697869e892 Revert r20617 for now
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20624 a1c6a512-1295-4272-9138-f99709370657
2009-04-05 13:11:38 +00:00
Maurus Cuelenaere
b4f6b259ef Don't leave LOGF_ENABLE enabled...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20619 a1c6a512-1295-4272-9138-f99709370657
2009-04-04 20:58:39 +00:00
Maurus Cuelenaere
2ca376cce8 Use the audio buffer in USB storage for ISP1583-having targets
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20617 a1c6a512-1295-4272-9138-f99709370657
2009-04-04 18:16:36 +00:00
Frank Gevaerts
0ece30a726 Commit FS#10015 - Use chained transfer descriptor to speed up USB transfers on PP and iMX31
(not exactly the same. This one actually works)



git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20570 a1c6a512-1295-4272-9138-f99709370657
2009-03-29 19:56:21 +00:00
Nicolas Pennequin
396aeafa6c Correct Björn's name in various file headers.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20491 a1c6a512-1295-4272-9138-f99709370657
2009-03-23 17:08:46 +00:00
Frank Gevaerts
105fe0679d Don't swamp the system with broadcast messages that nobody is listening to yet anyway.
Also, these messages should probably be done in a different way, like an update every second (or maybe half-second)
This should fix FS#10006


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20294 a1c6a512-1295-4272-9138-f99709370657
2009-03-11 20:54:32 +00:00
Frank Gevaerts
871db6f5d9 Allow the user to leave MSC mode by pressing the USB POWER button (the one that's used to go to usb power mode on plugin) when the host OS hasn't locked the device.
This only works for devices that expose a removable device, so for now the gigabeat S is out of luck.
(slightly modified from FS#9993)


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20244 a1c6a512-1295-4272-9138-f99709370657
2009-03-08 18:45:19 +00:00
Frank Gevaerts
ec602b7e75 send the USB broadcast events at a less busy time
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20142 a1c6a512-1295-4272-9138-f99709370657
2009-02-28 19:39:28 +00:00
Frank Gevaerts
3b141d9c80 Also broadcast transfer information for use by fancy USB screens
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20140 a1c6a512-1295-4272-9138-f99709370657
2009-02-28 16:25:07 +00:00
Frank Gevaerts
afedfcf44e Leave "usb mode" when all LUNs are ejected again
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20139 a1c6a512-1295-4272-9138-f99709370657
2009-02-28 15:16:54 +00:00
Frank Gevaerts
b6a1af2a9b Adds the possibility to show nice "do not disconnect" screens/icons on the USB screen. A proof-of-concept for the actual screen is at FS#9969
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20138 a1c6a512-1295-4272-9138-f99709370657
2009-02-28 14:47:18 +00:00
Frank Gevaerts
80410f21b9 remove SERIALIZE_WRITES. The reason for it (the SD bug) is gone, so there's no point in keeping this
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20098 a1c6a512-1295-4272-9138-f99709370657
2009-02-24 18:30:32 +00:00
Dave Chapman
dff46d20e6 Commit my patch from FS#9940 - fix the invalid active flags in the Gigabeat S MBR on the fly in the UMS driver. It is hypothosized that actually changing these on the disk will make the OF more likely to reformat the data partition during recovery - but that is not confirmed. So we play it safe.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20085 a1c6a512-1295-4272-9138-f99709370657
2009-02-22 18:25:16 +00:00
Frank Gevaerts
3e7715d2f5 small usb serial fixes. This seems to work fine on imx31, but for some reason it sometimes stops sending data on portalplayer
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20077 a1c6a512-1295-4272-9138-f99709370657
2009-02-21 16:36:54 +00:00
Frank Gevaerts
88eb592cf4 more fixes. There's still something wrong as it sometimes suddenly stops sending data. Disconnecting and reconnecting gets it going again
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20072 a1c6a512-1295-4272-9138-f99709370657
2009-02-21 00:28:40 +00:00
Frank Gevaerts
2c3517d67a Fix ringbuffer handling. This will hopefully fix the hang-on-fast-send issue
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20064 a1c6a512-1295-4272-9138-f99709370657
2009-02-20 15:20:31 +00:00
Frank Gevaerts
67a5c56103 usb serial on PP seems to have broken. Fix it
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20023 a1c6a512-1295-4272-9138-f99709370657
2009-02-16 21:45:40 +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
Maurus Cuelenaere
868a4bdbc3 Fix RAM disk when no audio buffer is available
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19814 a1c6a512-1295-4272-9138-f99709370657
2009-01-21 20:52:35 +00:00
Maurus Cuelenaere
f1c6c3a754 USB storage driver:
* Move RAM disk buffer allocation #ifdef below
 * Don't use the audio buffer for bootloaders


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19812 a1c6a512-1295-4272-9138-f99709370657
2009-01-21 20:22:40 +00:00
Michael Sevakis
616c98b38f USB detection changes. c200/e200: Consider USB to be powered when charger is plugged but detect USB connection by bus reset. When received, disconnect and restart the driver fully enabled. imx31: Fix hack used to make initial connect succeeded-- set PHY type before initial reset. General: Move some target code out of usb-drv-arc.c and implement it in respective usb sources and CPU headers so things stay clean.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19797 a1c6a512-1295-4272-9138-f99709370657
2009-01-19 13:41:25 +00:00
Michael Sevakis
6da8b4eb49 USB retweaking: Take out the USB_REQUEST/RELEASE_DISK scheme and simply ask the USB core whether or not any drivers require exclusive access at the moment of connect. Doing anthing else just produces nasty effects on Windows because it expects some communication just for enabling the PHY and not allowing it to mount volumes if a thread doesn't ack causes annoying error message boxes. Make behavior of each USB type identical from the system perspective. Some miscellaneous changes (simplify, ata->storage naming, define only used USB_* enums values were possible).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19762 a1c6a512-1295-4272-9138-f99709370657
2009-01-13 16:27:35 +00:00
Frank Gevaerts
bbd33a0a7d improve handling of unimplemented commands
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19755 a1c6a512-1295-4272-9138-f99709370657
2009-01-12 21:22:26 +00:00
Frank Gevaerts
a2e80d573c correct wrong logf
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19627 a1c6a512-1295-4272-9138-f99709370657
2008-12-31 17:36:57 +00:00
Frank Gevaerts
19dfe330a1 Add a disconnect handler for usb storage. It doesn't do anything yet, but it will apparently be needed to reset the audio buffer
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19418 a1c6a512-1295-4272-9138-f99709370657
2008-12-13 14:49:44 +00:00
Frank Gevaerts
b9c49fd474 Replace USE_HIGH_SPEED with USB_NO_HIGH_SPEED, as high speed support is the normal case
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19274 a1c6a512-1295-4272-9138-f99709370657
2008-11-30 15:53:36 +00:00
Frank Gevaerts
caaf3c0b97 Move tcc77x/usb-tcc77x.c to usb-tcc.c as it is more general than just tcc77x (even usb-tcc is too specific, but I don't know anything better)
Add #if0ed USB defines to config-cowond2.h, so experimenting with USB is easy
Add dummy set_serial_descriptor() implementation to usb_core.c. This one doesn't generate a unique serial, so it must never be used for non-testing purposes. When usaed, a compiler warning will be generated


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19273 a1c6a512-1295-4272-9138-f99709370657
2008-11-30 15:43:15 +00:00
Frank Gevaerts
214cd81f08 Add ramdisk storage driver. It will be useful for developing multi-driver storage
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18993 a1c6a512-1295-4272-9138-f99709370657
2008-11-03 20:52:27 +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
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
Frank Gevaerts
19d1cacb1a cleanup storage defines
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18950 a1c6a512-1295-4272-9138-f99709370657
2008-10-31 21:25:04 +00:00
Dave Chapman
42f77d4eb0 Abstract the PortalPlayer AS3514 handling with an "ascodec" API - inspired by the wmcodec API used with the Wolfson codecs. The intention is to implement this API for the AS3525 and then share code with the Sansa V2 ports.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18940 a1c6a512-1295-4272-9138-f99709370657
2008-10-31 00:16:42 +00:00
Frank Gevaerts
b0b3f0339a add optional USB mass storage from ramdisk. This can be useful for development
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18849 a1c6a512-1295-4272-9138-f99709370657
2008-10-20 21:49:59 +00:00
Frank Gevaerts
20e704ba78 disable logf again
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18704 a1c6a512-1295-4272-9138-f99709370657
2008-10-03 22:49:36 +00:00
Frank Gevaerts
478fc5baed reorganise the USB stack a bit to allow for easier integration of non-ARC controller drivers
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18703 a1c6a512-1295-4272-9138-f99709370657
2008-10-03 22:43:16 +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
Frank Gevaerts
ab7cfd2855 revert r18327, as it introduces serious issues on non-sd players (like ipods)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18370 a1c6a512-1295-4272-9138-f99709370657
2008-08-31 15:11:04 +00:00
Frank Gevaerts
1f7b22bd37 Make usb_storage work on all targets again
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18357 a1c6a512-1295-4272-9138-f99709370657
2008-08-28 09:02:28 +00:00
Frank Gevaerts
3dad671ef3 Use cached memory for ata_write_sectors(). This seems to finally fix FS#8663
Thanks to Martin Ritter for finding out that the uncached accesses were somehow causing this

SERIALIZE_WRITES can probably be removed, but this requires a bit more testing first


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18327 a1c6a512-1295-4272-9138-f99709370657
2008-08-21 10:10:58 +00:00
Frank Gevaerts
df7d6d0e6e define SERIALIZE_WRITES for all HAVE_ATA_SD, not just the sansas
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18001 a1c6a512-1295-4272-9138-f99709370657
2008-07-09 21:00:38 +00:00
Frank Gevaerts
3f3bb75d6a Don't do overlapping USB transactions and SD writes. This seems to avoid FS#8663
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17997 a1c6a512-1295-4272-9138-f99709370657
2008-07-09 19:56:09 +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
Frank Gevaerts
27ad822a44 add usb_allowed_current() function, so powermanagement code can know when it's allowed to charge from usb
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17688 a1c6a512-1295-4272-9138-f99709370657
2008-06-04 18:55:58 +00:00
Mark Arigo
3e743ec6c9 Preparing for the Philips SA9200 part 2. Since the SA9200 doesn't have a microsd card (no hotswap), use HAVE_ATA_SD for the Sansa flash driver so we don't rely on HAVE_HOTSWAP in some places.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17488 a1c6a512-1295-4272-9138-f99709370657
2008-05-13 02:50:31 +00:00
Frank Gevaerts
bc1ce741c9 typo fixes (; instead of , at the end of two assignments) (same as r17398 for usb_serial. lesson learned : always check if there are similar bugs elsewhere)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17400 a1c6a512-1295-4272-9138-f99709370657
2008-05-06 21:00:07 +00:00
Frank Gevaerts
ee8ebc9160 typo fixes (; instead of , at the end of two assignments)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17398 a1c6a512-1295-4272-9138-f99709370657
2008-05-06 20:48:50 +00:00
Nicolas Pennequin
357ffb3c46 Convert the whole codebase to UTF-8, except docs/COMMITTERS and tools/creative.c, which need checking.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17369 a1c6a512-1295-4272-9138-f99709370657
2008-05-05 10:32:46 +00:00
Bertrik Sikken
ba39a5c110 Added missing usb #includes to usb source files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17309 a1c6a512-1295-4272-9138-f99709370657
2008-05-03 07:10:21 +00:00
Frank Gevaerts
bec6aa3176 - change the usb class driver framework to allow for device classes with more than one interface or more than one endpoint pair
- move the charging-only dummy driver out of usb_core



git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17252 a1c6a512-1295-4272-9138-f99709370657
2008-04-26 19:02:16 +00:00
Maurus Cuelenaere
95167e0177 Commit whole Creative Zen Vision:M target tree + all related firmware/
changes.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17241 a1c6a512-1295-4272-9138-f99709370657
2008-04-24 20:08:28 +00:00
Frank Gevaerts
02bfba6c61 Put USB controller structures in IRAM. This seems to make the connection much more stable on PP502x
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17191 a1c6a512-1295-4272-9138-f99709370657
2008-04-20 16:51:09 +00:00
Michael Sevakis
1eed012cfc Add keywords and fix headers for files the usbstack files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17156 a1c6a512-1295-4272-9138-f99709370657
2008-04-18 17:05:15 +00:00
Michael Sevakis
94f7d0f290 UMS for the Gigabeat S. Bootloader USB mode. Has a couple quirks 1) First plug has problems if cold. Replug if it doesn't connect or not at high speed 2) Linux doesn't like the odd bootable flag value used in the partitions so it won't mount but Windows works. Fix minor OTG driver bugs and clean up device memory handling. Generic name for ARC controller driver.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17154 a1c6a512-1295-4272-9138-f99709370657
2008-04-18 16:42:50 +00:00
Michael Sevakis
689020f689 Fix yellow. usb_strings needs to point to const data as well.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17141 a1c6a512-1295-4272-9138-f99709370657
2008-04-16 16:11:09 +00:00
Michael Sevakis
5ff61eee6a Simpilify the uncached buffer allocation for the USB stack using NOCACHEBSS_ATTR. This will probably get abstracted since the appropriate way to handle it will be somewhat target-specific.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17140 a1c6a512-1295-4272-9138-f99709370657
2008-04-16 15:48:54 +00:00
Bertrik Sikken
a24f4b7a80 FS#8898 - Prefix AS3514 registers with AS3514_
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17130 a1c6a512-1295-4272-9138-f99709370657
2008-04-15 21:33:32 +00:00
Frank Gevaerts
be77cf5279 only reconnect mass storage if there is actually an active usb connection, with mass storage enabled
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17098 a1c6a512-1295-4272-9138-f99709370657
2008-04-13 17:16:50 +00:00
Frank Gevaerts
688f8decf4 Clean up the way empty transfers are sent in error cases.
correctly zero out all data that gets sent to the host
I'm just committing this. The actual work was done by Martin Ritter (thanks)


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16922 a1c6a512-1295-4272-9138-f99709370657
2008-04-01 20:36:51 +00:00
Frank Gevaerts
ecde125fa7 Sending an empty data block before sending the FAIL CSW seems to make Windows happier if a device is not present (e.g. an empty sd card slot) (fix proposed by Martin Ritter)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16750 a1c6a512-1295-4272-9138-f99709370657
2008-03-22 21:21:37 +00:00
Frank Gevaerts
ea5903dbf1 move boosting for usb around a bit, so the cpu is boosted for the entire duration of actual use of storage. On some setups just boosting for the actual transfers doesn't seem to work
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16726 a1c6a512-1295-4272-9138-f99709370657
2008-03-20 22:05:11 +00:00
Frank Gevaerts
455fabfcb8 fix SCSI_FORMAT_CAPACITY_FORMATTED_MEDIA flag endianness. Thanks to Martin Ritter for spotting this
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16694 a1c6a512-1295-4272-9138-f99709370657
2008-03-18 10:16:27 +00:00
Frank Gevaerts
7fcd26e479 Only boost the CPU for large transactions. It would be nice to get rid of boosting for USB altogehter, but it doesn't seem to work then.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16656 a1c6a512-1295-4272-9138-f99709370657
2008-03-13 19:56:52 +00:00
Frank Gevaerts
292f139f4c fix the last warning
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16622 a1c6a512-1295-4272-9138-f99709370657
2008-03-10 21:28:44 +00:00
Frank Gevaerts
a0290607e0 remember to test a bit more when doing larger changes...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16621 a1c6a512-1295-4272-9138-f99709370657
2008-03-10 21:16:31 +00:00
Frank Gevaerts
745133014e make the usb storage driver handle hotswap correctly, and exit the usb screen once all drives are "ejected" (either as a command from the OS or physically)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16617 a1c6a512-1295-4272-9138-f99709370657
2008-03-10 20:55:24 +00:00
Frank Gevaerts
326d0ab8c3 make usb_serial work again. Also know as "make sure arrays are allocated at their correct size"
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16615 a1c6a512-1295-4272-9138-f99709370657
2008-03-10 20:28:59 +00:00
Frank Gevaerts
f0b4a32d6f reorganise the usb stack to provide a clean separation between core and class drivers
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16541 a1c6a512-1295-4272-9138-f99709370657
2008-03-06 21:25:09 +00:00
Frank Gevaerts
1e6d550087 handle interface-specific control requests a bit more cleanly
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16519 a1c6a512-1295-4272-9138-f99709370657
2008-03-04 19:32:23 +00:00
Barry Wardell
4c67c334fe Oops. Didn't mean to commit this.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16515 a1c6a512-1295-4272-9138-f99709370657
2008-03-04 14:40:04 +00:00
Barry Wardell
46973f7f9f Only need to include these for e200.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16514 a1c6a512-1295-4272-9138-f99709370657
2008-03-04 14:36:22 +00:00
Frank Gevaerts
52df7addcf present a different USB serial number depending on which USB class drivers are enabled. This is needed for Windows to correctly detect the device if a different set of drivers is active than on the previous plugin
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16511 a1c6a512-1295-4272-9138-f99709370657
2008-03-04 12:08:00 +00:00
Frank Gevaerts
931ceed47f MODE SENSE output data length field has to be the length of the response excluding the length field.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16508 a1c6a512-1295-4272-9138-f99709370657
2008-03-04 00:55:26 +00:00
Frank Gevaerts
19815f8197 fix endianness bug in MODE SENSE 10 response
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16507 a1c6a512-1295-4272-9138-f99709370657
2008-03-04 00:46:52 +00:00
Frank Gevaerts
6cfa909002 handle START_STOP_UNIT eject command, to make TEST_UNIT_READY return false once the OS ejects
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16503 a1c6a512-1295-4272-9138-f99709370657
2008-03-03 22:53:25 +00:00
Frank Gevaerts
81d3a02928 mark all drives as DEVICE_REMOVABLE to make mac osx (and some developers) happy
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16502 a1c6a512-1295-4272-9138-f99709370657
2008-03-03 22:19:38 +00:00
Frank Gevaerts
ebb49434c6 fix wrong building block_count from read and write commands
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16501 a1c6a512-1295-4272-9138-f99709370657
2008-03-03 22:17:21 +00:00
Frank Gevaerts
f8a5a40301 remove usb_benchmark. Its usefulness is extremely limited, and the usb stack around it is moving fast, so it's likely to suffer from bit rot very soon.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16500 a1c6a512-1295-4272-9138-f99709370657
2008-03-03 17:59:58 +00:00
Frank Gevaerts
c270b7a289 only send a Charging Only interface if nothing else is sent
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16499 a1c6a512-1295-4272-9138-f99709370657
2008-03-03 12:51:32 +00:00
Frank Gevaerts
a9afca99a8 remove stalls that are optional. This makes osx not crash on disconnect
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16498 a1c6a512-1295-4272-9138-f99709370657
2008-03-03 12:38:15 +00:00
Frank Gevaerts
0b4299a82f extra input checking
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16493 a1c6a512-1295-4272-9138-f99709370657
2008-03-02 23:34:30 +00:00
Frank Gevaerts
8abe9cffe4 remove a reundant MIN(), and reduce the buffer. We really don't need 16k for this. It seems to work reliably at full speed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16491 a1c6a512-1295-4272-9138-f99709370657
2008-03-02 22:12:51 +00:00
Frank Gevaerts
793fc3f072 add some #ifdefs to gt rid of some unused variable warnings (and their RAM use)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16487 a1c6a512-1295-4272-9138-f99709370657
2008-03-02 21:00:12 +00:00
Frank Gevaerts
776d015cc4 implement logf over usb-serial. Needs USB_SERIAL defined in usb_core.h to work, and needs to be enabled in the debug menu.
It stops sending data after a while for unknown reasons.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16486 a1c6a512-1295-4272-9138-f99709370657
2008-03-02 20:45:33 +00:00
Frank Gevaerts
b3ab788411 update the bNumInterfaces field in the configuration descriptor correctly
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16485 a1c6a512-1295-4272-9138-f99709370657
2008-03-02 18:53:52 +00:00
Frank Gevaerts
f18d20ee36 Only show the usb screen once a real usb connection is established. In case other threads are slow in acknowledging the SYS_USB_CONNECTED message, tell the OS that the disk is not ready yet (the OS interprets this as "spinning up")
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16471 a1c6a512-1295-4272-9138-f99709370657
2008-03-02 00:15:02 +00:00
Frank Gevaerts
5daf9b043a only initialize class drivers that are actually enabled. This is needed for usb-storage because it grabs the audio buffer during usb_storage_init(), which stops playback. It's probably also the right thing to do for other drivers.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16467 a1c6a512-1295-4272-9138-f99709370657
2008-03-01 19:28:09 +00:00
Frank Gevaerts
8865490106 Move all pointers to the transfer buffer area into a union. This makes it clear that they are meant to point to the same data, and should make code and RAM usage slightly smaller
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16458 a1c6a512-1295-4272-9138-f99709370657
2008-02-29 21:10:31 +00:00
Frank Gevaerts
d8df26abfb return real data on MODE_SENSE. This might fix the mac osx problems
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16457 a1c6a512-1295-4272-9138-f99709370657
2008-02-29 19:25:14 +00:00
Frank Gevaerts
f712c7ff36 fix alignment and packed-ness of USB structs
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16455 a1c6a512-1295-4272-9138-f99709370657
2008-02-29 18:33:54 +00:00
Frank Gevaerts
2662f1b3ce - some SCSI/UMS fixes
- don't boost the CPU any more. The USB driver does that
- only mark the SD-card slot on sansas removable (decision on what is the right thing to do is still pending)


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16448 a1c6a512-1295-4272-9138-f99709370657
2008-02-28 22:35:23 +00:00
Frank Gevaerts
be29249bf2 make the ipod serial number 24 characters long. This makes the Vista BSOD go away
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16438 a1c6a512-1295-4272-9138-f99709370657
2008-02-27 21:16:49 +00:00
Frank Gevaerts
1341ae3a24 use get_audio_buffer() to allocate all needed buffer stace for the usb storage driver
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16437 a1c6a512-1295-4272-9138-f99709370657
2008-02-27 20:25:32 +00:00
Frank Gevaerts
6e7fac7c34 move the usb_core thread functionality to the main usb thread
fix button-detection so screenshots and charge-only mode work without enabling UMS
firewire detection is now handled separately from usb detection
increase the usb thread priority while an UMS connection is active


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16435 a1c6a512-1295-4272-9138-f99709370657
2008-02-27 19:08:30 +00:00
Frank Gevaerts
97d7f39680 added support for USB port test modes, which are (a) required by the spec, and (b) needed for electrical (i.e. signal quality) testing
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16427 a1c6a512-1295-4272-9138-f99709370657
2008-02-26 18:02:26 +00:00
Frank Gevaerts
7bf5722a9d some progress towards software-selectability of usb class drivers.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16422 a1c6a512-1295-4272-9138-f99709370657
2008-02-25 23:43:11 +00:00
Frank Gevaerts
30b129d025 only set the serial descriptor once
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16421 a1c6a512-1295-4272-9138-f99709370657
2008-02-25 22:26:07 +00:00
Frank Gevaerts
7b8bb47036 Don't send a serial number id USE_ROCKBOX_USB. There is something about the current ipod serial number that causes Vista BSODs.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16416 a1c6a512-1295-4272-9138-f99709370657
2008-02-25 12:48:23 +00:00
Frank Gevaerts
abc3ae6a6f report usb 1.1 compliance if USE_HIGH_SPEED is not set. This should avoid Windows telling the user to plug in the device into a high speed port
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16406 a1c6a512-1295-4272-9138-f99709370657
2008-02-24 13:45:36 +00:00
Jens Arnold
fbfda7e5ba Identify info endianness is already handled in the ATA driver.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16380 a1c6a512-1295-4272-9138-f99709370657
2008-02-23 08:22:12 +00:00
Frank Gevaerts
6431cd327c - Attempt to generate the usb serial number from the disk serial number
- serial number length is again target dependent


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16374 a1c6a512-1295-4272-9138-f99709370657
2008-02-22 23:14:24 +00:00
Frank Gevaerts
f5c1262f75 fix usb string descriptors
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16372 a1c6a512-1295-4272-9138-f99709370657
2008-02-22 22:25:00 +00:00
Frank Gevaerts
9dbe7f2a8c Improve usb descriptor handling. This should fix any cache and/or alignment related problem.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16371 a1c6a512-1295-4272-9138-f99709370657
2008-02-22 20:38:31 +00:00
Frank Gevaerts
e744dd4353 fix wrong LBA range check with sectorsizes larger than 512 bytes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16362 a1c6a512-1295-4272-9138-f99709370657
2008-02-21 11:59:17 +00:00
Frank Gevaerts
07427592a9 Major USB stack improvements. It now works at nearly the maximum speed for a full speed connection, and does seem stable.
Still not enabled by default, #define USE_ROCKBOX_USB is still required to enable it.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16360 a1c6a512-1295-4272-9138-f99709370657
2008-02-20 22:54:26 +00:00
Dave Chapman
fe4ffbd94c Optimise (replace two loops with one) and bug-fix the ProductId string returned by SCSI Inquiry - the previous code was skipping 4 shorts (the first 8 chars) of the ProductId.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16285 a1c6a512-1295-4272-9138-f99709370657
2008-02-11 18:08:21 +00:00
Björn Stenberg
8545c3bdcf Removed compiler warning
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16280 a1c6a512-1295-4272-9138-f99709370657
2008-02-11 14:38:43 +00:00
Björn Stenberg
2f7cffa204 Major USB fixes by Frank Gevaerts. Still disabled in builds, #define USE_ROCKBOX_USB to test.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16279 a1c6a512-1295-4272-9138-f99709370657
2008-02-11 14:26:25 +00:00
Christian Gmeiner
94be71eab5 Add a working serial driver to usb stack. At the moment it simply echos back what it gets. You can test it on linux by
0) change relevant defines in usb_core.c
1) modprobe usbserial vendor=0x0781 product=0x7421 debug=1
2) picocom /dev/ttyUSB0
3) look at your logf screen if you build with logf support and enabled LOGF_ENABLE define in usb_serial.c
I also modified usb_core so that storage and serial both can make use the the 'usb_core'-thread. More will come :)


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15850 a1c6a512-1295-4272-9138-f99709370657
2007-11-30 00:13:00 +00:00
Björn Stenberg
da245a9ae9 Added support for 'deconfiguration'.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15799 a1c6a512-1295-4272-9138-f99709370657
2007-11-24 23:43:06 +00:00
Björn Stenberg
d2b86885d5 Fixed memory corruption bug for those testing usb_storage.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15798 a1c6a512-1295-4272-9138-f99709370657
2007-11-24 22:40:37 +00:00
Björn Stenberg
bfff12aff9 Added GET_CONFIGURATION. Added usb state tracking. Changed charger pktsize to 512. Fixed compile errors for usb_storage.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15797 a1c6a512-1295-4272-9138-f99709370657
2007-11-24 22:37:41 +00:00
Björn Stenberg
20dbc1b21f Re-added USB charger detection and auto reboot on host connect.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15774 a1c6a512-1295-4272-9138-f99709370657
2007-11-23 15:02:26 +00:00
Björn Stenberg
482e839ea9 Enable usbstack on ipods.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15772 a1c6a512-1295-4272-9138-f99709370657
2007-11-23 09:58:47 +00:00
Björn Stenberg
b4e5123e5d New USB stack
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15758 a1c6a512-1295-4272-9138-f99709370657
2007-11-22 20:51:00 +00:00
Christian Gmeiner
0f5d9f9125 first part of usbstack patches -> show and use selection of usb stack mode only, if
a target supports both modes.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14916 a1c6a512-1295-4272-9138-f99709370657
2007-09-30 12:25:06 +00:00
Peter D'Hoye
a576657011 Get/Set Interface - just stores the value, makes one more compliance test pass
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14794 a1c6a512-1295-4272-9138-f99709370657
2007-09-20 23:31:57 +00:00
Peter D'Hoye
e4363c116c usb stack code police, fix some warnings and set svn keywords correctly
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14761 a1c6a512-1295-4272-9138-f99709370657
2007-09-19 23:20:55 +00:00
Peter D'Hoye
b0c996ba92 code police, no functional changes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14737 a1c6a512-1295-4272-9138-f99709370657
2007-09-17 20:49:02 +00:00
Christian Gmeiner
db4753e924 usb stack: add support for standard request get string
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14626 a1c6a512-1295-4272-9138-f99709370657
2007-09-06 07:17:54 +00:00
Christian Gmeiner
649734f5fc remove some debug..
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14543 a1c6a512-1295-4272-9138-f99709370657
2007-08-30 19:55:36 +00:00
Christian Gmeiner
c7b3f8be9b add missing get configuration request handling
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14530 a1c6a512-1295-4272-9138-f99709370657
2007-08-29 22:04:09 +00:00
Christian Gmeiner
e3bef6728f make USB Command Verifier happy
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14526 a1c6a512-1295-4272-9138-f99709370657
2007-08-29 19:13:07 +00:00
Christian Gmeiner
57c2a5fa5a add support to switch device driver at runtime
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14508 a1c6a512-1295-4272-9138-f99709370657
2007-08-29 11:55:23 +00:00
Christian Gmeiner
17f2dd5c13 endpoint address was only set in fs descriptor, but we need it in hs too. Update storage device descriptor dynamic based on dcd
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14507 a1c6a512-1295-4272-9138-f99709370657
2007-08-29 10:14:47 +00:00
Christian Gmeiner
7d4c7f9f28 we use only 2 endpoints
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14502 a1c6a512-1295-4272-9138-f99709370657
2007-08-29 09:17:15 +00:00
Peter D'Hoye
52a60df47e code police part two (/me blames his editor)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14500 a1c6a512-1295-4272-9138-f99709370657
2007-08-29 00:47:04 +00:00
Peter D'Hoye
924e906c27 Remove two more warnings when building the usb stack
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14497 a1c6a512-1295-4272-9138-f99709370657
2007-08-28 23:49:03 +00:00
Christian Gmeiner
4474d6827c binding a device driver could fail.. handle this case
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14493 a1c6a512-1295-4272-9138-f99709370657
2007-08-28 20:50:41 +00:00
Christian Gmeiner
195ef597f5 Add support for full and highspeed in stack and drivers.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14492 a1c6a512-1295-4272-9138-f99709370657
2007-08-28 20:29:28 +00:00
Dave Chapman
b016131c00 Set svn:keywords
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14485 a1c6a512-1295-4272-9138-f99709370657
2007-08-27 22:12:35 +00:00