Commit graph

218 commits

Author SHA1 Message Date
Amaury Pouly
761e7987c8 usb: finally get rid of USE_ROCKBOX_USB in Sansa bootloader, use bootloader usb
For some reason, the bootloader and config files didn't define
HAVE_BOOTLOADER_USB_MODE, also remove the special cases in usb.c which they
implied.

Change-Id: I68c29be7d03627e64cac4ff7678e0c211e087a8c
2015-01-08 22:30:22 +01:00
Amaury Pouly
3aebdfa642 usb: make usb_release_exclusive_storage private
Change-Id: I0383760b7d8e67cc99bbe4e4979bca92ef436c8d
Reviewed-on: http://gerrit.rockbox.org/1098
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2015-01-08 16:45:41 +01:00
Amaury Pouly
dc127f213c Clarify usb_powered() and fix some code.
Either by mistake or because its meaning changed, usb_powered() doesn't mean
what the name suggest, so clarify its meaning by renaming it to usb_powered_only.
So use of usb_powered() are replaced by usb_inserted() when it makes more sense.

Change-Id: I112887e2d8560e84587bee5f55c826dde8c806d8
Reviewed-on: http://gerrit.rockbox.org/1097
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2015-01-08 16:45:32 +01:00
Amaury Pouly
66690ca987 Get rid of USE_ROCKBOX_USB
Except for unfinished or experimental ports, it isthe case that
USE_ROCKBOX_USB and HAVE_USBSTACK are both defined or both undefined.
Furthermore, it is a leftover of some early developments on the USB stack and
doesn't make sense anymore.

Change-Id: Ic87a865b6bb4c7c9a8d45d1f0bb0f2fb536b8cad
Reviewed-on: http://gerrit.rockbox.org/1091
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2015-01-08 16:07:12 +01:00
Michael Sevakis
7738660eff USB: Detect charging-only mode upon cable insert, not host detect.
Letting go of the button before the host is detected allows storage mode
to be entered even though a button was down when plugging. Sometimes the
host would try several times and the button would have to be held down
for several seconds to avoid a storage connection.

The adjustment wasn't made when switching to setup request host
detection.

Change-Id: Iab3bced5bfb1478d4d9a7baab2a2a1144afaf437
2013-05-22 02:28:31 -04:00
Bertrik Sikken
575d00e3b7 Remove redundant assigment of variable to itself
Change-Id: Ibecd8c869280a55a0716e631f44ab556f7dbd8b5
2013-03-24 16:24:40 +01:00
Amaury Pouly
775ab07d5e usb: add support for hardware handled SET ADDR/CONFIG
Some USB controllers like the one of the Rockchip 27xx handle some
requests in pure hardware. This is especially a problem for two
of them:
- SET ADDR which is used by our core to track the DEFAULT/ADDRESS
  state and is required for the drivers to work properly
- SET CONFIG which is used by our core to initialise the drivers
  by calling init_connection()
In these cases we need a way to notify the core that such requests
happened.
We do this by exporting two functions which directly notify the
core about these requests and perform the necessary init steps
required without doing the actual USB transfers. Special care is
needed because these functions could be called from an interrupt
handler. For this reason we still use the usb_queue and introduce
new IDs so that they are processed in order and safely.

No functional change is intended, both in the usbstack and on
targets without such quirks.

Change-Id: Ie42feffd4584e88bf37cff018b627f333dca1140
2012-12-07 13:37:26 +01:00
Jens Arnold
449167b7a9 Undo f695681 (r30433). USB hardware must be initialized first.
This fixes flash/ MMC access on the Ondios when booting from ROM.
Add a comment what to pay attention for in the target specific
usb_init_device().
2012-05-20 10:56:40 +02:00
Amaury Pouly
279e90e654 usb: fix another typo
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31601 a1c6a512-1295-4272-9138-f99709370657
2012-01-07 18:09:23 +00:00
Amaury Pouly
eb3e1756cf usb: fix typo in DEBUGF
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31600 a1c6a512-1295-4272-9138-f99709370657
2012-01-07 18:08:28 +00:00
Frank Gevaerts
57f8ae847c Move some variable declarations to inside #ifdef USB_FULL_INIT, to avoid warnings for bootloaders that don't have the full USB state machine
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31583 a1c6a512-1295-4272-9138-f99709370657
2012-01-04 22:07:09 +00:00
Frank Gevaerts
4fcffcbdf3 Reorganise USB initialisation to not depend on a specific enumeration sequence, by Bartosz Fabianowski, with minor tweaks by Michael Sevakis (FS#12497)
FreeBSD apparently sends a SET_ADDRESS first, which confused our code.
This patch fixes that, and also simplifies the connection handling a bit.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31582 a1c6a512-1295-4272-9138-f99709370657
2012-01-04 21:55:09 +00:00
Rafaël Carré
c003d6c332 fix r31502: USBOTG_AS3525v2 doesn't exist anymore
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31504 a1c6a512-1295-4272-9138-f99709370657
2011-12-31 20:20:54 +00:00
Rafaël Carré
568c441fd8 usb-target.h: remove
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31498 a1c6a512-1295-4272-9138-f99709370657
2011-12-31 18:44:55 +00:00
Michael Sevakis
47bade1437 Simplify and neaten-up usb.c a bit. USB_INSERTED and USB_EXTRACTED are always used as events to indicate cable state. USB_HOSTED is posted to indicated that a host was detected.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31263 a1c6a512-1295-4272-9138-f99709370657
2011-12-15 00:14:36 +00:00
Michael Sevakis
bfd69f2aa1 Fix the real issue with AMS bootloader USB mode. A call to usb_enable was missing in usb.c when using the USB stack and USB_DETECT_BY_CORE was not enabled. Try to do it in a clean-ish way.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31245 a1c6a512-1295-4272-9138-f99709370657
2011-12-14 09:19:50 +00:00
Rafaël Carré
8a7482dd89 Fix typo in comment
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31034 a1c6a512-1295-4272-9138-f99709370657
2011-11-20 17:57:24 +00:00
Thomas Martitz
1645c148e3 Simulate usb plugging on the sim better using sim_tasks.
Now all threads need to ack the connection like on real target, dircache is unloaded and playback stops accordingly.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31009 a1c6a512-1295-4272-9138-f99709370657
2011-11-17 18:40:00 +00:00
Amaury Pouly
320c3c2ca9 usb: add forgotten break in usb switch, this could lead to unwanted code being execute like USB_QUIT to be sent on hotswap !
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30843 a1c6a512-1295-4272-9138-f99709370657
2011-10-27 10:35:45 +00:00
Amaury Pouly
9d9de73693 usb: only declare usb_mmc_countdown on target which don't use the usb stack
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30733 a1c6a512-1295-4272-9138-f99709370657
2011-10-08 13:00:04 +00:00
Michael Sevakis
c222f38c03 Remove obsolete USB_DETECT_BY_DRV define throughout.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30549 a1c6a512-1295-4272-9138-f99709370657
2011-09-14 16:42:43 +00:00
Amaury Pouly
f695681d50 usb: make sure device init happens *after* queue/thread creation
Albeit unlikely, usb_init_devide() could cause de transfer completion before queue creation and the core would push onto a uninitialized queue !

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30433 a1c6a512-1295-4272-9138-f99709370657
2011-09-05 11:37:12 +00:00
Frank Gevaerts
bf34cdfacb Add a 100ms delay before calling disk_mount_all(). Some players (especially some gigabeat Fs) seem to need a delay after disabling USB if we want disk access to work.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30316 a1c6a512-1295-4272-9138-f99709370657
2011-08-15 14:36:23 +00:00
Michael Giacomelli
e8c79d65e1 The gigabeat S needs special casing so that you can still hold vol down to access its firmware partition. Additionally, the same logic should apply to firewire on the iPods.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29890 a1c6a512-1295-4272-9138-f99709370657
2011-05-16 21:10:31 +00:00
Michael Giacomelli
84b4c46d74 Enter USB charging mode on devices that support it if any key is held down during USB insert (except on Archos where certain keys need to be avoided and players like the iRiver H1x0 which do not charge over USB and the iAudios/AMSv2 which do not yet support USB fully). Update the manual to explain the new behavior.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29889 a1c6a512-1295-4272-9138-f99709370657
2011-05-16 20:27:14 +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 Sparmann
1b5e31ed43 iPod Classic CE-ATA Support (Part 2 of 4: Remove on-stack sector buffers, and replace them with a single statically allocated sector buffer that's arbitrated amongst users)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29445 a1c6a512-1295-4272-9138-f99709370657
2011-02-27 22:44:54 +00:00
Michael Sevakis
b15aa47c56 All kernel objects in code shared amongs targets (core, plugins, codecs) should be declared SHAREDBSS_ATTR as any core could potentially touch them even though they seem only to involve threads on one core. The exception is target code for particular CPUs where proper allocation is fixed. playlist.c was a little odd too-- use one mutex for the current playlist and a separate one for created playlists (still pondering the necessity of more than one).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29305 a1c6a512-1295-4272-9138-f99709370657
2011-02-14 11:27:45 +00:00
Michael Sevakis
088aaac985 USB: Thread must remember that a host has been detected since the POWERED state is ambiguous when waiting for host. Storage access is not yet actually exclusive if not USB_INSERTED. usb_start_monitoring seems better posting USB_UNPOWERED only if USB_EXTRACTED, interpreting POWERED/INSERTED as POWERED.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29153 a1c6a512-1295-4272-9138-f99709370657
2011-01-29 00:22:42 +00:00
Michael Sevakis
b4fa66d7c7 Big oops. Should be broadcasting SYS_USB_DISCONNECTED _after_ remouting disks.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29150 a1c6a512-1295-4272-9138-f99709370657
2011-01-28 04:01:34 +00:00
Michael Sevakis
a3591827ad Fix colors from r29084. Had some things in the wrong preprocessor blocks.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29085 a1c6a512-1295-4272-9138-f99709370657
2011-01-18 14:35:56 +00:00
Michael Sevakis
453550a687 Try to get some control over #ifdef hell in usb.c by refactoring and inline function use. SYS_USB_DISCONNECTED_ACK hasn't been doing anything useful for the USB thread; remove it. USB thread simply ignores that value. Observe only valid usb_state transitions.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29084 a1c6a512-1295-4272-9138-f99709370657
2011-01-18 14:10:06 +00:00
Michael Sevakis
0ecb0fe6b1 One change in r29068 wasn't right. Clarify comments on why it's the way it is. :)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29070 a1c6a512-1295-4272-9138-f99709370657
2011-01-17 13:12:22 +00:00
Michael Sevakis
05f6f3419a Add a higher level USB detection that prevents fraudulent bus resets from causing USB mode to be entered. Enable for SA9200 only at this time. Also, for SA9200, use the bus power GPIO rather than the 'connector inserted' GPIO to detect the cable.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29068 a1c6a512-1295-4272-9138-f99709370657
2011-01-17 12:24:41 +00:00
Michael Sevakis
3a1127785b Bootloader USB mode for PP502x. Enable only on GoGear SA9200 for the time being. Add HAVE_BOOTLOADER_USB_MODE to config if BOOTLOADER is defined to enable it. Clean up some kernel stuff a little to support it. Mess up a bunch of other stuff (hopefully not too badly).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29053 a1c6a512-1295-4272-9138-f99709370657
2011-01-15 08:19:30 +00:00
Frank Gevaerts
1db3dfdd75 Accept FS#11774 by Michael Hohmuth (with some own modifications to #ifdef conditions)
Unmount all filesystems before connecting USB. This ensures that all filehandles are closed, which avoids possible filesystem corruption



git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28693 a1c6a512-1295-4272-9138-f99709370657
2010-11-28 15:22:51 +00:00
Michael Sparmann
77129ad3ec Really fix yellow: Rename BMP_LINESIZE and BMP_BPP to get rid of the macro name collision
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28359 a1c6a512-1295-4272-9138-f99709370657
2010-10-25 12:52:02 +00:00
Michael Sparmann
01cdb6a21f Fix screendump on iPod Nano 2G by increasing the usb thread stack size and reducing the stack usage of FAT and storage functions
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28356 a1c6a512-1295-4272-9138-f99709370657
2010-10-25 12:36:57 +00:00
Rafaël Carré
34fc7465ac AMSv2: fix bootloader build with USB enabled
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28342 a1c6a512-1295-4272-9138-f99709370657
2010-10-24 11:58:00 +00:00
Rafaël Carré
b812465bff as3525: bootloader USB mode
not working yet : an empty drive is detected
won't link on fuzev1: drivers allocated in usb_storage.c are too large

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26905 a1c6a512-1295-4272-9138-f99709370657
2010-06-18 01:47:39 +00:00
Jens Arnold
860451927b Put an #ifdef in the technically correct place. No functional change.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26599 a1c6a512-1295-4272-9138-f99709370657
2010-06-05 22:04:14 +00:00
Torne Wuff
2eb0142587 New USB charging system, part 2 - "Force" charging mode
Enable support for the "force" mode of USB charging. This should work on Gigabeat S and Nano2g (and any other future target which has a RB usb stack and supports charging) - if a host connection is not detected within 10 seconds of USB insertion, assume that the connected device is an AC charger and charge anyway, if the user has specified "force" as the mode.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26594 a1c6a512-1295-4272-9138-f99709370657
2010-06-05 20:43:30 +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
Tomer Shalev
92737a3877 Revert disabling of USB HID while in charging mode (introduced by r23322), in
order to prevent having no interface at all when USB HID is disabled and the
DAP is connected in charge-only mode (thanks for gevaerts for noticing).


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23323 a1c6a512-1295-4272-9138-f99709370657
2009-10-23 13:52:21 +00:00
Tomer Shalev
83d24f89df FS#10704 - Make a configuration option to disable USB HID
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23322 a1c6a512-1295-4272-9138-f99709370657
2009-10-23 13:29:19 +00:00
Michael Sparmann
218314eb51 Fix red
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23286 a1c6a512-1295-4272-9138-f99709370657
2009-10-20 07:21:08 +00:00
Michael Sparmann
d03fe64dcf iPod Nano 2G USB support based on the S3C6400X datasheet. Disabled by default for now.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23285 a1c6a512-1295-4272-9138-f99709370657
2009-10-20 06:37:07 +00:00
Michael Sparmann
efeda72626 Fixed a confusing typo
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23150 a1c6a512-1295-4272-9138-f99709370657
2009-10-13 10:07:13 +00:00
Karl Kurbjun
4a483bb1bf M:Robe 500: Mostly complete USB driver, supports BULK mode currently and gets about 2 MB/s writes vs 1.1 MB/s on the OF. Mostly tested against Linux, preliminary testing in Windows appears to work. There is currently a bug in the attach process where it only works once per boot that needs to be fixed. There are a few other minor M:Robe 500 changes as well.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21208 a1c6a512-1295-4272-9138-f99709370657
2009-06-08 00:19:16 +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