diff --git a/CMSIS/DSP/Include/arm_math.h b/CMSIS/DSP/Include/arm_math.h
index 24872cf..0cd2ee7 100644
--- a/CMSIS/DSP/Include/arm_math.h
+++ b/CMSIS/DSP/Include/arm_math.h
@@ -4626,7 +4626,7 @@
    */
   void arm_biquad_cas_df1_32x64_q31(
   const arm_biquad_cas_df1_32x64_ins_q31 * S,
-        q31_t * pSrc,
+  const q31_t * pSrc,
         q31_t * pDst,
         uint32_t blockSize);
 
@@ -4673,7 +4673,7 @@
   {
           uint8_t numStages;         /**< number of 2nd order stages in the filter.  Overall order is 2*numStages. */
           float64_t *pState;         /**< points to the array of state coefficients.  The array is of length 2*numStages. */
-          float64_t *pCoeffs;        /**< points to the array of coefficients.  The array is of length 5*numStages. */
+    const float64_t *pCoeffs;        /**< points to the array of coefficients.  The array is of length 5*numStages. */
   } arm_biquad_cascade_df2T_instance_f64;
 
 
@@ -4714,7 +4714,7 @@
    */
   void arm_biquad_cascade_df2T_f64(
   const arm_biquad_cascade_df2T_instance_f64 * S,
-        float64_t * pSrc,
+  const float64_t * pSrc,
         float64_t * pDst,
         uint32_t blockSize);
 
@@ -4763,7 +4763,7 @@
   void arm_biquad_cascade_df2T_init_f64(
         arm_biquad_cascade_df2T_instance_f64 * S,
         uint8_t numStages,
-        float64_t * pCoeffs,
+        const float64_t * pCoeffs,
         float64_t * pState);
 
 
diff --git a/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_q31.c b/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_q31.c
index 8838787..2b70c2a 100644
--- a/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_q31.c
+++ b/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_q31.c
@@ -177,7 +177,7 @@
 #include "arm_helium_utils.h"
 void arm_biquad_cas_df1_32x64_q31(
   const arm_biquad_cas_df1_32x64_ins_q31 * S,
-        q31_t * pSrc,
+  const q31_t * pSrc,
         q31_t * pDst,
         uint32_t blockSize)
 {
@@ -409,11 +409,11 @@
 #else
 void arm_biquad_cas_df1_32x64_q31(
   const arm_biquad_cas_df1_32x64_ins_q31 * S,
-        q31_t * pSrc,
+  const q31_t * pSrc,
         q31_t * pDst,
         uint32_t blockSize)
 {
-        q31_t *pIn = pSrc;                             /* input pointer initialization */
+  const q31_t *pIn = pSrc;                             /* input pointer initialization */
         q31_t *pOut = pDst;                            /* output pointer initialization */
         q63_t *pState = S->pState;                     /* state pointer initialization */
   const q31_t *pCoeffs = S->pCoeffs;                   /* coeff pointer initialization */
diff --git a/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df2T_f64.c b/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df2T_f64.c
index a8af8ce..f86158b 100644
--- a/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df2T_f64.c
+++ b/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df2T_f64.c
@@ -136,15 +136,15 @@
 LOW_OPTIMIZATION_ENTER
 void arm_biquad_cascade_df2T_f64(
   const arm_biquad_cascade_df2T_instance_f64 * S,
-        float64_t * pSrc,
+  const float64_t * pSrc,
         float64_t * pDst,
         uint32_t blockSize)
 {
 
-        float64_t *pIn = pSrc;                         /* Source pointer */
+        const float64_t *pIn = pSrc;                   /* Source pointer */
         float64_t *pOut = pDst;                        /* Destination pointer */
         float64_t *pState = S->pState;                 /* State pointer */
-        float64_t *pCoeffs = S->pCoeffs;               /* Coefficient pointer */
+        const float64_t *pCoeffs = S->pCoeffs;               /* Coefficient pointer */
         float64_t acc1;                                /* Accumulator */
         float64_t b0, b1, b2, a1, a2;                  /* Filter coefficients */
         float64_t Xn1;                                 /* Temporary input */
diff --git a/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df2T_init_f64.c b/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df2T_init_f64.c
index fe6901e..2ab272f 100644
--- a/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df2T_init_f64.c
+++ b/CMSIS/DSP/Source/FilteringFunctions/arm_biquad_cascade_df2T_init_f64.c
@@ -65,7 +65,7 @@
 void arm_biquad_cascade_df2T_init_f64(
         arm_biquad_cascade_df2T_instance_f64 * S,
         uint8_t numStages,
-        float64_t * pCoeffs,
+        const float64_t * pCoeffs,
         float64_t * pState)
 {
   /* Assign filter stages */
diff --git a/CMSIS/DSP/Testing/Source/Tests/FIRQ15.cpp b/CMSIS/DSP/Testing/Source/Tests/FIRQ15.cpp
index 052f219..bdc47f5 100644
--- a/CMSIS/DSP/Testing/Source/Tests/FIRQ15.cpp
+++ b/CMSIS/DSP/Testing/Source/Tests/FIRQ15.cpp
@@ -120,10 +120,10 @@
        ref.reload(FIRQ15::FIRREFS_Q15_ID,mgr);
 
        output.create(ref.nbSamples(),FIRQ15::OUT_Q15_ID,mgr);
-       /* Max blockSize + numTaps - 1 as generated by Python script 
+       /* Max blockSize + numTaps as generated by Python script 
           numTaps may be increased by 1 by Python script to force it to even values
           */
-       state.create(36,FIRQ15::OUT_Q15_ID,mgr);
+       state.create(41,FIRQ15::OUT_Q15_ID,mgr);
     }
 
     void FIRQ15::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
diff --git a/CMSIS/DSP/Testing/Source/Tests/FIRQ31.cpp b/CMSIS/DSP/Testing/Source/Tests/FIRQ31.cpp
index c3d4a40..0d3148d 100644
--- a/CMSIS/DSP/Testing/Source/Tests/FIRQ31.cpp
+++ b/CMSIS/DSP/Testing/Source/Tests/FIRQ31.cpp
@@ -118,7 +118,7 @@
 
        output.create(ref.nbSamples(),FIRQ31::OUT_Q31_ID,mgr);
        /* Max blockSize + numTaps - 1 as generated by Python script */
-       state.create(35,FIRQ31::OUT_Q31_ID,mgr);
+       state.create(47,FIRQ31::OUT_Q31_ID,mgr);
     }
 
     void FIRQ31::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
diff --git a/CMSIS/DSP/Testing/Source/Tests/FIRQ7.cpp b/CMSIS/DSP/Testing/Source/Tests/FIRQ7.cpp
index 329d37c..2f80262 100644
--- a/CMSIS/DSP/Testing/Source/Tests/FIRQ7.cpp
+++ b/CMSIS/DSP/Testing/Source/Tests/FIRQ7.cpp
@@ -118,7 +118,7 @@
 
        output.create(ref.nbSamples(),FIRQ7::OUT_Q7_ID,mgr);
        /* Max blockSize + numTaps - 1 as generated by Python script */
-       state.create(35,FIRQ7::OUT_Q7_ID,mgr);
+       state.create(47,FIRQ7::OUT_Q7_ID,mgr);
     }
 
     void FIRQ7::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
