static int yacd5c1sbdbc_sensor_set_tuner(struct tuner_cfg tuner) { //si2c_cmd_t *cmds = NULL; msm_camera_i2c_reg_tune_t *cmds = NULL; char *fbuf = NULL; SKYCDBG("%s fbuf=%p, fsize=%d\n", __func__, tuner.fbuf, tuner.fsize); if (!tuner.fbuf || (tuner.fsize == 0)) { SKYCERR("%s err(-EINVAL)\n", __func__); return -EINVAL; } fbuf = (char *)kmalloc(tuner.fsize, GFP_KERNEL); if (!fbuf) { SKYCERR("%s err(-ENOMEM)\n", __func__); return -ENOMEM; } if (copy_from_user(fbuf, tuner.fbuf, tuner.fsize)) { SKYCERR("%s err(-EFAULT)\n", __func__); kfree(fbuf); return -EFAULT; } cmds = ptune_parse("@init", fbuf); if (!cmds) { SKYCERR("%s no @init\n", __func__); kfree(fbuf); return -EFAULT; } yacd5c1sbdbc_recommend_tuner_settings = cmds;//(struct msm_camera_i2c_reg_conf *)cmds; kfree(fbuf); SKYCDBG("%s X\n", __func__); return 0; }
static int mt9d113_set_tuner(struct tuner_cfg tuner) { si2c_cmd_t *cmds = NULL; char *fbuf = NULL; CDBG("%s fbuf=%p, fsize=%d\n", __func__, tuner.fbuf, tuner.fsize); if (!tuner.fbuf || (tuner.fsize == 0)) { SKYCDBG("%s err(-EINVAL)\n", __func__); return -EINVAL; } fbuf = (char *)kmalloc(tuner.fsize, GFP_KERNEL); if (!fbuf) { SKYCDBG("%s err(-ENOMEM)\n", __func__); return -ENOMEM; } if (copy_from_user(fbuf, tuner.fbuf, tuner.fsize)) { SKYCDBG("%s err(-EFAULT)\n", __func__); kfree(fbuf); return -EFAULT; } cmds = ptune_parse("@init", fbuf); if (!cmds) { SKYCDBG("%s no @init\n", __func__); kfree(fbuf); return -EFAULT; } mt9d113_tuner_params[SI2C_INIT].cmds = cmds; mt9d113_params[SI2C_INIT].cmds = cmds; kfree(fbuf); CDBG("%s X\n", __func__); return 0; }