mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-10 14:19:09 -04:00
input: nova_0flash_mmi: update dda driver to v2.0
nova_0flash_mmi: Minor updates for safety coding in moto_ts_dda.c. Change-Id: I6233fc159bb49e2fb6414743c441bfc157a7a20b Signed-off-by: wangyq13 <wangyq13@lenovo.com> Reviewed-on: https://gerrit.mot.com/2422204 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Jun Weng <wengjun1@motorola.com> Reviewed-by: Huosheng Liao <liaohs@motorola.com> Submit-Approved: Jira Key
This commit is contained in:
parent
9b4c9f024a
commit
80f4582c2f
1 changed files with 15 additions and 3 deletions
|
|
@ -257,6 +257,7 @@ static int get_finger_report(int id, unsigned long arg){
|
|||
finger_buffer_rp = (unsigned char)((wp + (DDA_MAX_BUFFER -
|
||||
MAX_IO_CONTROL_REPORT)) % DDA_MAX_BUFFER);
|
||||
} else {
|
||||
num = MAX_IO_CONTROL_REPORT; //for safety implementation
|
||||
finger_buffer_rp = 0;
|
||||
}
|
||||
memset(&finger_reports, 0, sizeof(finger_reports));
|
||||
|
|
@ -339,6 +340,7 @@ static struct file_operations penraw_fops = {
|
|||
void moto_dda_process_finger_press(uint8_t touch_id, struct dda_finger_coords *finger_data) {
|
||||
struct dda_finger_info *pfinger_info;
|
||||
int i;
|
||||
unsigned char id_is_found;
|
||||
|
||||
if(touch_id >= DDA_TOUCH_ID_MAX){
|
||||
return;
|
||||
|
|
@ -358,12 +360,22 @@ void moto_dda_process_finger_press(uint8_t touch_id, struct dda_finger_coords *f
|
|||
dda_finger_report_buf[touch_id].frame_no++;
|
||||
if(DDA_FINGER_RELEASE == dda_finger_report_buf[touch_id].last_status){
|
||||
pfinger_info->coords.status = DDA_FINGER_ENTER;
|
||||
//check registerd iDs to avoid duplicated registration.
|
||||
id_is_found = 0;
|
||||
for(i=0;i<DDA_TOUCH_ID_MAX;i++){
|
||||
if(-1 == dda_finger_id_assign_table[i]){
|
||||
dda_finger_id_assign_table[i] = touch_id;
|
||||
if(touch_id == dda_finger_id_assign_table[i]){
|
||||
id_is_found = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(0 == id_is_found){
|
||||
for(i=0;i<DDA_TOUCH_ID_MAX;i++){
|
||||
if(-1 == dda_finger_id_assign_table[i]){
|
||||
dda_finger_id_assign_table[i] = touch_id;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}else{
|
||||
pfinger_info->coords.status = DDA_FINGER_MOVE;
|
||||
}
|
||||
|
|
@ -548,7 +560,7 @@ int moto_dda_register_cdevice(void) {
|
|||
void moto_dda_exit(void) {
|
||||
dev_t dev = MKDEV(dda_cdev_ctrl.major_number, MINOR_NUMBER_START);
|
||||
|
||||
/* remove "/dev/novatech_penraw" */
|
||||
/* remove "/dev/moto_penraw" */
|
||||
if (NULL != dda_cdev_ctrl.penraw_char_dev_class) {
|
||||
device_destroy(dda_cdev_ctrl.penraw_char_dev_class,
|
||||
MKDEV(dda_cdev_ctrl.major_number, 0));
|
||||
|
|
|
|||
Loading…
Reference in a new issue