364 Commits

Author SHA1 Message Date
Jared Boone
6c0d803647 Cleaned up management of SGPIO and transceiver mode state vs. USB configuration state. This should help with power management. It may also be necessary when operating at low speed (48MHz), to keep the SGPIO interrupts from chewing up ALL available CPU cycles. 2013-09-04 16:27:43 -07:00
Jared Boone
1f5b979fd9 Added usb_set_configuration_changed_cb() call that bgamari fixed in his as-yet-unmerged USB branch. 2013-09-04 16:24:19 -07:00
Jared Boone
189d245868 Merge remote-tracking branch 'TitanMKD/master' into titanmkd_overclock_fix
Conflicts:
	firmware/hackrf_usb/hackrf_usb.c
2013-09-04 12:41:03 -07:00
TitanMKD
24ed48d93a Fix for "issues/62 fix PLL1 overclock bug" see hackrf_core.c -> cpu_clock_init()
Fix for "issues/78 startup current too high" see hackrf_core.c -> New functions cpu_clock_pll1_low_speed()/cpu_clock_pll1_max_speed() & hackrf_usb.c to switch low_speed/max_speed.
2013-08-28 22:01:57 +02:00
Ben Gamari
3642fe9bc6 usb_queue: Kill dead declaration 2013-07-10 10:12:59 -04:00
Ben Gamari
f6b41dbda5 fix2 2013-07-07 23:21:18 -04:00
Ben Gamari
b738cd5294 fix1 2013-07-07 23:21:11 -04:00
Ben Gamari
bb69f655b1 usb_queue: Use while instead of for 2013-07-07 21:58:06 -04:00
Ben Gamari
f50253eaa3 usb_queue: Use ldrex/strex to avoid disabling interrupts 2013-07-07 21:54:25 -04:00
Ben Gamari
e23cc9bd6c usb_queue: Disable interrupts when allocating transfer 2013-07-07 21:25:31 -04:00
Ben Gamari
cce17c42fd libopencm3: Update 2013-07-07 21:24:13 -04:00
Ben Gamari
d30d7309d9 usb_queue: Mark queues as volatile 2013-07-07 17:50:54 -04:00
Ben Gamari
36cf222ef4 usb_queue: Add some interrupt disabling around critical sections 2013-07-07 17:50:53 -04:00
Ben Gamari
14526cd1c2 hackrf_usb: Be more careful in transceiver_mode check 2013-07-07 17:50:53 -04:00
Ben Gamari
9f2dca3e4e usb_standard_request: Always call configuration_changed_cb
For reasons I don't entirely understand, bulk requests are suddenly
ignored after a SET_CONFIGURATION request (even if the configuration did
not change) unless the endpoints are reinitialized. This is done by
configuration_changed_cb, therefore we call it for every request.
2013-07-07 17:50:53 -04:00
Ben Gamari
f12defebc6 usb: Ensure endpoint queue is flushed on disable/init 2013-07-07 17:50:53 -04:00
Ben Gamari
8fdc22f8c8 usb-queue: Add flush utility 2013-07-07 17:50:53 -04:00
Ben Gamari
969647dbef usb_queue: Update queue before calling completion callback 2013-07-07 17:50:53 -04:00
Ben Gamari
5a70772295 usb_queue: Enable transfer chaining
Unfortunately this seems to be slightly broken. While hackrf_transfer
streams fine, things fall apart when disabling streaming. Not sure why
yet.
2013-07-07 17:50:53 -04:00
Ben Gamari
3e3a57e3ce hackrf_usb: Don't attempt to schedule transfers when OFF
The endpoints are disabled so no good will come of this
2013-07-07 17:50:53 -04:00
Ben Gamari
abb0b3f928 hackrf_usb: Forgotten initialization 2013-07-07 17:50:53 -04:00
Ben Gamari
dd81921650 usb_queue: Reduce transfer_pool size 2013-07-07 17:50:53 -04:00
Ben Gamari
df97b6584b hackrf_usb: Port to usb_queue 2013-07-07 17:50:53 -04:00
Ben Gamari
b6f9a3699a usb_queue: Kill assert reference 2013-07-07 17:50:53 -04:00
Ben Gamari
63ce57b306 usb_queue: Clarify comment 2013-07-07 17:50:53 -04:00
Ben Gamari
f1fc4a6d73 usb_queue: Account for completion of multiple transfers 2013-07-07 17:50:53 -04:00
Ben Gamari
13589b8695 usb_queue: Ensure fields get set 2013-07-07 17:50:53 -04:00
Ben Gamari
28fcb2a961 usb_queue: Merge fill_in_transfer into schedule 2013-07-07 17:50:53 -04:00
Ben Gamari
1d9119fd8a usb: Ensure TERMINATE bit gets set 2013-07-07 17:50:53 -04:00
Ben Gamari
2ad4cbe087 usb_queue: Fix calculation of transferred 2013-07-07 17:50:53 -04:00
Ben Gamari
f3a36d06fd usb_queue: Add new transfer after finding tail 2013-07-07 17:50:53 -04:00
Ben Gamari
f36943df62 usb: Whitespace cleanup 2013-07-07 17:50:53 -04:00
Ben Gamari
eef6a0f056 usb_queue: Assert that transaction succeeded 2013-07-07 17:50:53 -04:00
Ben Gamari
0d1ea07151 usb: Check is_priming before loop 2013-07-07 17:50:53 -04:00
Ben Gamari
a88b2ad349 usb_queue: Transfer needs to be added to queue in both paths 2013-07-07 17:50:53 -04:00
Ben Gamari
af34a7a041 usb: Use usb_endpoint_is_priming helper 2013-07-07 17:50:53 -04:00
Ben Gamari
96f8621ad9 hackrf_usb: Port things away from schedule_wait 2013-07-07 17:50:07 -04:00
Ben Gamari
ecd9b2e731 usb_queue: Kill usb_transfer_schedule_wait 2013-07-07 17:50:07 -04:00
Ben Gamari
ccfdd8350d usb_request: Ensure control endpoint transfers get freed 2013-07-07 17:50:07 -04:00
Ben Gamari
ee46cf1fc4 usb_queue: Cleanup 2013-07-07 17:50:07 -04:00
Ben Gamari
ac29621a36 usb_queue: Use typedef 2013-07-07 17:50:07 -04:00
Ben Gamari
dfdfad2bf0 hackrf_usb: Port to usb_queue 2013-07-07 17:50:07 -04:00
Ben Gamari
c62798d31f usb_queue: Kill old declaration 2013-07-07 17:50:07 -04:00
Ben Gamari
bd4e39d379 usb_queue: Add completion_cb arguments 2013-07-07 17:50:06 -04:00
Ben Gamari
f015fd7640 usb: Things enumerate 2013-07-07 17:50:06 -04:00
Ben Gamari
6142c828df usb: Refactor queue management 2013-07-07 17:50:06 -04:00
Ben Gamari
e6bf90af23 usb: Shuffle endpoint_schedule into endpoint_schedule_wait 2013-07-07 17:50:06 -04:00
Ben Gamari
42b7391918 usb: Begin shuffling transfer management to usb_queue 2013-07-07 17:48:54 -04:00
Ben Gamari
6b05089700 usb: Add usb_endpoint_append_td
This implements the procedure for adding a TD to the end of an active
queue described in UM10503 Section 23.10.11.3.
2013-07-07 17:48:54 -04:00
Ben Gamari
1bbe375746 A few more changes due to the libopencm3 merge 2013-07-07 17:48:54 -04:00