Commit graph

72 commits

Author SHA1 Message Date
Rafaël Carré
12a45549f6 usb-drv-as3525v2: move interrupt disable
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31486 a1c6a512-1295-4272-9138-f99709370657
2011-12-31 18:43:32 +00:00
Michael Sparmann
98b38c439e usb-srv-as3525v2: backport r31458
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31459 a1c6a512-1295-4272-9138-f99709370657
2011-12-28 21:37:04 +00:00
Rafaël Carré
b0e7869f00 usb-drv-as3525v2: use all endpoints
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31399 a1c6a512-1295-4272-9138-f99709370657
2011-12-22 04:20:05 +00:00
Rafaël Carré
74516e06e7 usb-drv-as3525v2: revert part of r31243
assigning a partially initialized structure (through casting) will
initialize members unspecified in the initialization

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31372 a1c6a512-1295-4272-9138-f99709370657
2011-12-19 23:10:41 +00:00
Michael Sevakis
6a67707b5e Commit to certain names for cache coherency APIs and discard the aliases.
Wouldn't surprise me a bit to get some non-green.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31339 a1c6a512-1295-4272-9138-f99709370657
2011-12-17 07:27:24 +00:00
Rafaël Carré
d985d65907 usb-drv-as3525v2: make it look more like usb-s3c6400
use 0, 1, 3 as input endpoints instead of 0, 3, 5 (0, 1, 3, 5 doesn't work)
use a helper to know the number of endpoints (could be hardcoded since we have 3 input and 3 outputs)
    previous check was not correct (sizeof(if?a:b))

change endpoint reset/request
set packet size at enumdone interrupt
we don't have isochronous or interrupt endpoints, remove that table
reverse usb_drv_transfer direction argument (in -> out)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31251 a1c6a512-1295-4272-9138-f99709370657
2011-12-14 17:12:52 +00:00
Rafaël Carré
7af94b4427 usb-drv-as3525v2: cosmetics
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31244 a1c6a512-1295-4272-9138-f99709370657
2011-12-14 06:34:03 +00:00
Rafaël Carré
e062c7a6c3 usb-drv-as3525v2: simplify usb_reset isr
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31243 a1c6a512-1295-4272-9138-f99709370657
2011-12-14 06:30:36 +00:00
Rafaël Carré
a60463e636 usb-drv-as3525v2.c: simplify
don't interrupt on unhandled events

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31232 a1c6a512-1295-4272-9138-f99709370657
2011-12-13 20:38:57 +00:00
Rafaël Carré
9e8590ad23 usb-drv-as3525v2.c: simplify a lot
code, especially init sequence, is much more similar to usb-s3c6400x.c

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31231 a1c6a512-1295-4272-9138-f99709370657
2011-12-13 19:53:19 +00:00
Rafaël Carré
8afdad69c7 fix red
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31230 a1c6a512-1295-4272-9138-f99709370657
2011-12-13 08:16:46 +00:00
Rafaël Carré
e4bee2b109 usb-s3c6400 : simplify
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31229 a1c6a512-1295-4272-9138-f99709370657
2011-12-13 08:12:19 +00:00
Rafaël Carré
1afe28072a usb-drv-as3525v2: use correct input endpoint list size
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31228 a1c6a512-1295-4272-9138-f99709370657
2011-12-13 07:11:54 +00:00
Rafaël Carré
ff0ba04ff6 fix previous commit
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31227 a1c6a512-1295-4272-9138-f99709370657
2011-12-13 06:32:48 +00:00
Rafaël Carré
5c81130b48 usb-drv-as3525v2: don't include ep0 twice in the IN ep list
simplify

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31225 a1c6a512-1295-4272-9138-f99709370657
2011-12-13 06:29:56 +00:00
Rafaël Carré
89fa72f13f usb-s3c6400: merge DIEP* and DOEP* in a macro with an extra parameter
minor cosmetics / simplification

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31224 a1c6a512-1295-4272-9138-f99709370657
2011-12-13 06:17:57 +00:00
Rafaël Carré
9c31062f05 usb-drv-as3525v2.c: cosmetics
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31221 a1c6a512-1295-4272-9138-f99709370657
2011-12-13 05:13:10 +00:00
Rafaël Carré
bc943a06ba Move usb-s3c6400 register comments to usb-s3c6400.h
Use common defines in usb-s3c6400.c and usb-drv-as3525v2.c

No functional changes

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31220 a1c6a512-1295-4272-9138-f99709370657
2011-12-13 04:21:06 +00:00
Bertrik Sikken
99ea0c5051 Sansa AMSv2 USB: Simplify union around struct usb_ctrlrequest and remove duplicate alignment attribute
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31065 a1c6a512-1295-4272-9138-f99709370657
2011-11-27 00:22:12 +00:00
Bertrik Sikken
ebde2ea308 Sansa AMSv2: potential USB fix from FS#11664 by funman:
* make sure that the buffer for struct usb_ctrlrequest can fit a full 64-byte packet
* align struct usb_ctrlrequest to a cacheline (32-byte alignment)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31063 a1c6a512-1295-4272-9138-f99709370657
2011-11-26 23:55:49 +00:00
Rafaël Carré
befabb2bab AMSv2 USB: Write usb_delay() in assembly
Ensure no changes when we use different versions of gcc (USB used to panic with gcc 4.6.0)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29818 a1c6a512-1295-4272-9138-f99709370657
2011-05-03 17:17:23 +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
a2e4a51825 AMSv2 USB: Remove usb_enable call that occurs after core is already initialized and the usb_disable call while in ISR. Also, no point in panicing over a disconnect.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29205 a1c6a512-1295-4272-9138-f99709370657
2011-02-04 05:46:55 +00:00
Michael Sevakis
a575ffb271 AMSv2 USB: Delay after sftdiscon should be far longer.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29154 a1c6a512-1295-4272-9138-f99709370657
2011-01-29 00:25:42 +00:00
Michael Sevakis
ac7fe5fb82 AS3525v2 USB: Set disconnect before stopping module clock. Seems to cure reconnect weirdness for me and is probably the proper method anyway since otherwise the module will still be running when the clock is cut (bad).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29149 a1c6a512-1295-4272-9138-f99709370657
2011-01-28 02:30:03 +00:00
Amaury Pouly
3a1bc3cfdd as3525v2-usb: fix logf format, don't mask the interrupt using the VIC as it seems to trigger spurious irq
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29146 a1c6a512-1295-4272-9138-f99709370657
2011-01-27 12:15:46 +00:00
Amaury Pouly
9b02ce9e49 as3525v2-usb: mask usb interrupt when setting up a transfer
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29130 a1c6a512-1295-4272-9138-f99709370657
2011-01-24 15:34:14 +00:00
Amaury Pouly
297ca4b1af as3525v2-usb: only call wakeup_signal when a thread is actually waiting
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29129 a1c6a512-1295-4272-9138-f99709370657
2011-01-24 15:03:56 +00:00
Amaury Pouly
6ebec89ac6 as3525v2-usb! fix suspicious calculation of next endpoint in INs chaining code
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28281 a1c6a512-1295-4272-9138-f99709370657
2010-10-14 19:15:22 +00:00
Rafaël Carré
5028eaa025 AMS USBv2: use OF settings for undocumented register
still failing

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28061 a1c6a512-1295-4272-9138-f99709370657
2010-09-12 15:32:46 +00:00
Rafaël Carré
ca0e95ad08 USB AMSv2: use tables for usb_drv_port_speed() and usb_drv_mps_by_type()
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28044 a1c6a512-1295-4272-9138-f99709370657
2010-09-08 06:13:07 +00:00
Rafaël Carré
f1adafc05a USB AMSv2: split handle_ep_int()
IN & OUT interrupts have not much in common so move each to its own
function

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28043 a1c6a512-1295-4272-9138-f99709370657
2010-09-08 05:43:05 +00:00
Rafaël Carré
5aa5de5dc8 USB AMSv2: smaller struct usb_endpoint
- reorder members (largest members first)
- int status -> int8_t status (we only use 0 or -1)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28042 a1c6a512-1295-4272-9138-f99709370657
2010-09-08 05:16:40 +00:00
Rafaël Carré
8e0ff81d6f USB AMSv2: only read endpoint interrupt status register once
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28041 a1c6a512-1295-4272-9138-f99709370657
2010-09-08 05:04:48 +00:00
Rafaël Carré
1752dfda1b usb-drv-as3525v2.c: cosmetics (remove trailing spaces)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28040 a1c6a512-1295-4272-9138-f99709370657
2010-09-08 04:37:41 +00:00
Rafaël Carré
29276bed19 USB AMSv2: Reduce the size of (in/out)_ep_list
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28039 a1c6a512-1295-4272-9138-f99709370657
2010-09-08 04:27:01 +00:00
Rafaël Carré
24cd51a2fe USB AMSv2: simplify FOR_EACH* macros
- use a single table to store endpoints numbers (1 table by direction)
- drop __ prefix since the table isn't meant to be hidden (it is used in
  reset_endpoints()
- the tables won't change at runtime: mark const

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28038 a1c6a512-1295-4272-9138-f99709370657
2010-09-08 04:20:37 +00:00
Rafaël Carré
e526681c63 USB AMSv2: use status == -1 to signal errors
set status to failure before signaling usb_drv_send_nonblocking() in
reset_endpoints()

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28037 a1c6a512-1295-4272-9138-f99709370657
2010-09-08 03:31:18 +00:00
Rafaël Carré
8c4f83ec00 USB AMSv2: cosmetics
Use ep0_setup_pkt as a pointer
Fix comment for CGU_USB clk source
Remove comment about physical address, the macro handles that for us

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28035 a1c6a512-1295-4272-9138-f99709370657
2010-09-08 01:59:41 +00:00
Rafaël Carré
dbea731503 USB AMSv2: update endpoint->len on transfer
cosmetics: x ? true : false -> x

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28034 a1c6a512-1295-4272-9138-f99709370657
2010-09-08 01:50:36 +00:00
Rafaël Carré
be24beefa7 usb-drv-as3525v2: use dump_dcache_range()
Since we'll receive data from DMA in this buffer we don't need to write-back

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28032 a1c6a512-1295-4272-9138-f99709370657
2010-09-08 01:03:05 +00:00
Rafaël Carré
b72237a403 usb-drv-as3525v2: fixes
- don't use *_dcache_range() on uncached memory
- remove unused struct endpoint->buffer
- use correct *_dcache_range() in usb_drv_transfer() for each direction
- halve FIFO size

sometimes mounts / sometimes fails

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28031 a1c6a512-1295-4272-9138-f99709370657
2010-09-08 00:29:22 +00:00
Amaury Pouly
03d391d57a as3525v2-usb: don't disable data transfers !
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28030 a1c6a512-1295-4272-9138-f99709370657
2010-09-07 21:01:16 +00:00
Amaury Pouly
f140930714 as3525v2-usb: fix red and fix stupid typo about endpoint status
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28029 a1c6a512-1295-4272-9138-f99709370657
2010-09-07 20:50:23 +00:00
Amaury Pouly
f20d11c718 as3525v2-usb: all control operations are working, there is a problem with UMS: the IN transfer to respond to inquiry does not start, resulting in not lun being detected
- implement request_endpoint
- setup nextep chain for in endpoints
- remove useless dcache operation on IN transfer completion
- fix transfers to use correct max packet size

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28028 a1c6a512-1295-4272-9138-f99709370657
2010-09-07 20:44:26 +00:00
Amaury Pouly
025112fc7b as3525v2-usb:
- use uncached address to access setup packet
- implement driver exit
- stop forcing full speed
- change fifo sizes on init
- don't call invalid_dache() on setup packet because it makes everything fail

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28027 a1c6a512-1295-4272-9138-f99709370657
2010-09-07 18:41:12 +00:00
Amaury Pouly
f3da8d0ee3 as3525v2: revert the USB_DEVBSS_ATTR and the panicf redefinition, don't protected #undef of USB_NUM_ENDPOINTS
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27987 a1c6a512-1295-4272-9138-f99709370657
2010-09-02 13:46:34 +00:00
Amaury Pouly
e09a0857e8 as3525v2:
- change buffer alignement to 32 bytes (not sure if it's useful)
- flush rx fifo on reset
- use AS3525_PHYSICAL_ADDR for DMA
- reset endpoints structure states on reset
- force full speed for debugging purpose
- add more debugging code

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27986 a1c6a512-1295-4272-9138-f99709370657
2010-09-02 13:00:16 +00:00
Bertrik Sikken
57933f2bc6 Make some global function/variables local (by making them static)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27631 a1c6a512-1295-4272-9138-f99709370657
2010-07-30 23:47:49 +00:00
Rafaël Carré
7d9cc0e2ce CCU_BASE+0x20 is specific to AMSv2 -> move to as3525v2.h
Rename to simply 'CCU_USB'

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27518 a1c6a512-1295-4272-9138-f99709370657
2010-07-22 13:07:56 +00:00