unsigned int size)
 {
        unsigned int elems_a = ISP_VEC_NELEMS;
+       int ret;
+
+       ret = ia_css_dma_configure_from_info(&to->port_b, from->info);
+       if (ret)
+               return ret;
 
-       (void)size;
-       ia_css_dma_configure_from_info(&to->port_b, from->info);
        to->width_a_over_b = elems_a / to->port_b.elems;
 
        /* Assume divisiblity here, may need to generalize to fixed point. */
-       assert(elems_a % to->port_b.elems == 0);
+       if (elems_a % to->port_b.elems != 0)
+               return -EINVAL;
+
        return 0;
 }
 
 
                      unsigned int size)
 {
        unsigned int elems_a = ISP_VEC_NELEMS;
+       int ret;
+
+       ret = ia_css_dma_configure_from_info(&to->port_b, from->info);
+       if (ret)
+               return ret;
 
-       (void)size;
-       ia_css_dma_configure_from_info(&to->port_b, from->info);
        to->width_a_over_b = elems_a / to->port_b.elems;
 
        /* Assume divisiblity here, may need to generalize to fixed point. */
-       assert(elems_a % to->port_b.elems == 0);
+       if (elems_a % to->port_b.elems != 0)
+               return -EINVAL;
+
        return 0;
 }
 
 
                                                ddr_bits_per_element);
        unsigned int size_get = 0, size_put = 0;
        unsigned int offset = 0;
+       int ret;
 
        if (binary->info->mem_offsets.offsets.param) {
                size_get = binary->info->mem_offsets.offsets.param->dmem.get.size;
                                    "ia_css_bayer_io_config() get part enter:\n");
 #endif
 
-               ia_css_dma_configure_from_info(&config, in_frame_info);
+               ret = ia_css_dma_configure_from_info(&config, in_frame_info);
+               if (ret)
+                       return ret;
                // The base_address of the input frame will be set in the ISP
                to->width = in_frame_info->res.width;
                to->height = in_frame_info->res.height;
                                    "ia_css_bayer_io_config() put part enter:\n");
 #endif
 
-               ia_css_dma_configure_from_info(&config, &out_frames[0]->info);
+               ret = ia_css_dma_configure_from_info(&config, &out_frames[0]->info);
+               if (ret)
+                       return ret;
                to->base_address = out_frames[0]->data;
                to->width = out_frames[0]->info.res.width;
                to->height = out_frames[0]->info.res.height;
 
                                                ddr_bits_per_element);
        unsigned int size_get = 0, size_put = 0;
        unsigned int offset = 0;
+       int ret;
 
        if (binary->info->mem_offsets.offsets.param) {
                size_get = binary->info->mem_offsets.offsets.param->dmem.get.size;
                                    "ia_css_yuv444_io_config() get part enter:\n");
 #endif
 
-               ia_css_dma_configure_from_info(&config, in_frame_info);
+               ret = ia_css_dma_configure_from_info(&config, in_frame_info);
+               if (ret)
+                       return ret;
+
                // The base_address of the input frame will be set in the ISP
                to->width = in_frame_info->res.width;
                to->height = in_frame_info->res.height;
                                    "ia_css_yuv444_io_config() put part enter:\n");
 #endif
 
-               ia_css_dma_configure_from_info(&config, &out_frames[0]->info);
+               ret = ia_css_dma_configure_from_info(&config, &out_frames[0]->info);
+               if (ret)
+                       return ret;
+
                to->base_address = out_frames[0]->data;
                to->width = out_frames[0]->info.res.width;
                to->height = out_frames[0]->info.res.height;
 
                         unsigned int size)
 {
        unsigned int elems_a = ISP_VEC_NELEMS;
+       int ret;
+
+       ret = ia_css_dma_configure_from_info(&to->port_b, from->info);
+       if (ret)
+               return ret;
 
-       (void)size;
-       ia_css_dma_configure_from_info(&to->port_b, from->info);
        to->width_a_over_b = elems_a / to->port_b.elems;
        to->height = from->info ? from->info->res.height : 0;
        to->enable = from->info != NULL;
        ia_css_frame_info_to_frame_sp_info(&to->info, from->info);
 
        /* Assume divisiblity here, may need to generalize to fixed point. */
-       assert(elems_a % to->port_b.elems == 0);
+       if (elems_a % to->port_b.elems != 0)
+               return -EINVAL;
+
        return 0;
 }
 
 
                         unsigned int size)
 {
        unsigned int elems_a = ISP_VEC_NELEMS;
+       int ret;
+
+       ret = ia_css_dma_configure_from_info(&to->port_b, from->info);
+       if (ret)
+               return ret;
 
-       (void)size;
-       ia_css_dma_configure_from_info(&to->port_b, from->info);
        to->width_a_over_b = elems_a / to->port_b.elems;
 
        /* Assume divisiblity here, may need to generalize to fixed point. */
-       assert(elems_a % to->port_b.elems == 0);
+       if (elems_a % to->port_b.elems != 0)
+               return -EINVAL;
 
        to->inout_port_config = from->pipe->inout_port_config;
        to->format = from->info->format;
+
        return 0;
 }
 
 
        unsigned int elems_a = ISP_VEC_NELEMS;
        const struct ia_css_frame_info *in_info = from->in_info;
        const struct ia_css_frame_info *internal_info = from->internal_info;
+       int ret;
 
-       (void)size;
 #if !defined(ISP2401)
        /* 2401 input system uses input width width */
        in_info = internal_info;
                in_info = internal_info;
 
 #endif
-       ia_css_dma_configure_from_info(&to->port_b, in_info);
+       ret = ia_css_dma_configure_from_info(&to->port_b, in_info);
+       if (ret)
+               return ret;
 
        /* Assume divisiblity here, may need to generalize to fixed point. */
        assert((in_info->format == IA_CSS_FRAME_FORMAT_RAW_PACKED) ||
 
                      unsigned int size)
 {
        unsigned int elems_a = ISP_VEC_NELEMS, i;
+       int ret;
 
        if (from->ref_frames[0]) {
-               ia_css_dma_configure_from_info(&to->port_b, &from->ref_frames[0]->info);
+               ret = ia_css_dma_configure_from_info(&to->port_b, &from->ref_frames[0]->info);
+               if (ret)
+                       return ret;
                to->width_a_over_b = elems_a / to->port_b.elems;
                to->dvs_frame_delay = from->dvs_frame_delay;
        } else {
        }
 
        /* Assume divisiblity here, may need to generalize to fixed point. */
-       assert(elems_a % to->port_b.elems == 0);
+       if (elems_a % to->port_b.elems != 0)
+               return -EINVAL;
+
        return 0;
 }
 
 
 {
        unsigned int elems_a = ISP_VEC_NELEMS;
        unsigned int i;
+       int ret;
 
-       (void)size;
-       ia_css_dma_configure_from_info(&to->port_b, &from->tnr_frames[0]->info);
+       ret = ia_css_dma_configure_from_info(&to->port_b, &from->tnr_frames[0]->info);
+       if (ret)
+               return ret;
        to->width_a_over_b = elems_a / to->port_b.elems;
        to->frame_height = from->tnr_frames[0]->info.res.height;
        for (i = 0; i < NUM_TNR_FRAMES; i++) {
        }
 
        /* Assume divisiblity here, may need to generalize to fixed point. */
-       assert(elems_a % to->port_b.elems == 0);
+       if (elems_a % to->port_b.elems != 0)
+               return -EINVAL;
+
        return 0;
 }
 
 
                    unsigned int size)
 {
        unsigned int elems_a = ISP_VEC_NELEMS;
+       int ret;
 
-       (void)size;
        to->vf_downscale_bits = from->vf_downscale_bits;
        to->enable = from->info != NULL;
 
        if (from->info) {
                ia_css_frame_info_to_frame_sp_info(&to->info, from->info);
-               ia_css_dma_configure_from_info(&to->dma.port_b, from->info);
+               ret = ia_css_dma_configure_from_info(&to->dma.port_b, from->info);
+               if (ret)
+                       return ret;
                to->dma.width_a_over_b = elems_a / to->dma.port_b.elems;
 
                /* Assume divisiblity here, may need to generalize to fixed point. */
-               assert(elems_a % to->dma.port_b.elems == 0);
+               if (elems_a % to->dma.port_b.elems != 0)
+                       return -EINVAL;
        }
        return 0;
 }
 
        config->elems  = (uint8_t)elems_b;
        config->width  = (uint16_t)info->res.width;
        config->crop   = 0;
-       assert(config->width <= info->padded_width);
+
+       if (config->width > info->padded_width) {
+               dev_err(atomisp_dev, "internal error: padded_width is too small!\n");
+               return -EINVAL;
+       }
+
        return 0;
 }