diff --git a/apps/codecs/libfaad/common.h b/apps/codecs/libfaad/common.h index 109dfe67cb..9179a6e21c 100644 --- a/apps/codecs/libfaad/common.h +++ b/apps/codecs/libfaad/common.h @@ -56,18 +56,28 @@ extern struct codec_api* ci; #define IBSS_ATTR_FAAD_LARGE_IRAM IBSS_ATTR #define ICODE_ATTR_FAAD_LARGE_IRAM #define ICONST_ATTR_FAAD_LARGE_IRAM ICONST_ATTR +#define IBSS_ATTR_FAAD_XLARGE_IRAM -#elif (CONFIG_CPU == PP5022) || (CONFIG_CPU == PP5024) || defined(CPU_S5L870X) +#elif (CONFIG_CPU == PP5022) || (CONFIG_CPU == PP5024) /* Enough IRAM to move additional data and code to it. */ #define IBSS_ATTR_FAAD_LARGE_IRAM IBSS_ATTR #define ICODE_ATTR_FAAD_LARGE_IRAM ICODE_ATTR #define ICONST_ATTR_FAAD_LARGE_IRAM ICONST_ATTR +#define IBSS_ATTR_FAAD_XLARGE_IRAM + +#elif defined(CPU_S5L870X) +/* Very large IRAM. Move even more data to it. */ +#define IBSS_ATTR_FAAD_LARGE_IRAM IBSS_ATTR +#define ICODE_ATTR_FAAD_LARGE_IRAM ICODE_ATTR +#define ICONST_ATTR_FAAD_LARGE_IRAM ICONST_ATTR +#define IBSS_ATTR_FAAD_XLARGE_IRAM IBSS_ATTR #else /* Not enough IRAM available. */ #define IBSS_ATTR_FAAD_LARGE_IRAM #define ICODE_ATTR_FAAD_LARGE_IRAM #define ICONST_ATTR_FAAD_LARGE_IRAM +#define IBSS_ATTR_FAAD_XLARGE_IRAM #endif #define INLINE __inline diff --git a/apps/codecs/libfaad/sbr_dec.c b/apps/codecs/libfaad/sbr_dec.c index 4d9f9c4c45..6fe884639a 100644 --- a/apps/codecs/libfaad/sbr_dec.c +++ b/apps/codecs/libfaad/sbr_dec.c @@ -43,8 +43,8 @@ /* globals */ -static qmf_t X_left [MAX_NTSRHFG][64] MEM_ALIGN_ATTR;// = {{0}}; -static qmf_t X_right[MAX_NTSRHFG][64] MEM_ALIGN_ATTR;// = {{0}}; /* must set this to 0 */ +static qmf_t X_left [MAX_NTSRHFG][64] IBSS_ATTR_FAAD_XLARGE_IRAM MEM_ALIGN_ATTR; +static qmf_t X_right[MAX_NTSRHFG][64] IBSS_ATTR_FAAD_XLARGE_IRAM MEM_ALIGN_ATTR; /* static function declarations */