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

Merge tag 'platform-drivers-x86-v4.15-3' of git://git.infradead.org/linux-platform-drivers-x86

Pull x86 platform driver fixes from Darren Hart:

- Correct an error in the evdev protocol in asus-wireless which results
in dropped key events in recent versions of libinput

- Add a quirk for keyboard lighting for a specific Dell laptop

- Silence a static analysis warning regarding unchecked return values
of small kmalloc() allocations in dell-wmi

* tag 'platform-drivers-x86-v4.15-3' of git://git.infradead.org/linux-platform-drivers-x86:
platform/x86: dell-wmi: check for kmalloc() errors
platform/x86: asus-wireless: send an EV_SYN/SYN_REPORT between state changes
platform/x86: dell-laptop: Fix keyboard max lighting for Dell Latitude E6410

+20
+1
drivers/platform/x86/asus-wireless.c
··· 118 118 return; 119 119 } 120 120 input_report_key(data->idev, KEY_RFKILL, 1); 121 + input_sync(data->idev); 121 122 input_report_key(data->idev, KEY_RFKILL, 0); 122 123 input_sync(data->idev); 123 124 }
+17
drivers/platform/x86/dell-laptop.c
··· 37 37 38 38 struct quirk_entry { 39 39 u8 touchpad_led; 40 + u8 kbd_led_levels_off_1; 40 41 41 42 int needs_kbd_timeouts; 42 43 /* ··· 66 65 static struct quirk_entry quirk_dell_xps13_9333 = { 67 66 .needs_kbd_timeouts = 1, 68 67 .kbd_timeouts = { 0, 5, 15, 60, 5 * 60, 15 * 60, -1 }, 68 + }; 69 + 70 + static struct quirk_entry quirk_dell_latitude_e6410 = { 71 + .kbd_led_levels_off_1 = 1, 69 72 }; 70 73 71 74 static struct platform_driver platform_driver = { ··· 273 268 DMI_MATCH(DMI_PRODUCT_NAME, "XPS13 9333"), 274 269 }, 275 270 .driver_data = &quirk_dell_xps13_9333, 271 + }, 272 + { 273 + .callback = dmi_matched, 274 + .ident = "Dell Latitude E6410", 275 + .matches = { 276 + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), 277 + DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6410"), 278 + }, 279 + .driver_data = &quirk_dell_latitude_e6410, 276 280 }, 277 281 { } 278 282 }; ··· 1162 1148 info->triggers = buffer->output[2] & 0xFF; 1163 1149 units = (buffer->output[2] >> 8) & 0xFF; 1164 1150 info->levels = (buffer->output[2] >> 16) & 0xFF; 1151 + 1152 + if (quirks && quirks->kbd_led_levels_off_1 && info->levels) 1153 + info->levels--; 1165 1154 1166 1155 if (units & BIT(0)) 1167 1156 info->seconds = (buffer->output[3] >> 0) & 0xFF;
+2
drivers/platform/x86/dell-wmi.c
··· 639 639 int ret; 640 640 641 641 buffer = kzalloc(sizeof(struct calling_interface_buffer), GFP_KERNEL); 642 + if (!buffer) 643 + return -ENOMEM; 642 644 buffer->cmd_class = CLASS_INFO; 643 645 buffer->cmd_select = SELECT_APP_REGISTRATION; 644 646 buffer->input[0] = 0x10000;