Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'for-6.13/core' into for-linus

- assorted cleanups and small code fixes (Dmitry Torokhov, Yan Zhen,
Nathan Chancellor, Andy Shevchenko)

+55 -75
+1 -1
drivers/hid/hid-asus.c
··· 1183 1183 1184 1184 if (drvdata->quirks & QUIRK_G752_KEYBOARD && 1185 1185 *rsize == 75 && rdesc[61] == 0x15 && rdesc[62] == 0x00) { 1186 - /* report is missing usage mninum and maximum */ 1186 + /* report is missing usage minimum and maximum */ 1187 1187 __u8 *new_rdesc; 1188 1188 size_t new_size = *rsize + sizeof(asus_g752_fixed_rdesc); 1189 1189
+40 -58
drivers/hid/hid-core.c
··· 46 46 MODULE_PARM_DESC(ignore_special_drivers, "Ignore any special drivers and handle all devices by generic driver"); 47 47 48 48 /* 49 + * Convert a signed n-bit integer to signed 32-bit integer. 50 + */ 51 + 52 + static s32 snto32(__u32 value, unsigned int n) 53 + { 54 + if (!value || !n) 55 + return 0; 56 + 57 + if (n > 32) 58 + n = 32; 59 + 60 + return sign_extend32(value, n - 1); 61 + } 62 + 63 + /* 64 + * Convert a signed 32-bit integer to a signed n-bit integer. 65 + */ 66 + 67 + static u32 s32ton(__s32 value, unsigned int n) 68 + { 69 + s32 a = value >> (n - 1); 70 + 71 + if (a && a != -1) 72 + return value < 0 ? 1 << (n - 1) : (1 << (n - 1)) - 1; 73 + return value & ((1 << n) - 1); 74 + } 75 + 76 + /* 49 77 * Register a new report for a device. 50 78 */ 51 79 ··· 453 425 * both this and the standard encoding. */ 454 426 raw_value = item_sdata(item); 455 427 if (!(raw_value & 0xfffffff0)) 456 - parser->global.unit_exponent = hid_snto32(raw_value, 4); 428 + parser->global.unit_exponent = snto32(raw_value, 4); 457 429 else 458 430 parser->global.unit_exponent = raw_value; 459 431 return 0; ··· 782 754 } 783 755 784 756 item->format = HID_ITEM_FORMAT_SHORT; 785 - item->size = b & 3; 757 + item->size = BIT(b & 3) >> 1; /* 0, 1, 2, 3 -> 0, 1, 2, 4 */ 758 + 759 + if (end - start < item->size) 760 + return NULL; 786 761 787 762 switch (item->size) { 788 763 case 0: 789 - return start; 764 + break; 790 765 791 766 case 1: 792 - if ((end - start) < 1) 793 - return NULL; 794 - item->data.u8 = *start++; 795 - return start; 767 + item->data.u8 = *start; 768 + break; 796 769 797 770 case 2: 798 - if ((end - start) < 2) 799 - return NULL; 800 771 item->data.u16 = get_unaligned_le16(start); 801 - start = (__u8 *)((__le16 *)start + 1); 802 - return start; 772 + break; 803 773 804 - case 3: 805 - item->size++; 806 - if ((end - start) < 4) 807 - return NULL; 774 + case 4: 808 775 item->data.u32 = get_unaligned_le32(start); 809 - start = (__u8 *)((__le32 *)start + 1); 810 - return start; 776 + break; 811 777 } 812 778 813 - return NULL; 779 + return start + item->size; 814 780 } 815 781 816 782 static void hid_scan_input_usage(struct hid_parser *parser, u32 usage) ··· 1336 1314 return ret; 1337 1315 } 1338 1316 EXPORT_SYMBOL_GPL(hid_open_report); 1339 - 1340 - /* 1341 - * Convert a signed n-bit integer to signed 32-bit integer. Common 1342 - * cases are done through the compiler, the screwed things has to be 1343 - * done by hand. 1344 - */ 1345 - 1346 - static s32 snto32(__u32 value, unsigned n) 1347 - { 1348 - if (!value || !n) 1349 - return 0; 1350 - 1351 - if (n > 32) 1352 - n = 32; 1353 - 1354 - switch (n) { 1355 - case 8: return ((__s8)value); 1356 - case 16: return ((__s16)value); 1357 - case 32: return ((__s32)value); 1358 - } 1359 - return value & (1 << (n - 1)) ? value | (~0U << n) : value; 1360 - } 1361 - 1362 - s32 hid_snto32(__u32 value, unsigned n) 1363 - { 1364 - return snto32(value, n); 1365 - } 1366 - EXPORT_SYMBOL_GPL(hid_snto32); 1367 - 1368 - /* 1369 - * Convert a signed 32-bit integer to a signed n-bit integer. 1370 - */ 1371 - 1372 - static u32 s32ton(__s32 value, unsigned n) 1373 - { 1374 - s32 a = value >> (n - 1); 1375 - if (a && a != -1) 1376 - return value < 0 ? 1 << (n - 1) : (1 << (n - 1)) - 1; 1377 - return value & ((1 << n) - 1); 1378 - } 1379 1317 1380 1318 /* 1381 1319 * Extract/implement a data field from/to a little endian report (bit array).
+4 -5
drivers/hid/hid-debug.c
··· 3309 3309 [KEY_EPG] = "EPG", [KEY_PVR] = "PVR", 3310 3310 [KEY_MHP] = "MHP", [KEY_LANGUAGE] = "Language", 3311 3311 [KEY_TITLE] = "Title", [KEY_SUBTITLE] = "Subtitle", 3312 - [KEY_ANGLE] = "Angle", [KEY_ZOOM] = "Zoom", 3312 + [KEY_ANGLE] = "Angle", 3313 3313 [KEY_MODE] = "Mode", [KEY_KEYBOARD] = "Keyboard", 3314 - [KEY_SCREEN] = "Screen", [KEY_PC] = "PC", 3314 + [KEY_PC] = "PC", 3315 3315 [KEY_TV] = "TV", [KEY_TV2] = "TV2", 3316 3316 [KEY_VCR] = "VCR", [KEY_VCR2] = "VCR2", 3317 3317 [KEY_SAT] = "Sat", [KEY_SAT2] = "Sat2", ··· 3409 3409 [BTN_TRIGGER_HAPPY35] = "TriggerHappy35", [BTN_TRIGGER_HAPPY36] = "TriggerHappy36", 3410 3410 [BTN_TRIGGER_HAPPY37] = "TriggerHappy37", [BTN_TRIGGER_HAPPY38] = "TriggerHappy38", 3411 3411 [BTN_TRIGGER_HAPPY39] = "TriggerHappy39", [BTN_TRIGGER_HAPPY40] = "TriggerHappy40", 3412 - [BTN_DIGI] = "Digi", [BTN_STYLUS3] = "Stylus3", 3413 - [BTN_TOOL_QUINTTAP] = "ToolQuintTap", [BTN_WHEEL] = "Wheel", 3412 + [BTN_STYLUS3] = "Stylus3", [BTN_TOOL_QUINTTAP] = "ToolQuintTap", 3414 3413 [KEY_10CHANNELSDOWN] = "10ChannelsDown", 3415 3414 [KEY_10CHANNELSUP] = "10ChannelsUp", 3416 3415 [KEY_3D_MODE] = "3DMode", [KEY_ADDRESSBOOK] = "Addressbook", ··· 3439 3440 [KEY_FN_RIGHT_SHIFT] = "FnRightShift", [KEY_FRAMEBACK] = "FrameBack", 3440 3441 [KEY_FRAMEFORWARD] = "FrameForward", [KEY_FULL_SCREEN] = "FullScreen", 3441 3442 [KEY_GAMES] = "Games", [KEY_GRAPHICSEDITOR] = "GraphicsEditor", 3442 - [KEY_HANGEUL] = "HanGeul", [KEY_HANGUP_PHONE] = "HangUpPhone", 3443 + [KEY_HANGUP_PHONE] = "HangUpPhone", 3443 3444 [KEY_IMAGES] = "Images", [KEY_KBD_LCD_MENU1] = "KbdLcdMenu1", 3444 3445 [KEY_KBD_LCD_MENU2] = "KbdLcdMenu2", [KEY_KBD_LCD_MENU3] = "KbdLcdMenu3", 3445 3446 [KEY_KBD_LCD_MENU4] = "KbdLcdMenu4", [KEY_KBD_LCD_MENU5] = "KbdLcdMenu5",
+4 -4
drivers/hid/hid-logitech-hidpp.c
··· 2498 2498 /* regular effect destroyed */ 2499 2499 data->effect_ids[wd->params[0]-1] = -1; 2500 2500 else if (wd->effect_id >= HIDPP_FF_EFFECTID_AUTOCENTER) 2501 - /* autocenter spring destoyed */ 2501 + /* autocenter spring destroyed */ 2502 2502 data->slot_autocenter = 0; 2503 2503 break; 2504 2504 case HIDPP_FF_SET_GLOBAL_GAINS: ··· 3271 3271 120); 3272 3272 } 3273 3273 3274 - v = hid_snto32(hid_field_extract(hdev, data+3, 0, 12), 12); 3274 + v = sign_extend32(hid_field_extract(hdev, data + 3, 0, 12), 11); 3275 3275 input_report_rel(hidpp->input, REL_X, v); 3276 3276 3277 - v = hid_snto32(hid_field_extract(hdev, data+3, 12, 12), 12); 3277 + v = sign_extend32(hid_field_extract(hdev, data + 3, 12, 12), 11); 3278 3278 input_report_rel(hidpp->input, REL_Y, v); 3279 3279 3280 - v = hid_snto32(data[6], 8); 3280 + v = sign_extend32(data[6], 7); 3281 3281 if (v != 0) 3282 3282 hidpp_scroll_counter_handle_scroll(hidpp->input, 3283 3283 &hidpp->vertical_wheel_counter, v);
+1 -1
drivers/hid/hid-picolcd_fb.c
··· 296 296 /* make sure no work is deferred */ 297 297 fb_deferred_io_cleanup(info); 298 298 299 - /* No thridparty should ever unregister our framebuffer! */ 299 + /* No thirdparty should ever unregister our framebuffer! */ 300 300 WARN_ON(fbdata->picolcd != NULL); 301 301 302 302 vfree((u8 *)info->fix.smem_start);
+1 -1
drivers/hid/hid-sensor-custom.c
··· 946 946 947 947 memcpy(real_usage, match->luid, 4); 948 948 949 - /* usage id are all lowcase */ 949 + /* usage id are all lowercase */ 950 950 for (c = real_usage; *c != '\0'; c++) 951 951 *c = tolower(*c); 952 952
+1 -1
drivers/hid/hid-steam.c
··· 253 253 ID_CONTROLLER_DECK_STATE = 9 254 254 }; 255 255 256 - /* String attribute idenitifiers */ 256 + /* String attribute identifiers */ 257 257 enum { 258 258 ATTRIB_STR_BOARD_SERIAL, 259 259 ATTRIB_STR_UNIT_SERIAL,
+1 -1
drivers/hid/intel-ish-hid/ishtp-fw-loader.c
··· 793 793 if (rv < 0) 794 794 goto end_err_fw_release; 795 795 796 - /* Step 3: Start ISH main firmware exeuction */ 796 + /* Step 3: Start ISH main firmware execution */ 797 797 798 798 rv = ish_fw_start(client_data); 799 799 if (rv < 0)
+1 -1
drivers/hid/intel-ish-hid/ishtp/client.c
··· 863 863 /* Send ipc fragment */ 864 864 ishtp_hdr.length = dev->mtu; 865 865 ishtp_hdr.msg_complete = 0; 866 - /* All fregments submitted to IPC queue with no callback */ 866 + /* All fragments submitted to IPC queue with no callback */ 867 867 ishtp_write_message(dev, &ishtp_hdr, pmsg); 868 868 cl->tx_offs += dev->mtu; 869 869 rem = cl_msg->send_buf.size - cl->tx_offs;
+1 -1
drivers/hid/usbhid/hid-core.c
··· 1100 1100 1101 1101 interval = endpoint->bInterval; 1102 1102 1103 - /* Some vendors give fullspeed interval on highspeed devides */ 1103 + /* Some vendors give fullspeed interval on highspeed devices */ 1104 1104 if (hid->quirks & HID_QUIRK_FULLSPEED_INTERVAL && 1105 1105 dev->speed == USB_SPEED_HIGH) { 1106 1106 interval = fls(endpoint->bInterval*8);
-1
include/linux/hid.h
··· 974 974 struct hid_driver *hdrv); 975 975 bool hid_compare_device_paths(struct hid_device *hdev_a, 976 976 struct hid_device *hdev_b, char separator); 977 - s32 hid_snto32(__u32 value, unsigned n); 978 977 __u32 hid_field_extract(const struct hid_device *hid, __u8 *report, 979 978 unsigned offset, unsigned n); 980 979