Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 24 Mar 2017 02:51:06 +0000 (19:51 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 24 Mar 2017 02:51:06 +0000 (19:51 -0700)
Pull input fixes from Dmitry Torokhov:
 "Fixes to various USB drivers to validate existence of endpoints before
  trying to use them, fixes to APLS v8 protocol, and a couple of i8042
  quirks"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
  Input: ALPS - fix trackstick button handling on V8 devices
  Input: ALPS - fix V8+ protocol handling (73 03 28)
  Input: sur40 - validate number of endpoints before using them
  Input: kbtab - validate number of endpoints before using them
  Input: hanwang - validate number of endpoints before using them
  Input: yealink - validate number of endpoints before using them
  Input: ims-pcu - validate number of endpoints before using them
  Input: cm109 - validate number of endpoints before using them
  Input: iforce - validate number of endpoints before using them
  Input: elan_i2c - add ASUS EeeBook X205TA special touchpad fw
  Input: i8042 - add TUXEDO BU1406 (N24_25BU) to the nomux list
  Input: synaptics-rmi4 - prevent null pointer dereference in f30
  Input: i8042 - add noloop quirk for Dell Embedded Box PC 3000

1  2 
drivers/input/rmi4/rmi_f30.c

@@@ -170,6 -170,10 +170,10 @@@ static int rmi_f30_config(struct rmi_fu
                                rmi_get_platform_data(fn->rmi_dev);
        int error;
  
+       /* can happen if f30_data.disable is set */
+       if (!f30)
+               return 0;
        if (pdata->f30_data.trackstick_buttons) {
                /* Try [re-]establish link to F03. */
                f30->f03 = rmi_find_function(fn->rmi_dev, 0x03);
@@@ -258,10 -262,9 +262,10 @@@ static int rmi_f30_map_gpios(struct rmi
  
        /*
         * Buttonpad could be also inferred from f30->has_mech_mouse_btns,
 -       * but I am not sure, so use only the pdata info.
 +       * but I am not sure, so use only the pdata info and the number of
 +       * mapped buttons.
         */
 -      if (pdata->f30_data.buttonpad)
 +      if (pdata->f30_data.buttonpad || (button - BTN_LEFT == 1))
                __set_bit(INPUT_PROP_BUTTONPAD, input->propbit);
  
        return 0;