Due to the heisenberg principle, we don't want to check the battery
level when the ATA drive is "spun up".
Unfortunately some ATA devices *cough most SD adapters cough* don't
support mandatory ATA power management commands like flushing caches and
(safely) shutting down so we have to leave them "spinning".
This leads to us never updating our battery status with these
out-of-spec devices. Work around this issue by having is_active() always
return false if that's what we have.
Change-Id: I629f3fdbc7e5cffb0a4d546c80cb5fca8529c0e6
bootloader passes the player version to rockbox for LCD init changes
Credit ZappBranigan2972 on forums for original changes
Credit Bilgus for devicedata additions
Change-Id: Ia2ca493edef49b7457e84dc19b05397dc915fa5a
Set number of FSR edges required for DPLL/ASRC lock
Set DPLL bandwidth larger
Both should help prevent dropouts, especially with
sample rates >=96khz
Credit to ZappBranigan2972 on the forums
Change-Id: I55a90d44ac7fcec5894377e32cdadad66bb05610
* Create new 'sector_t' type alias:
* uint64_t for all targets with HAVE_LBA48 or HAVE_SDUC
* unsigned long for the everything else
* Alter all storage APIs to use sector_t instead of 'unsigned long'
* Alter Volume/Partition/storage info structures to use sector_t
* Disk cache converted to sector_t
* ATA Core:
* convert to using sector_t for sector addresses and drive sizes
* Always fill out upper 16 bits of LBA48 addresses
* IDENTIFY INFO is fixed at 512 bytes, not SECTOR_SIZE
* USB mass storage:
* convert to using sector_t for sector addesses and drive sizes
* Implement READ_16/WRITE_16 for LBA48 addresses
* Convert FAT code to use sector_t for all sector references
* output_dyn_value() now accepts int64_t instead of 'int'
* Corrected "rockbox info" to work for (MULTIVOLUME & !MULTIDRIVE)
* Better reporting of disk and (logical+physical) sector sizes in debug info
* Detect SDUC cards and report on storage debug_info screen
To-do: SDUC
* Refactor SD core to remove duplicate code in every driver
* Card probe and init state machine
* Implement core SDUC support
* SD2.0 needs to be 2.0+ (fixed for jz47xx and x1000)
* Host and Card ID (ACMD41)
* 32-bit addressing for all read/write/erase operations (CMD22)
* ADD SDUC to target device drivers, defining HAVE_SDUC as appropriate
Change-Id: Ib0138781a0081664d11511037685503df1b93608
Making line-out default output should allow detection to work
correctly. Headphone detection should work whether or not
headphone is currently the active output due to the
low impedance (relatively) of the headphones. Line-Out sinks
will likely be high impedance, so we need the output
as a pull-down for detection.
Debounce detection to prevent false triggers due to voltage swings
during playback.
Change-Id: If5e497d900330f64d0f49a135e953ee6b0499668
The SSD detection heuristic is flawed, and when it fails
(due to very crappy CF->SD adapters) we end up corrupting things.
So let's give up a slight amount of performance on the original hard
drives (which are aging out anyway) in favor of guaranteeing safety.
Change-Id: Id92583a6b9ae6ec543b91b3e0f8f28b57ac38cb0
* xDuoo X3 fix some warnings due to an incorrect #ifdef
* stub storage_removeable() and storage_present() for non-HOTSWAP builds
* sim_trigger_external() is gated by HOTSWAP, not MULTIDRIVE
Change-Id: I38f14fdfeba13957899c378051d49afc2e8245e5
Notably:
* double-paste in ihifi760 config.h
* jz4740 ATA & SD drivers used MULTIVOLUME instead of MULTIDRIVE
* Simulators implicitly rely on HAVE_HOTSWAP
Change-Id: I44fc7f98f0f6df366f016567c330f87e9f3ca6a6
* Query variable info _before_ mmaping the framebuffer
* Sanity-check the resolution/bitdepth, and if it doens't match
try to set it to what we want.
This is functionally a no-op.
Change-Id: I087ff81775d8f63bf7846b7fef19f6fc36c1cc84
* Distinct error codes for all failures
* Corrected some comments and error messages
The ypr0/r1 target should be switched over to the generic lcd-linuxfb
driver, but that will come later.
Change-Id: Idc3867a96db7e431847473708712f88dd2725a96
technically this isn't currently causing any issue but
coverity correctly identified the potential for buffer ovfl
Change-Id: I4af462c9860c44f22d05b5b2b4c685364823d395
mode only goes 0-4 the original commit mixed up the index and mode
bad stuff must happen but its been here for 16 years
Change-Id: I7e69f4e2574029a6bc3cea76e8803d2d0357d9e2
Annoyingly, this makes all of the '.S' files we compile get treated as
divided syntax, so we need to make the syntax in them explicit.
Change-Id: I56a3916b7b24c84a1214a5d6bc4ed4d651f002cf
This reverts commit 0c737d3b2e.
Reason for revert: Not really a concern as open_stream returns an independent buffer since g#566
Change-Id: Idbd2f4a7cc2ea6362b7714629469eeb7b3d19b3b
Additionally, synchronize with the standard ATA driver's feature table
* Acoustic management set to quietest
* Set power mode to lowest w/o standby
Change-Id: I12e64354d4c946228e9a55fc8da2114127d08d28
...by checking to see if the mandatory ATA PM feature flag is set
The common CF->SD adapters don't report this.
TODO: When PM is not available, issue a CMD_FLUSH[_EXT] instead?
Change-Id: If9200bd3c03a984376203aeea4fbe11e230a9b4d
It is likely that these things accept data far faster than the spinning
rust drives ever would, and while there is a question about PIO timings,
DMA timings seem to be solid.
Change-Id: I70644e0ad85a6ed429c8704e66ca7af91d78765c
leading slashes in directory components to path_append
makes a path with a leading slash absolute and discards
the basepath
Change-Id: I65253080c0ca4278b559894104ab25ab199a3100
Max allowed size: 120860
Old thumb build: 128494
New thumb build: 118514 (fits!)
Disabled:
Logo;
alpha blending capabilities for bitmaps;
Arm stack unwinder (backtrace);
Related forum discussion: https://forums.rockbox.org/index.php/topic,54768.0.html
Fixes FS#12380
Change-Id: I978720d795cb0ef5169103e467cf8386c21d8e93
sprintf, strcpy, memccpy can all just go thru path_append
with the added benefit of some path sanitizing too
Change-Id: I33510b56a364b8b3a0b06f2ff14b76491f6e3870
Instead of verifying the CRC before every access of the boot data,
verify the CRC once at startup and set a flag to indicate the boot
data is valid.
Also add a framework to support multiple boot protocol versions.
Firmware declares the maximum supported protocol version using a
version byte in the boot data header. The bootloader chooses the
highest version supported by it and the firmware when deciding
what boot protocol to use.
Change-Id: I810194625dc0833f026d2a23b8d64ed467fa6aca
When the sd card is mounted into the root namespace the database
picks up files through both paths
previously we hid the mounted drive but this causes issues with users
databases when the drive letter changes
Adds a way to keep track of volumes mounted in the root namespace
Hides the enumerated volume in root
Database:
we can just parse the root directory ('/') and get to any mounted
volume but we can also enumerate a volume in the root directory
when this occurs it leads to multiple entries since the files can
be reached through multiple paths ex, /Foo could also be /SD1/Foo
Instead we will attempt to rewrite the root with any non-hidden volumes
failing that just leave the paths alone
Change-Id: I7bdba8cfaf63902d2a3852d28484bcf8ca317ebd
Add HW volume control via ES9018K2M, and reorganize
eros_qn_codec.c/.h, audiohw-erosqnative.c.
This automatically detects the presence of the new DAC and
uses its hardware volume scaling. If not present, use same
SWVOL we have been using so far.
Add debug menu readout of SWVOL/I2C result.
Break out es9018k2m stuff into its own file so that
maybe it can be useful to other ports.
Note that we may need to get smarter about detecting the DAC
type if/when another model emerges.
Change-Id: I586a1cf7f150dd6b4e221157859825952840af56
This is basically identical to the GD5F1GQ4xExx series, except for
the addition of double-data-rate transfer modes (which are useless
for us). These devices may be found in some Surfans F20s.
Change-Id: I2c04c86bd88f2e27d813de7fe01712ce365ba077