2 * Copyright (C) 2012 Spreadtrum Communications Inc.
4 * This software is licensed under the terms of the GNU General Public
5 * License version 2, as published by the Free Software Foundation, and
6 * may be copied, distributed, and modified under those terms.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
14 #include <linux/uaccess.h>
15 #include <linux/sprd_mm.h>
16 #include <video/sprd_isp.h>
19 static int32_t isp_k_pre_wavelet_block(struct isp_io_param *param)
22 struct isp_dev_pre_wavelet_info pre_wavelet_info;
24 memset(&pre_wavelet_info, 0x00, sizeof(pre_wavelet_info));
26 ret = copy_from_user((void *)&pre_wavelet_info, param->property_param, sizeof(pre_wavelet_info));
28 printk("isp_k_pre_wavelet_bypass: copy error, ret=0x%x\n", (uint32_t)ret);
32 if (pre_wavelet_info.bypass) {
33 REG_OWR(ISP_PRE_WAVELET_PARAM, BIT_0);
35 REG_MWR(ISP_PRE_WAVELET_PARAM, BIT_0, 0);
41 static int32_t isp_k_pre_wavelet_bypass(struct isp_io_param *param)
46 ret = copy_from_user((void *)&bypass, param->property_param, sizeof(bypass));
48 printk("isp_k_pre_wavelet_bypass: copy error, ret=0x%x\n", (uint32_t)ret);
53 REG_OWR(ISP_PRE_WAVELET_PARAM, BIT_0);
55 REG_MWR(ISP_PRE_WAVELET_PARAM, BIT_0, 0);
61 int32_t isp_k_cfg_pre_wavelet(struct isp_io_param *param)
66 printk("isp_k_cfg_pre_wavelet: param is null error.\n");
70 if (NULL == param->property_param) {
71 printk("isp_k_cfg_pre_wavelet: property_param is null error.\n");
75 switch(param->property) {
76 case ISP_PRO_PRE_WAVELET_BLOCK:
77 ret = isp_k_pre_wavelet_block(param);
79 case ISP_PRO_PRE_WAVELET_BYPASS:
80 ret = isp_k_pre_wavelet_bypass(param);
83 printk("isp_k_cfg_pre_wavelet: fail cmd id:%d, not supported.\n", param->property);