diff --git a/av1/common/x86/convolve_2d_avx2.c b/av1/common/x86/convolve_2d_avx2.c
index d23645c..e3ba0f1 100644
--- a/av1/common/x86/convolve_2d_avx2.c
+++ b/av1/common/x86/convolve_2d_avx2.c
@@ -141,19 +141,19 @@
 void av1_convolve_2d_sr_avx2(
     const uint8_t *src, int32_t src_stride, uint8_t *dst, int32_t dst_stride,
     int32_t w, int32_t h, const InterpFilterParams *filter_params_x,
-    const InterpFilterParams *filter_params_y, const int32_t subpel_x_q4,
-    const int32_t subpel_y_q4, ConvolveParams *conv_params) {
-  const int32_t tap_x = get_filter_tap(filter_params_x, subpel_x_q4);
-  const int32_t tap_y = get_filter_tap(filter_params_y, subpel_y_q4);
+    const InterpFilterParams *filter_params_y, const int32_t subpel_x_qn,
+    const int32_t subpel_y_qn, ConvolveParams *conv_params) {
+  const int32_t tap_x = get_filter_tap(filter_params_x, subpel_x_qn);
+  const int32_t tap_y = get_filter_tap(filter_params_y, subpel_y_qn);
 
   const bool use_general = (tap_x == 12 || tap_y == 12);
   if (use_general) {
     convolve_2d_sr_general_avx2(src, src_stride, dst, dst_stride, w, h,
-                                filter_params_x, filter_params_y, subpel_x_q4,
-                                subpel_y_q4, conv_params);
+                                filter_params_x, filter_params_y, subpel_x_qn,
+                                subpel_y_qn, conv_params);
   } else {
     av1_convolve_2d_sr_specialized_avx2(src, src_stride, dst, dst_stride, w, h,
                                         filter_params_x, filter_params_y,
-                                        subpel_x_q4, subpel_y_q4, conv_params);
+                                        subpel_x_qn, subpel_y_qn, conv_params);
   }
 }
diff --git a/av1/common/x86/convolve_avx2.c b/av1/common/x86/convolve_avx2.c
index 98db5ae..dddaa4b 100644
--- a/av1/common/x86/convolve_avx2.c
+++ b/av1/common/x86/convolve_avx2.c
@@ -512,15 +512,15 @@
                             uint8_t *dst, int32_t dst_stride, int32_t w,
                             int32_t h,
                             const InterpFilterParams *filter_params_y,
-                            const int32_t subpel_y_q4) {
-  const int vert_tap = get_filter_tap(filter_params_y, subpel_y_q4);
+                            const int32_t subpel_y_qn) {
+  const int vert_tap = get_filter_tap(filter_params_y, subpel_y_qn);
 
   if (vert_tap == 12) {
     av1_convolve_y_sr_general_avx2(src, src_stride, dst, dst_stride, w, h,
-                                   filter_params_y, subpel_y_q4);
+                                   filter_params_y, subpel_y_qn);
   } else {
     av1_convolve_y_sr_specialized_avx2(src, src_stride, dst, dst_stride, w, h,
-                                       filter_params_y, subpel_y_q4);
+                                       filter_params_y, subpel_y_qn);
   }
 }
 
@@ -901,16 +901,16 @@
                             uint8_t *dst, int32_t dst_stride, int32_t w,
                             int32_t h,
                             const InterpFilterParams *filter_params_x,
-                            const int32_t subpel_x_q4,
+                            const int32_t subpel_x_qn,
                             ConvolveParams *conv_params) {
-  const int horz_tap = get_filter_tap(filter_params_x, subpel_x_q4);
+  const int horz_tap = get_filter_tap(filter_params_x, subpel_x_qn);
 
   if (horz_tap == 12) {
     av1_convolve_x_sr_general_avx2(src, src_stride, dst, dst_stride, w, h,
-                                   filter_params_x, subpel_x_q4, conv_params);
+                                   filter_params_x, subpel_x_qn, conv_params);
   } else {
     av1_convolve_x_sr_specialized_avx2(src, src_stride, dst, dst_stride, w, h,
-                                       filter_params_x, subpel_x_q4,
+                                       filter_params_x, subpel_x_qn,
                                        conv_params);
   }
 }
