.. | .. |
---|
757 | 757 | struct input_dev *input_dev; |
---|
758 | 758 | int err; |
---|
759 | 759 | int i; |
---|
| 760 | + char *keyboard_type; |
---|
760 | 761 | |
---|
761 | 762 | if (adbhid[id]) { |
---|
762 | 763 | pr_err("Trying to reregister ADB HID on ID %d\n", id); |
---|
.. | .. |
---|
798 | 799 | |
---|
799 | 800 | memcpy(hid->keycode, adb_to_linux_keycodes, sizeof(adb_to_linux_keycodes)); |
---|
800 | 801 | |
---|
801 | | - pr_info("Detected ADB keyboard, type "); |
---|
802 | 802 | switch (original_handler_id) { |
---|
803 | 803 | default: |
---|
804 | | - pr_cont("<unknown>.\n"); |
---|
| 804 | + keyboard_type = "<unknown>"; |
---|
805 | 805 | input_dev->id.version = ADB_KEYBOARD_UNKNOWN; |
---|
806 | 806 | break; |
---|
807 | 807 | |
---|
808 | 808 | case 0x01: case 0x02: case 0x03: case 0x06: case 0x08: |
---|
809 | 809 | case 0x0C: case 0x10: case 0x18: case 0x1B: case 0x1C: |
---|
810 | 810 | case 0xC0: case 0xC3: case 0xC6: |
---|
811 | | - pr_cont("ANSI.\n"); |
---|
| 811 | + keyboard_type = "ANSI"; |
---|
812 | 812 | input_dev->id.version = ADB_KEYBOARD_ANSI; |
---|
813 | 813 | break; |
---|
814 | 814 | |
---|
815 | 815 | case 0x04: case 0x05: case 0x07: case 0x09: case 0x0D: |
---|
816 | 816 | case 0x11: case 0x14: case 0x19: case 0x1D: case 0xC1: |
---|
817 | 817 | case 0xC4: case 0xC7: |
---|
818 | | - pr_cont("ISO, swapping keys.\n"); |
---|
| 818 | + keyboard_type = "ISO, swapping keys"; |
---|
819 | 819 | input_dev->id.version = ADB_KEYBOARD_ISO; |
---|
820 | 820 | i = hid->keycode[10]; |
---|
821 | 821 | hid->keycode[10] = hid->keycode[50]; |
---|
.. | .. |
---|
824 | 824 | |
---|
825 | 825 | case 0x12: case 0x15: case 0x16: case 0x17: case 0x1A: |
---|
826 | 826 | case 0x1E: case 0xC2: case 0xC5: case 0xC8: case 0xC9: |
---|
827 | | - pr_cont("JIS.\n"); |
---|
| 827 | + keyboard_type = "JIS"; |
---|
828 | 828 | input_dev->id.version = ADB_KEYBOARD_JIS; |
---|
829 | 829 | break; |
---|
830 | 830 | } |
---|
| 831 | + pr_info("Detected ADB keyboard, type %s.\n", keyboard_type); |
---|
831 | 832 | |
---|
832 | 833 | for (i = 0; i < 128; i++) |
---|
833 | 834 | if (hid->keycode[i]) |
---|
.. | .. |
---|
880 | 881 | } |
---|
881 | 882 | if (hid->name[0]) |
---|
882 | 883 | break; |
---|
883 | | - /* else fall through */ |
---|
| 884 | + fallthrough; |
---|
884 | 885 | |
---|
885 | 886 | default: |
---|
886 | 887 | pr_info("Trying to register unknown ADB device to input layer.\n"); |
---|
.. | .. |
---|
972 | 973 | ->get it to send separate codes for left and right shift, |
---|
973 | 974 | control, option keys */ |
---|
974 | 975 | #if 0 /* handler 5 doesn't send separate codes for R modifiers */ |
---|
975 | | - if (adb_try_handler_change(id, 5)) |
---|
976 | | - printk("ADB keyboard at %d, handler set to 5\n", id); |
---|
977 | | - else |
---|
| 976 | + if (!adb_try_handler_change(id, 5)) |
---|
978 | 977 | #endif |
---|
979 | | - if (adb_try_handler_change(id, 3)) |
---|
980 | | - printk("ADB keyboard at %d, handler set to 3\n", id); |
---|
981 | | - else |
---|
982 | | - printk("ADB keyboard at %d, handler 1\n", id); |
---|
| 978 | + adb_try_handler_change(id, 3); |
---|
983 | 979 | |
---|
984 | 980 | adb_get_infos(id, &default_id, &cur_handler_id); |
---|
| 981 | + printk(KERN_DEBUG "ADB keyboard at %d has handler 0x%X\n", |
---|
| 982 | + id, cur_handler_id); |
---|
985 | 983 | reg |= adbhid_input_reregister(id, default_id, org_handler_id, |
---|
986 | 984 | cur_handler_id, 0); |
---|
987 | 985 | } |
---|
.. | .. |
---|
999 | 997 | for (i = 0; i < mouse_ids.nids; i++) { |
---|
1000 | 998 | int id = mouse_ids.id[i]; |
---|
1001 | 999 | int mouse_kind; |
---|
| 1000 | + char *desc = "standard"; |
---|
1002 | 1001 | |
---|
1003 | 1002 | adb_get_infos(id, &default_id, &org_handler_id); |
---|
1004 | 1003 | |
---|
1005 | 1004 | if (adb_try_handler_change(id, 4)) { |
---|
1006 | | - printk("ADB mouse at %d, handler set to 4", id); |
---|
1007 | 1005 | mouse_kind = ADBMOUSE_EXTENDED; |
---|
1008 | 1006 | } |
---|
1009 | 1007 | else if (adb_try_handler_change(id, 0x2F)) { |
---|
1010 | | - printk("ADB mouse at %d, handler set to 0x2F", id); |
---|
1011 | 1008 | mouse_kind = ADBMOUSE_MICROSPEED; |
---|
1012 | 1009 | } |
---|
1013 | 1010 | else if (adb_try_handler_change(id, 0x42)) { |
---|
1014 | | - printk("ADB mouse at %d, handler set to 0x42", id); |
---|
1015 | 1011 | mouse_kind = ADBMOUSE_TRACKBALLPRO; |
---|
1016 | 1012 | } |
---|
1017 | 1013 | else if (adb_try_handler_change(id, 0x66)) { |
---|
1018 | | - printk("ADB mouse at %d, handler set to 0x66", id); |
---|
1019 | 1014 | mouse_kind = ADBMOUSE_MICROSPEED; |
---|
1020 | 1015 | } |
---|
1021 | 1016 | else if (adb_try_handler_change(id, 0x5F)) { |
---|
1022 | | - printk("ADB mouse at %d, handler set to 0x5F", id); |
---|
1023 | 1017 | mouse_kind = ADBMOUSE_MICROSPEED; |
---|
1024 | 1018 | } |
---|
1025 | 1019 | else if (adb_try_handler_change(id, 3)) { |
---|
1026 | | - printk("ADB mouse at %d, handler set to 3", id); |
---|
1027 | 1020 | mouse_kind = ADBMOUSE_MS_A3; |
---|
1028 | 1021 | } |
---|
1029 | 1022 | else if (adb_try_handler_change(id, 2)) { |
---|
1030 | | - printk("ADB mouse at %d, handler set to 2", id); |
---|
1031 | 1023 | mouse_kind = ADBMOUSE_STANDARD_200; |
---|
1032 | 1024 | } |
---|
1033 | 1025 | else { |
---|
1034 | | - printk("ADB mouse at %d, handler 1", id); |
---|
1035 | 1026 | mouse_kind = ADBMOUSE_STANDARD_100; |
---|
1036 | 1027 | } |
---|
1037 | 1028 | |
---|
1038 | 1029 | if ((mouse_kind == ADBMOUSE_TRACKBALLPRO) |
---|
1039 | 1030 | || (mouse_kind == ADBMOUSE_MICROSPEED)) { |
---|
| 1031 | + desc = "Microspeed/MacPoint or compatible"; |
---|
1040 | 1032 | init_microspeed(id); |
---|
1041 | 1033 | } else if (mouse_kind == ADBMOUSE_MS_A3) { |
---|
| 1034 | + desc = "Mouse Systems A3 Mouse or compatible"; |
---|
1042 | 1035 | init_ms_a3(id); |
---|
1043 | 1036 | } else if (mouse_kind == ADBMOUSE_EXTENDED) { |
---|
| 1037 | + desc = "extended"; |
---|
1044 | 1038 | /* |
---|
1045 | 1039 | * Register 1 is usually used for device |
---|
1046 | 1040 | * identification. Here, we try to identify |
---|
.. | .. |
---|
1054 | 1048 | (req.reply[1] == 0x9a) && ((req.reply[2] == 0x21) |
---|
1055 | 1049 | || (req.reply[2] == 0x20))) { |
---|
1056 | 1050 | mouse_kind = ADBMOUSE_TRACKBALL; |
---|
| 1051 | + desc = "trackman/mouseman"; |
---|
1057 | 1052 | init_trackball(id); |
---|
1058 | 1053 | } |
---|
1059 | 1054 | else if ((req.reply_len >= 4) && |
---|
1060 | 1055 | (req.reply[1] == 0x74) && (req.reply[2] == 0x70) && |
---|
1061 | 1056 | (req.reply[3] == 0x61) && (req.reply[4] == 0x64)) { |
---|
1062 | 1057 | mouse_kind = ADBMOUSE_TRACKPAD; |
---|
| 1058 | + desc = "trackpad"; |
---|
1063 | 1059 | init_trackpad(id); |
---|
1064 | 1060 | } |
---|
1065 | 1061 | else if ((req.reply_len >= 4) && |
---|
1066 | 1062 | (req.reply[1] == 0x4b) && (req.reply[2] == 0x4d) && |
---|
1067 | 1063 | (req.reply[3] == 0x4c) && (req.reply[4] == 0x31)) { |
---|
1068 | 1064 | mouse_kind = ADBMOUSE_TURBOMOUSE5; |
---|
| 1065 | + desc = "TurboMouse 5"; |
---|
1069 | 1066 | init_turbomouse(id); |
---|
1070 | 1067 | } |
---|
1071 | 1068 | else if ((req.reply_len == 9) && |
---|
1072 | 1069 | (req.reply[1] == 0x4b) && (req.reply[2] == 0x4f) && |
---|
1073 | 1070 | (req.reply[3] == 0x49) && (req.reply[4] == 0x54)) { |
---|
1074 | 1071 | if (adb_try_handler_change(id, 0x42)) { |
---|
1075 | | - pr_cont("\nADB MacAlly 2-button mouse at %d, handler set to 0x42", id); |
---|
1076 | 1072 | mouse_kind = ADBMOUSE_MACALLY2; |
---|
| 1073 | + desc = "MacAlly 2-button"; |
---|
1077 | 1074 | } |
---|
1078 | 1075 | } |
---|
1079 | 1076 | } |
---|
1080 | | - pr_cont("\n"); |
---|
1081 | 1077 | |
---|
1082 | 1078 | adb_get_infos(id, &default_id, &cur_handler_id); |
---|
| 1079 | + printk(KERN_DEBUG "ADB mouse (%s) at %d has handler 0x%X\n", |
---|
| 1080 | + desc, id, cur_handler_id); |
---|
1083 | 1081 | reg |= adbhid_input_reregister(id, default_id, org_handler_id, |
---|
1084 | 1082 | cur_handler_id, mouse_kind); |
---|
1085 | 1083 | } |
---|
.. | .. |
---|
1092 | 1090 | struct adb_request req; |
---|
1093 | 1091 | unsigned char r1_buffer[8]; |
---|
1094 | 1092 | |
---|
1095 | | - pr_cont(" (trackpad)"); |
---|
1096 | | - |
---|
1097 | 1093 | adb_request(&req, NULL, ADBREQ_SYNC | ADBREQ_REPLY, 1, |
---|
1098 | 1094 | ADB_READREG(id,1)); |
---|
1099 | 1095 | if (req.reply_len < 8) |
---|
1100 | | - pr_cont("bad length for reg. 1\n"); |
---|
| 1096 | + pr_err("%s: bad length for reg. 1\n", __func__); |
---|
1101 | 1097 | else |
---|
1102 | 1098 | { |
---|
1103 | 1099 | memcpy(r1_buffer, &req.reply[1], 8); |
---|
.. | .. |
---|
1145 | 1141 | { |
---|
1146 | 1142 | struct adb_request req; |
---|
1147 | 1143 | |
---|
1148 | | - pr_cont(" (trackman/mouseman)"); |
---|
1149 | | - |
---|
1150 | 1144 | adb_request(&req, NULL, ADBREQ_SYNC, 3, |
---|
1151 | 1145 | ADB_WRITEREG(id,1), 00,0x81); |
---|
1152 | 1146 | |
---|
.. | .. |
---|
1176 | 1170 | init_turbomouse(int id) |
---|
1177 | 1171 | { |
---|
1178 | 1172 | struct adb_request req; |
---|
1179 | | - |
---|
1180 | | - pr_cont(" (TurboMouse 5)"); |
---|
1181 | 1173 | |
---|
1182 | 1174 | adb_request(&req, NULL, ADBREQ_SYNC, 1, ADB_FLUSH(id)); |
---|
1183 | 1175 | |
---|
.. | .. |
---|
1212 | 1204 | init_microspeed(int id) |
---|
1213 | 1205 | { |
---|
1214 | 1206 | struct adb_request req; |
---|
1215 | | - |
---|
1216 | | - pr_cont(" (Microspeed/MacPoint or compatible)"); |
---|
1217 | 1207 | |
---|
1218 | 1208 | adb_request(&req, NULL, ADBREQ_SYNC, 1, ADB_FLUSH(id)); |
---|
1219 | 1209 | |
---|
.. | .. |
---|
1253 | 1243 | { |
---|
1254 | 1244 | struct adb_request req; |
---|
1255 | 1245 | |
---|
1256 | | - pr_cont(" (Mouse Systems A3 Mouse, or compatible)"); |
---|
1257 | 1246 | adb_request(&req, NULL, ADBREQ_SYNC, 3, |
---|
1258 | 1247 | ADB_WRITEREG(id, 0x2), |
---|
1259 | 1248 | 0x00, |
---|