diff --git a/av1/common/av1_rtcd_defs.pl b/av1/common/av1_rtcd_defs.pl
index 3993fa1..e38f897 100755
--- a/av1/common/av1_rtcd_defs.pl
+++ b/av1/common/av1_rtcd_defs.pl
@@ -314,7 +314,7 @@
 # Deringing Functions
 
 add_proto qw/int cdef_find_dir/, "const uint16_t *img, int stride, int32_t *var, int coeff_shift";
-add_proto qw/void cdef_filter_block/, "uint8_t *dst8, uint16_t *dst16, int dstride, const uint16_t *in, int pri_strength, int sec_strength, int dir, int pri_damping, int sec_damping, int bsize, int max, int coeff_shift";
+add_proto qw/void cdef_filter_block/, "uint8_t *dst8, uint16_t *dst16, int dstride, const uint16_t *in, int pri_strength, int sec_strength, int dir, int pri_damping, int sec_damping, int bsize, int coeff_shift";
 
 add_proto qw/void copy_rect8_8bit_to_16bit/, "uint16_t *dst, int dstride, const uint8_t *src, int sstride, int v, int h";
 add_proto qw/void copy_rect8_16bit_to_16bit/, "uint16_t *dst, int dstride, const uint16_t *src, int sstride, int v, int h";
diff --git a/av1/common/cdef_block.c b/av1/common/cdef_block.c
index df1de89..845df37 100644
--- a/av1/common/cdef_block.c
+++ b/av1/common/cdef_block.c
@@ -114,7 +114,7 @@
 void cdef_filter_block_c(uint8_t *dst8, uint16_t *dst16, int dstride,
                          const uint16_t *in, int pri_strength, int sec_strength,
                          int dir, int pri_damping, int sec_damping, int bsize,
-                         AOM_UNUSED int max_unused, int coeff_shift) {
+                         int coeff_shift) {
   int i, j, k;
   const int s = CDEF_BSTRIDE;
   const int *pri_taps = cdef_pri_taps[(pri_strength >> coeff_shift) & 1];
@@ -237,12 +237,11 @@
     by = dlist[bi].by;
     bx = dlist[bi].bx;
     if (dst8)
-      cdef_filter_block(&dst8[(by << bsizey) * dstride + (bx << bsizex)], NULL,
-                        dstride,
-                        &in[(by * CDEF_BSTRIDE << bsizey) + (bx << bsizex)],
-                        (pli ? t : adjust_strength(t, var[by][bx])), s,
-                        t ? dir[by][bx] : 0, pri_damping, sec_damping, bsize,
-                        (256 << coeff_shift) - 1, coeff_shift);
+      cdef_filter_block(
+          &dst8[(by << bsizey) * dstride + (bx << bsizex)], NULL, dstride,
+          &in[(by * CDEF_BSTRIDE << bsizey) + (bx << bsizex)],
+          (pli ? t : adjust_strength(t, var[by][bx])), s, t ? dir[by][bx] : 0,
+          pri_damping, sec_damping, bsize, coeff_shift);
     else
       cdef_filter_block(
           NULL,
@@ -251,7 +250,6 @@
           dirinit ? 1 << bsizex : dstride,
           &in[(by * CDEF_BSTRIDE << bsizey) + (bx << bsizex)],
           (pli ? t : adjust_strength(t, var[by][bx])), s, t ? dir[by][bx] : 0,
-          pri_damping, sec_damping, bsize, (256 << coeff_shift) - 1,
-          coeff_shift);
+          pri_damping, sec_damping, bsize, coeff_shift);
   }
 }
diff --git a/av1/common/cdef_block.h b/av1/common/cdef_block.h
index 6b4452c..0e921e0 100644
--- a/av1/common/cdef_block.h
+++ b/av1/common/cdef_block.h
@@ -45,7 +45,7 @@
                                        int dstride, const uint16_t *in,
                                        int pri_strength, int sec_strength,
                                        int dir, int pri_damping,
-                                       int sec_damping, int bsize, int max,
+                                       int sec_damping, int bsize,
                                        int coeff_shift);
 void copy_cdef_16bit_to_16bit(uint16_t *dst, int dstride, uint16_t *src,
                               cdef_list *dlist, int cdef_count, int bsize);
diff --git a/av1/common/cdef_block_simd.h b/av1/common/cdef_block_simd.h
index 14587a0..a3368ec 100644
--- a/av1/common/cdef_block_simd.h
+++ b/av1/common/cdef_block_simd.h
@@ -226,7 +226,6 @@
                                         const uint16_t *in, int pri_strength,
                                         int sec_strength, int dir,
                                         int pri_damping, int sec_damping,
-                                        AOM_UNUSED int max_unused,
                                         int coeff_shift) {
   v128 p0, p1, p2, p3;
   v256 sum, row, tap, res;
@@ -393,7 +392,6 @@
                                         const uint16_t *in, int pri_strength,
                                         int sec_strength, int dir,
                                         int pri_damping, int sec_damping,
-                                        AOM_UNUSED int max_unused,
                                         int coeff_shift) {
   int i;
   v128 p0, p1, p2, p3;
@@ -541,7 +539,6 @@
                                          const uint16_t *in, int pri_strength,
                                          int sec_strength, int dir,
                                          int pri_damping, int sec_damping,
-                                         AOM_UNUSED int max_unused,
                                          int coeff_shift) {
   int i;
   v256 p0, p1, p2, p3, sum, row, res;
@@ -699,7 +696,6 @@
                                          const uint16_t *in, int pri_strength,
                                          int sec_strength, int dir,
                                          int pri_damping, int sec_damping,
-                                         AOM_UNUSED int max_unused,
                                          int coeff_shift) {
   int i;
   v256 sum, p0, p1, p2, p3, row, res;
@@ -833,56 +829,55 @@
 void SIMD_FUNC(cdef_filter_block)(uint8_t *dst8, uint16_t *dst16, int dstride,
                                   const uint16_t *in, int pri_strength,
                                   int sec_strength, int dir, int pri_damping,
-                                  int sec_damping, int bsize, int max,
-                                  int coeff_shift) {
+                                  int sec_damping, int bsize, int coeff_shift) {
   if (dst8) {
     if (bsize == BLOCK_8X8) {
       SIMD_FUNC(cdef_filter_block_8x8_8)
       (dst8, dstride, in, pri_strength, sec_strength, dir, pri_damping,
-       sec_damping, max, coeff_shift);
+       sec_damping, coeff_shift);
     } else if (bsize == BLOCK_4X8) {
       SIMD_FUNC(cdef_filter_block_4x4_8)
       (dst8, dstride, in, pri_strength, sec_strength, dir, pri_damping,
-       sec_damping, max, coeff_shift);
+       sec_damping, coeff_shift);
       SIMD_FUNC(cdef_filter_block_4x4_8)
       (dst8 + 4 * dstride, dstride, in + 4 * CDEF_BSTRIDE, pri_strength,
-       sec_strength, dir, pri_damping, sec_damping, max, coeff_shift);
+       sec_strength, dir, pri_damping, sec_damping, coeff_shift);
     } else if (bsize == BLOCK_8X4) {
       SIMD_FUNC(cdef_filter_block_4x4_8)
       (dst8, dstride, in, pri_strength, sec_strength, dir, pri_damping,
-       sec_damping, max, coeff_shift);
+       sec_damping, coeff_shift);
       SIMD_FUNC(cdef_filter_block_4x4_8)
       (dst8 + 4, dstride, in + 4, pri_strength, sec_strength, dir, pri_damping,
-       sec_damping, max, coeff_shift);
+       sec_damping, coeff_shift);
     } else {
       SIMD_FUNC(cdef_filter_block_4x4_8)
       (dst8, dstride, in, pri_strength, sec_strength, dir, pri_damping,
-       sec_damping, max, coeff_shift);
+       sec_damping, coeff_shift);
     }
   } else {
     if (bsize == BLOCK_8X8) {
       SIMD_FUNC(cdef_filter_block_8x8_16)
       (dst16, dstride, in, pri_strength, sec_strength, dir, pri_damping,
-       sec_damping, max, coeff_shift);
+       sec_damping, coeff_shift);
     } else if (bsize == BLOCK_4X8) {
       SIMD_FUNC(cdef_filter_block_4x4_16)
       (dst16, dstride, in, pri_strength, sec_strength, dir, pri_damping,
-       sec_damping, max, coeff_shift);
+       sec_damping, coeff_shift);
       SIMD_FUNC(cdef_filter_block_4x4_16)
       (dst16 + 4 * dstride, dstride, in + 4 * CDEF_BSTRIDE, pri_strength,
-       sec_strength, dir, pri_damping, sec_damping, max, coeff_shift);
+       sec_strength, dir, pri_damping, sec_damping, coeff_shift);
     } else if (bsize == BLOCK_8X4) {
       SIMD_FUNC(cdef_filter_block_4x4_16)
       (dst16, dstride, in, pri_strength, sec_strength, dir, pri_damping,
-       sec_damping, max, coeff_shift);
+       sec_damping, coeff_shift);
       SIMD_FUNC(cdef_filter_block_4x4_16)
       (dst16 + 4, dstride, in + 4, pri_strength, sec_strength, dir, pri_damping,
-       sec_damping, max, coeff_shift);
+       sec_damping, coeff_shift);
     } else {
       assert(bsize == BLOCK_4X4);
       SIMD_FUNC(cdef_filter_block_4x4_16)
       (dst16, dstride, in, pri_strength, sec_strength, dir, pri_damping,
-       sec_damping, max, coeff_shift);
+       sec_damping, coeff_shift);
     }
   }
 }
diff --git a/test/cdef_test.cc b/test/cdef_test.cc
index becc072..8201818 100644
--- a/test/cdef_test.cc
+++ b/test/cdef_test.cc
@@ -116,7 +116,7 @@
                   ref_cdef(depth == 8 ? (uint8_t *)ref_d : 0, ref_d, size,
                            s + CDEF_HBORDER + CDEF_VBORDER * CDEF_BSTRIDE,
                            pristrength, secstrength, dir, pridamping,
-                           secdamping, bsize, (1 << depth) - 1, depth - 8);
+                           secdamping, bsize, depth - 8);
                   // If cdef and ref_cdef are the same, we're just testing
                   // speed
                   if (cdef != ref_cdef)
@@ -124,7 +124,7 @@
                         cdef(depth == 8 ? (uint8_t *)d : 0, d, size,
                              s + CDEF_HBORDER + CDEF_VBORDER * CDEF_BSTRIDE,
                              pristrength, secstrength, dir, pridamping,
-                             secdamping, bsize, (1 << depth) - 1, depth - 8));
+                             secdamping, bsize, depth - 8));
                   if (ref_cdef != cdef) {
                     for (pos = 0; pos < max_pos && !error; pos++) {
                       error = ref_d[pos] != d[pos];
