static long touch_cal_ioctl(struct file *file, unsigned int cmd,unsigned long arg) { /*void __user *argp = (void __user *)arg;*/ int cal_data[8] = {0, }; /* int current_cal_mode = 0; */ int i, idx; pr_info("[touch_cal_ioctl]cmd[%d]\n", cmd); switch (cmd) { case TOUCH_CAL_GET_DATA: for(i=0 ; i < 8 ; i++) { idx = i; msm_proc_comm(PCOM_OEM_GET_TOUCH_CAL, &cal_data[i], &idx); pr_info("### get cal_data[%d]:%d\n", i, cal_data[i]); } apply_cal_data(cal_data); break; case TOUCH_CAL_SET_DATA: pr_info("[touch_cal_ioctl]TOUCH_CAL_SET_DATA\n"); ts_calibration_for_touch_key_region(TOUCH_KEY_FILENAME, cal_data); /* if (copy_from_user(&cal_data[0], argp, sizeof(cal_data))){ return -ENODEV; } */ for(i=0 ; i < 8 ; i++) { idx = i; msm_proc_comm(PCOM_OEM_SET_TOUCH_CAL, &cal_data[i], &idx); pr_info("[SWIFT TOUCH CAL](%d) cal_data:%d\n", i, idx); } apply_cal_data(cal_data); break; } return 0; }
static int touch_cal_ioctl(struct inode *inode, struct file *file, unsigned int cmd,unsigned long arg) { void __user *argp = (void __user *)arg; int cal_data[8] = {0,}; int current_cal_mode = 0; int i, idx; printk("[touch_cal_ioctl]cmd[%d]\n", cmd); switch (cmd) { case TOUCH_CAL_GET_DATA: for(i=0 ; i < 8 ; i++) { idx = i; msm_proc_comm(PCOM_OEM_GET_TOUCH_CAL, &cal_data[i], &idx); printk("### get cal_data[%d]:%d\n", i, cal_data[i]); } apply_cal_data(cal_data); break; case TOUCH_CAL_SET_DATA: printk("[touch_cal_ioctl]TOUCH_CAL_SET_DATA\n"); ts_calibration_for_touch_key_region(TOUCH_KEY_FILENAME, cal_data); /* if (copy_from_user(&cal_data[0], argp, sizeof(cal_data))){ return -ENODEV; } */ for(i=0 ; i < 8 ; i++) { idx = i; msm_proc_comm(PCOM_OEM_SET_TOUCH_CAL, &cal_data[i], &idx); printk("[SWIFT TOUCH CAL](%d) cal_data:%d\n", i, idx); } #if 1 apply_cal_data(cal_data); #else if (cal_data[0]) { x1 = (cal_data[0] * (X_MAX - X_MIN) / 320) + X_MIN; } if (cal_data[1]) { y1 = ((cal_data[1] + 20) * (Y_MAX - Y_MIN) / 450) + Y_MIN; } if (cal_data[2]) { x2 = (cal_data[2] * (X_MAX - X_MIN) / 320) + X_MIN; } if (cal_data[3]) { y2 = (cal_data[3] * (Y_MAX - Y_MIN) / 450) + Y_MIN; } if (cal_data[4]) { x3 = (cal_data[4] * (X_MAX - X_MIN) / 320) + X_MIN; } if (cal_data[5]) { y3 = (cal_data[5] * (Y_MAX - Y_MIN) / 450) + Y_MIN; } if (cal_data[6]) { x4 = (cal_data[6] * (X_MAX - X_MIN) / 320) + X_MIN; } if (cal_data[7]) { y4 = ((cal_data[7] + 20 )* (Y_MAX - Y_MIN) / 450) + Y_MIN; } menu_x = x1 - ((x4 - x1) * 100 / 541); menu_y = y2 + ((y2 - y1) * 100 / 841); /* 567 */ back_x = x4 + ((x4 - x1) * 100 / 541); back_y = y3 + ((y3 - y4) * 100 / 841); /* 567 */ if (!menu_x || !menu_y || !back_x || !back_y) { menu_x = MENU_KEY_X; menu_y = TS_KEY_Y; back_x = BACK_KEY_X; back_y = TS_KEY_Y; } printk("[SWIFT TOUCH CAL] X1:%d, Y1:%d\n", x1, y1); printk("[SWIFT TOUCH CAL] X2:%d, Y2:%d\n", x2, y2); printk("[SWIFT TOUCH CAL] X3:%d, Y3:%d\n", x3, y3); printk("[SWIFT TOUCH CAL] X4:%d, Y4:%d\n", x4, y4); printk("[SWIFT TOUCH CAL] MENU X:%d, MENU Y:%d\n", menu_x, menu_y); printk("[SWIFT TOUCH CAL] BACK X:%d, BACk Y:%d\n", back_x, back_y); #endif break; } return 0; }