Lines Matching refs:f

505 	struct alps_fields *f = &priv->f;  in alps_report_mt_data()  local
508 input_mt_assign_slots(dev, slot, f->mt, n, 0); in alps_report_mt_data()
510 alps_set_slot(dev, slot[i], f->mt[i].x, f->mt[i].y); in alps_report_mt_data()
519 struct alps_fields *f = &priv->f; in alps_report_semi_mt_data() local
523 f->mt[0].x = f->st.x; in alps_report_semi_mt_data()
524 f->mt[0].y = f->st.y; in alps_report_semi_mt_data()
525 fingers = f->pressure > 0 ? 1 : 0; in alps_report_semi_mt_data()
532 input_report_key(dev, BTN_LEFT, f->left); in alps_report_semi_mt_data()
533 input_report_key(dev, BTN_RIGHT, f->right); in alps_report_semi_mt_data()
534 input_report_key(dev, BTN_MIDDLE, f->middle); in alps_report_semi_mt_data()
536 input_report_abs(dev, ABS_PRESSURE, f->pressure); in alps_report_semi_mt_data()
608 static void alps_decode_buttons_v3(struct alps_fields *f, unsigned char *p) in alps_decode_buttons_v3() argument
610 f->left = !!(p[3] & 0x01); in alps_decode_buttons_v3()
611 f->right = !!(p[3] & 0x02); in alps_decode_buttons_v3()
612 f->middle = !!(p[3] & 0x04); in alps_decode_buttons_v3()
614 f->ts_left = !!(p[3] & 0x10); in alps_decode_buttons_v3()
615 f->ts_right = !!(p[3] & 0x20); in alps_decode_buttons_v3()
616 f->ts_middle = !!(p[3] & 0x40); in alps_decode_buttons_v3()
619 static int alps_decode_pinnacle(struct alps_fields *f, unsigned char *p, in alps_decode_pinnacle() argument
622 f->first_mp = !!(p[4] & 0x40); in alps_decode_pinnacle()
623 f->is_mp = !!(p[0] & 0x40); in alps_decode_pinnacle()
625 f->fingers = (p[5] & 0x3) + 1; in alps_decode_pinnacle()
626 f->x_map = ((p[4] & 0x7e) << 8) | in alps_decode_pinnacle()
629 f->y_map = ((p[3] & 0x70) << 4) | in alps_decode_pinnacle()
633 f->st.x = ((p[1] & 0x7f) << 4) | ((p[4] & 0x30) >> 2) | in alps_decode_pinnacle()
635 f->st.y = ((p[2] & 0x7f) << 4) | (p[4] & 0x0f); in alps_decode_pinnacle()
636 f->pressure = p[5] & 0x7f; in alps_decode_pinnacle()
638 alps_decode_buttons_v3(f, p); in alps_decode_pinnacle()
643 static int alps_decode_rushmore(struct alps_fields *f, unsigned char *p, in alps_decode_rushmore() argument
646 alps_decode_pinnacle(f, p, psmouse); in alps_decode_rushmore()
649 f->is_mp = !!(p[5] & 0x40); in alps_decode_rushmore()
650 f->fingers = max((p[5] & 0x3), ((p[5] >> 2) & 0x3)) + 1; in alps_decode_rushmore()
651 f->x_map |= (p[5] & 0x10) << 11; in alps_decode_rushmore()
652 f->y_map |= (p[5] & 0x20) << 6; in alps_decode_rushmore()
657 static int alps_decode_dolphin(struct alps_fields *f, unsigned char *p, in alps_decode_dolphin() argument
663 f->first_mp = !!(p[0] & 0x02); in alps_decode_dolphin()
664 f->is_mp = !!(p[0] & 0x20); in alps_decode_dolphin()
666 if (!f->is_mp) { in alps_decode_dolphin()
667 f->st.x = ((p[1] & 0x7f) | ((p[4] & 0x0f) << 7)); in alps_decode_dolphin()
668 f->st.y = ((p[2] & 0x7f) | ((p[4] & 0xf0) << 3)); in alps_decode_dolphin()
669 f->pressure = (p[0] & 4) ? 0 : p[5] & 0x7f; in alps_decode_dolphin()
670 alps_decode_buttons_v3(f, p); in alps_decode_dolphin()
672 f->fingers = ((p[0] & 0x6) >> 1 | in alps_decode_dolphin()
684 f->y_map = palm_data & (BIT(priv->y_bits) - 1); in alps_decode_dolphin()
687 f->x_map = (palm_data >> priv->y_bits) & in alps_decode_dolphin()
699 struct alps_fields *f = &priv->f; in alps_process_touchpad_packet_v3_v5() local
702 memset(f, 0, sizeof(*f)); in alps_process_touchpad_packet_v3_v5()
704 priv->decode_fields(f, packet, psmouse); in alps_process_touchpad_packet_v3_v5()
719 if (f->is_mp) { in alps_process_touchpad_packet_v3_v5()
720 fingers = f->fingers; in alps_process_touchpad_packet_v3_v5()
723 if (alps_process_bitmap(priv, f) == 0) in alps_process_touchpad_packet_v3_v5()
727 priv->decode_fields(f, priv->multi_data, in alps_process_touchpad_packet_v3_v5()
736 priv->decode_fields(f, priv->multi_data, in alps_process_touchpad_packet_v3_v5()
743 alps_process_bitmap_dolphin(priv, f); in alps_process_touchpad_packet_v3_v5()
758 if (f->is_mp) in alps_process_touchpad_packet_v3_v5()
761 if (!priv->multi_packet && f->first_mp) { in alps_process_touchpad_packet_v3_v5()
775 if (f->st.x && f->st.y && !f->pressure) in alps_process_touchpad_packet_v3_v5()
782 input_report_key(dev2, BTN_LEFT, f->ts_left); in alps_process_touchpad_packet_v3_v5()
783 input_report_key(dev2, BTN_RIGHT, f->ts_right); in alps_process_touchpad_packet_v3_v5()
784 input_report_key(dev2, BTN_MIDDLE, f->ts_middle); in alps_process_touchpad_packet_v3_v5()
886 struct alps_fields *f = &priv->f; in alps_process_packet_v4() local
909 f->x_map = ((priv->multi_data[2] & 0x1f) << 10) | in alps_process_packet_v4()
913 f->y_map = ((priv->multi_data[5] & 0x01) << 10) | in alps_process_packet_v4()
917 f->fingers = alps_process_bitmap(priv, f); in alps_process_packet_v4()
920 f->left = !!(packet[4] & 0x01); in alps_process_packet_v4()
921 f->right = !!(packet[4] & 0x02); in alps_process_packet_v4()
923 f->st.x = ((packet[1] & 0x7f) << 4) | ((packet[3] & 0x30) >> 2) | in alps_process_packet_v4()
925 f->st.y = ((packet[2] & 0x7f) << 4) | (packet[3] & 0x0f); in alps_process_packet_v4()
926 f->pressure = packet[5] & 0x7f; in alps_process_packet_v4()
928 alps_report_semi_mt_data(psmouse, f->fingers); in alps_process_packet_v4()
1019 static int alps_decode_packet_v7(struct alps_fields *f, in alps_decode_packet_v7() argument
1052 alps_get_finger_coordinate_v7(f->mt, p, pkt_id); in alps_decode_packet_v7()
1055 f->fingers = alps_get_mt_count(f->mt); in alps_decode_packet_v7()
1057 f->fingers = 3 + (p[5] & 0x03); in alps_decode_packet_v7()
1059 f->left = (p[0] & 0x80) >> 7; in alps_decode_packet_v7()
1062 f->fingers++; in alps_decode_packet_v7()
1064 f->fingers++; in alps_decode_packet_v7()
1066 f->right = (p[0] & 0x20) >> 5; in alps_decode_packet_v7()
1067 f->middle = (p[0] & 0x10) >> 4; in alps_decode_packet_v7()
1071 if (f->fingers == 1 && f->mt[0].x == 0 && f->mt[0].y == 0) { in alps_decode_packet_v7()
1072 f->mt[0].x = f->mt[1].x; in alps_decode_packet_v7()
1073 f->mt[0].y = f->mt[1].y; in alps_decode_packet_v7()
1074 f->mt[1].x = 0; in alps_decode_packet_v7()
1075 f->mt[1].y = 0; in alps_decode_packet_v7()
1118 struct alps_fields *f = &priv->f; in alps_process_touchpad_packet_v7() local
1120 memset(f, 0, sizeof(*f)); in alps_process_touchpad_packet_v7()
1122 if (priv->decode_fields(f, psmouse->packet, psmouse)) in alps_process_touchpad_packet_v7()
1125 alps_report_mt_data(psmouse, alps_get_mt_count(f->mt)); in alps_process_touchpad_packet_v7()
1127 input_mt_report_finger_count(dev, f->fingers); in alps_process_touchpad_packet_v7()
1129 input_report_key(dev, BTN_LEFT, f->left); in alps_process_touchpad_packet_v7()
1130 input_report_key(dev, BTN_RIGHT, f->right); in alps_process_touchpad_packet_v7()
1131 input_report_key(dev, BTN_MIDDLE, f->middle); in alps_process_touchpad_packet_v7()
1164 static int alps_decode_ss4_v2(struct alps_fields *f, in alps_decode_ss4_v2() argument
1176 f->mt[0].x = SS4_1F_X_V2(p); in alps_decode_ss4_v2()
1177 f->mt[0].y = SS4_1F_Y_V2(p); in alps_decode_ss4_v2()
1178 f->pressure = ((SS4_1F_Z_V2(p)) * 2) & 0x7f; in alps_decode_ss4_v2()
1179 f->fingers = 1; in alps_decode_ss4_v2()
1180 f->first_mp = 0; in alps_decode_ss4_v2()
1181 f->is_mp = 0; in alps_decode_ss4_v2()
1186 f->mt[0].x = SS4_BTL_MF_X_V2(p, 0); in alps_decode_ss4_v2()
1187 f->mt[0].y = SS4_BTL_MF_Y_V2(p, 0); in alps_decode_ss4_v2()
1188 f->mt[1].x = SS4_BTL_MF_X_V2(p, 1); in alps_decode_ss4_v2()
1189 f->mt[1].y = SS4_BTL_MF_Y_V2(p, 1); in alps_decode_ss4_v2()
1191 f->mt[0].x = SS4_STD_MF_X_V2(p, 0); in alps_decode_ss4_v2()
1192 f->mt[0].y = SS4_STD_MF_Y_V2(p, 0); in alps_decode_ss4_v2()
1193 f->mt[1].x = SS4_STD_MF_X_V2(p, 1); in alps_decode_ss4_v2()
1194 f->mt[1].y = SS4_STD_MF_Y_V2(p, 1); in alps_decode_ss4_v2()
1196 f->pressure = SS4_MF_Z_V2(p, 0) ? 0x30 : 0; in alps_decode_ss4_v2()
1199 f->first_mp = 1; in alps_decode_ss4_v2()
1201 f->fingers = 2; in alps_decode_ss4_v2()
1202 f->first_mp = 0; in alps_decode_ss4_v2()
1204 f->is_mp = 0; in alps_decode_ss4_v2()
1210 f->mt[2].x = SS4_BTL_MF_X_V2(p, 0); in alps_decode_ss4_v2()
1211 f->mt[2].y = SS4_BTL_MF_Y_V2(p, 0); in alps_decode_ss4_v2()
1212 f->mt[3].x = SS4_BTL_MF_X_V2(p, 1); in alps_decode_ss4_v2()
1213 f->mt[3].y = SS4_BTL_MF_Y_V2(p, 1); in alps_decode_ss4_v2()
1217 f->mt[2].x = SS4_STD_MF_X_V2(p, 0); in alps_decode_ss4_v2()
1218 f->mt[2].y = SS4_STD_MF_Y_V2(p, 0); in alps_decode_ss4_v2()
1219 f->mt[3].x = SS4_STD_MF_X_V2(p, 1); in alps_decode_ss4_v2()
1220 f->mt[3].y = SS4_STD_MF_Y_V2(p, 1); in alps_decode_ss4_v2()
1225 f->first_mp = 0; in alps_decode_ss4_v2()
1226 f->is_mp = 1; in alps_decode_ss4_v2()
1229 f->fingers = 5; in alps_decode_ss4_v2()
1230 } else if (f->mt[3].x == no_data_x && in alps_decode_ss4_v2()
1231 f->mt[3].y == no_data_y) { in alps_decode_ss4_v2()
1232 f->mt[3].x = 0; in alps_decode_ss4_v2()
1233 f->mt[3].y = 0; in alps_decode_ss4_v2()
1234 f->fingers = 3; in alps_decode_ss4_v2()
1236 f->fingers = 4; in alps_decode_ss4_v2()
1242 memset(f, 0, sizeof(struct alps_fields)); in alps_decode_ss4_v2()
1246 f->left = !!(SS4_BTN_V2(p) & 0x01); in alps_decode_ss4_v2()
1248 f->right = !!(SS4_BTN_V2(p) & 0x02); in alps_decode_ss4_v2()
1249 f->middle = !!(SS4_BTN_V2(p) & 0x04); in alps_decode_ss4_v2()
1260 struct alps_fields *f = &priv->f; in alps_process_packet_ss4_v2() local
1262 memset(f, 0, sizeof(struct alps_fields)); in alps_process_packet_ss4_v2()
1263 priv->decode_fields(f, packet, psmouse); in alps_process_packet_ss4_v2()
1271 if (f->is_mp) { in alps_process_packet_ss4_v2()
1273 priv->decode_fields(f, priv->multi_data, psmouse); in alps_process_packet_ss4_v2()
1283 if (f->is_mp) in alps_process_packet_ss4_v2()
1287 if (!priv->multi_packet && f->first_mp) { in alps_process_packet_ss4_v2()
1295 alps_report_mt_data(psmouse, (f->fingers <= 4) ? f->fingers : 4); in alps_process_packet_ss4_v2()
1297 input_mt_report_finger_count(dev, f->fingers); in alps_process_packet_ss4_v2()
1299 input_report_key(dev, BTN_LEFT, f->left); in alps_process_packet_ss4_v2()
1300 input_report_key(dev, BTN_RIGHT, f->right); in alps_process_packet_ss4_v2()
1301 input_report_key(dev, BTN_MIDDLE, f->middle); in alps_process_packet_ss4_v2()
1303 input_report_abs(dev, ABS_PRESSURE, f->pressure); in alps_process_packet_ss4_v2()