All non-simulator and non-hostfs targets are required to implement storage_get_info() since 04dc052a
Change-Id: I87febd12e101797d9cbbffc0e2e46efc2dace9da
Define HAVE_LC_OPEN_FROM_MEM if the target implements
lc_open_from_mem(). Make HAVE_CODEC_BUFFERING depend
on this feature.
Change-Id: If5f70db58963dcdc33848b860c028841ac380ab2
Move HAVE_CODEC_BUFFERING to config.h, and disable all
related code on targets that don't support the feature,
ie. hosted targets that can't implement lc_open_from_mem().
Change-Id: I0d2a43900cd05b1a80c3cee519f8ad7b26e39fe7
Add CONFIG_BINFMT to select the binary format used for
plugins/codecs and define two options for the existing
implementations (native ".rock" format or dlopen-based).
Split the load_code.h header into two separate headers
to make it look less messy.
Change-Id: Ibd66773160df35a8c6f29a617d12c961bdabf317
Enable pullups on SDMMC CMD/DATx lines and set output
speed to medium. Using HIGH and VERYHIGH speeds seems
to cause data corruption, with frequent CRC failures.
Change-Id: I732d19e03a2a857453755b68b6749497eafaef70
sdmmc_host is a portable driver for targets with SD/MMC
storage. It handles all the logic needed to initialize
and access SD/MMC devices which is common to all targets.
Targets only need to implement functions to issue SD/MMC
commands, manage clocks & power, and managing the insert
state of the card (if it is hotswappable). This vastly
reduces the work needed to get a new SD/MMC based target
up & running.
At present it's only written for and tested with SD cards,
as I don't have access to an MMC-based target to test on.
Change-Id: I6a0d7747113c11a3697ae20cbb551bef8bfd1292
- existing class drivers are placed to config 1
- drivers_connected==true is replaced with usb_config!=0
- supports config transition between nonzero configs
- STALL if request set_config was invalid
Change-Id: Ia775ae2dcb7d0cc08d2f3ee5ca41683837b04259
this commit has following changes:
- introduce `usb_drv_ep_spec` table to udc drivers, which represents
endpoint characteristics.
- introduce 'ep_allocs' table to class drivers, which represents what
endpoint type does the class driver want.
- implement endpoint matching logic to usb core.
this is a required step to implement usb config switching, because we
need to create config descriptors without actually initializing endpoints.
Change-Id: I11c324cd35189ab636744488f6259d0cdb2179f0
Use the optimized version based on __buitlin_ctz() which GCC
will compile to two instructions (rbit, ctz) on Cortex-M4/M7;
faster and smaller than the handcoded assembly version.
Change-Id: I33f69ff829b048f1e53fc7ead1bd6ac3c5bd7a4c
Given the myriad of clocking options the STM32H7 family
provides, it is easiest to let targets simply implement
what they need.
Change-Id: I9cceed40a2d638998e8b583651f73557d2ffbd46
Supporting large transfers (>64k) isn't really needed;
the main use case right now is interfacing with an LCD
controller.
Change-Id: I901e5ddb1b4efa9aa650b3e5074537ba785c6d41
Add an optional sequence in the startup code to disable clock
gating when the CPU goes to sleep. Normally the D1 and D3 domain
clocks can be automatically gated when the CPU is asleep, and
because the debug infrastructure is clocked from these domains,
the debugger cannot attach when those clocks are stopped.
Setting some bits in DBGMCU_CR prevents this problem, but will
increase power consumption, hence it isn't enabled by default.
Change-Id: Iba87750371a493adf72655aab86a908ef2702cef
This commit does the following changes:
- Replace buffered io implementation with a simpler, lighter, slightly faster version.
- Turn off both screens when backlight goes off.
- Small change to enable plugins in the folling commit (s).
Change-Id: I45df30be037c3a1686bd85c16c87bcd248db456f
The ZEN V target is the only one which has volume buttons,
but lacks the menu and shortcut buttons.
IMO an independant keymap will make maintenance easier.
Change-Id: Ide79fab629b13eae94946561d99052e570c0e4f2
The layout of 'struct regs' is a bit different on Cortex-M
and start_thread() wasn't updated to match; it was loading
'sp' from the wrong offset.
Change-Id: I57dbef26809821d411dc86e2066a2f53e78a3f2d
According to wps code audio_pre_ff_rewind function should be called
before any rewinding. It stops playback and automatically resumes it
after audio_ff_rewind call
So, let's add audio_pre_ff_rewind to plugin's API
Lua scipts were tested:
```lua
-- has issue with rewinding
rb.audio("ff_rewind", 0)
```
```lua
-- no issue with rewinding
rb.audio("pre_ff_rewind")
rb.audio("ff_rewind", 0)
```
Change-Id: I2ad6b9c396760b2086bc0a28633a1c80c3512739
Original author Melissa Autumn (https://codeberg.org/oopsallnaps/rockbox-hibyos) with contributions from Marc Aarts.
Adaptation to Rockbox standards by Marc Aarts
Change-Id: I09e5af7ba0a75c648e4b9fd424badc2d3665c943
Broke the sim, just above it has..
struct queue_sender_list
{
/* If non-NULL, there is a thread waiting for the corresponding event */
/* Must be statically allocated to put in non-cached ram. */
struct thread_entry *senders[QUEUE_LENGTH]; /* message->thread map */
struct __wait_queue list; /* list of senders in map */
/* Send info for last message dequeued or NULL if replied or not sent */
struct thread_entry * volatile curr_sender;
struct blocker blocker;
};
Change-Id: Ifc7a5fe92ebe5f06c0dc5655ce9725752e606381
sector_t is still 32-bit on most targets, resulting in compile
warnings on debug builds when used with an %llu/%llx format.
Fix by always casting the sector to uint64_t.
Change-Id: I5afc4a0ae170981c304274806e00ac07be232cd8
This tries to access 'struct event_queue->send', but that
is only available if HAVE_EXTENDED_MESSAGING_AND_NAME is set.
This is not defined for bootloaders; this is a problem when
trying to build a bootloader with debugging enabled, because
the misdefined macro is used in some KERNEL_ASSERTs that get
compiled out on non-debug builds.
Change-Id: I334eedcda1ee7047c8dddcb7fa0c9717156f2a0a
Fixes voice not working after booting but before starting music playback
while line-out is plugged in. Doesn't seem to break anything on hw1 or
hw4.
Change-Id: I7b830adeeceae621177c94353e4814aa6ad0e1ec
Turns out I compile-tested stale trees instead of the broken change
Net result is just the simpler MIPS revision (32/64/"classic") lookup rather than
the sub-revision (eg mips32r2 etc).
Change-Id: Ideebe522d29132f00f3769222f3846000b3a89fd