/** * ispresizer_config_datapath - Specifies which input to use in resizer module * @input: Indicates the module that gives the image to resizer. * * Sets up the default resizer configuration according to the arguments. * * Returns 0 if successful, or -1 if an unsupported input was requested. **/ int ispresizer_config_datapath(enum ispresizer_input input) { u32 cnt = 0; DPRINTK_ISPRESZ("ispresizer_config_datapath()+\n"); ispres_obj.resinput = input; switch (input) { case RSZ_OTFLY_YUV: cnt &= ~ISPRSZ_CNT_INPTYP; cnt &= ~ISPRSZ_CNT_INPSRC; ispresizer_set_inaddr(0); ispresizer_config_inlineoffset(0); break; case RSZ_MEM_YUV: cnt |= ISPRSZ_CNT_INPSRC; cnt &= ~ISPRSZ_CNT_INPTYP; break; case RSZ_MEM_COL8: cnt |= ISPRSZ_CNT_INPSRC; cnt |= ISPRSZ_CNT_INPTYP; break; default: DPRINTK_ISPRESZ( "ISP_ERR : Wrong Input\n"); return -1; } isp_reg_or(OMAP3_ISP_IOMEM_RESZ, ISPRSZ_CNT, cnt); //ispresizer_config_ycpos(0); ispresizer_config_ycpos(1); ispresizer_config_filter_coef(&ispreszdefcoef); ispresizer_enable_cbilin(0); ispresizer_config_luma_enhance(&ispreszdefaultyenh); DPRINTK_ISPRESZ("ispresizer_config_datapath()-\n"); return 0; }
void ispresizer_init(void) { mmio_base[OMAP3_ISP_IOMEM_MAIN] = 0x480BC000; mmio_base[OMAP3_ISP_IOMEM_CCDC] = 0x480BC600; mmio_base[OMAP3_ISP_IOMEM_RESZ] = 0x480BD000; ispresizer_config_filter_coef(&ispreszdefcoef); }
/** * ispresizer_config_datapath - Specifies which input to use in resizer module * @input: Indicates the module that gives the image to resizer. * * Sets up the default resizer configuration according to the arguments. * * Returns 0 if successful, or -EINVAL if an unsupported input was requested. **/ int ispresizer_config_datapath(enum ispresizer_input input) { u32 cnt = 0; DPRINTK_ISPRESZ("ispresizer_config_datapath()+\n"); ispres_obj.resinput = input; switch (input) { case RSZ_OTFLY_YUV: cnt &= ~ISPRSZ_CNT_INPTYP; cnt &= ~ISPRSZ_CNT_INPSRC; ispresizer_set_inaddr(0); ispresizer_config_inlineoffset(0); break; case RSZ_MEM_YUV: cnt |= ISPRSZ_CNT_INPSRC; cnt &= ~ISPRSZ_CNT_INPTYP; break; case RSZ_MEM_COL8: cnt |= ISPRSZ_CNT_INPSRC; cnt |= ISPRSZ_CNT_INPTYP; break; default: printk(KERN_ERR "ISP_ERR : Wrong Input\n"); return -EINVAL; } isp_reg_or(OMAP3_ISP_IOMEM_RESZ, ISPRSZ_CNT, cnt); /* Use bilinear interpolation for upsampling per TRM */ if (ispres_obj.outputwidth > ispres_obj.inputwidth) ispresizer_enable_cbilin(1); else ispresizer_enable_cbilin(0); ispresizer_config_ycpos(0); ispresizer_config_filter_coef(&ispreszdefcoef); ispresizer_config_luma_enhance(&ispreszdefaultyenh); DPRINTK_ISPRESZ("ispresizer_config_datapath()-\n"); return 0; }