view src/cs/drivers/drv_app/ffs/board/effs.c @ 660:293c7db5f10f

bmi3: fixed the mysterious "mute on first call" bug When UI-enabled fw boots on a previously blank (no /mmi/* files) FFS for the first time, the output_volume member of the persistent UI settings structure was left uninitialized, corresponding to the earpiece volume being set to mute, which is an invalid setting. Because of other quirks in the far-from-finished UI code, this volume setting takes effect only when the first call is answered, producing the odd behaviour seen at the user level. The current fix is to set the blank-FFS default for output_volume to volume level 4, which is the same -6 dB Iota volume as the ACI default.
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 14 May 2020 02:50:41 +0000
parents 945cf7f506b2
children
line wrap: on
line source

/* This file is autogenerated --- do not edit. */

#include "ffs/ffs.h"

char *ffs_strerror(effs_t error)
{
    switch (error) {
    case EFFS_OK: return "ok"; /* 0 */
    case EFFS_NODEVICE: return "flash device unknown"; /* -1 */
    case EFFS_CORRUPTED: return "filesystem corrupted!?"; /* -2 */
    case EFFS_NOPREFORMAT: return "ffs not preformatted"; /* -3 */
    case EFFS_NOFORMAT: return "ffs not formatted"; /* -4 */
    case EFFS_BADFORMAT: return "incompatible ffs version, re-format needed"; /* -5 */
    case EFFS_MAGIC: return "bad magic"; /* -6 */
    case EFFS_AGAIN: return "not ready, try again later"; /* -7 */
    case EFFS_NOSYS: return "function not implemented"; /* -8 */
    case EFFS_DRIVER: return "ffs device driver error"; /* -9 */
    case EFFS_NOSPACE: return "out of data space"; /* -10 */
    case EFFS_FSFULL: return "file system full, no free inodes"; /* -11 */
    case EFFS_BADNAME: return "bad filename"; /* -12 */
    case EFFS_NOTFOUND: return "object not found"; /* -13 */
    case EFFS_EXISTS: return "object exists"; /* -14 */
    case EFFS_ACCESS: return "access permission violation"; /* -15 */
    case EFFS_NAMETOOLONG: return "filename too long"; /* -16 */
    case EFFS_INVALID: return "invalid argument"; /* -17 */
    case EFFS_DIRNOTEMPTY: return "directory not empty"; /* -18 */
    case EFFS_NOTADIR: return "object is not a directory"; /* -19 */
    case EFFS_SPARE: return "SPARE"; /* -20 */
    case EFFS_FILETOOBIG: return "file too big"; /* -21 */
    case EFFS_NOTAFILE: return "object is not a file"; /* -22 */
    case EFFS_PATHTOODEEP: return "path too deep"; /* -23 */
    case EFFS_NUMFD: return "Max number of open files reached"; /* -24 */
    case EFFS_BADFD: return "Bad file descriptor"; /* -25 */
    case EFFS_BADOP: return "Bad operation"; /* -26 */
    case EFFS_LOCKED: return "The file is locked"; /* -27 */
    case EFFS_TOOBIG: return "too big (tmffs buffer overflow)"; /* -30 */
    case EFFS_MEMORY: return "out of memory"; /* -31 */
    case EFFS_MSGSEND: return "message send failed"; /* -32 */
    case EFFS_SIBLINGLOOP: return "directory sibling loop"; /* -40 */
    case EFFS_NOBLOCKS: return "No more blocks!?"; /* -41 */
    case EFFS_DBR: return "Data reclaim did not finish!?"; /* -42 */
    default: return "unknown ffs error code!";
    }
}