 +	ispprev_obj.previn_w = input_w;
 +	ispprev_obj.previn_h = input_h;
 +
-+	/*Checks if input size is more than the preview output width limit,
-+	*else suggests for downsampling in the averager.
-+	*/
-+	if (is_sil_rev_equal_to(OMAP3430_REV_ES1_0))
++	if (input_w < 32 || input_h < 32) {
++		printk(KERN_ERR "ISP_ERR : preview does not support "
++		       "width < 16 or height < 32 \n");
++		return -EINVAL;
++	}
++	if (omap_rev() == OMAP3430_REV_ES1_0)
 +		max_out = ISPPRV_MAXOUTPUT_WIDTH;
 +	else
 +		max_out = ISPPRV_MAXOUTPUT_WIDTH_ES2;

+	HS_VS = 0x80000000
+};
+
+enum isp_callback_type{
+	CBK_CCDC_VD0,
+	CBK_CCDC_VD1,
+	CBK_PREV_DONE,

+	struct isp_reg *next = reg_list;
+
+	for (; next->reg != ISP_TOK_TERM; next++)
+		next->val = isp_reg_readl(next->mmio_range, next->reg);
+}
+EXPORT_SYMBOL(isp_save_context);
+
