1. 05 10月, 2017 1 次提交
  2. 03 8月, 2017 4 次提交
    • A
      HID: multitouch: constify attribute_group structures. · 9182fb98
      Arvind Yadav 提交于
      attribute_group are not supposed to change at runtime. All functions
      working with attribute_group provided by <linux/sysfs.h> work with
      const attribute_group. So mark the non-const structs as const.
      Signed-off-by: NArvind Yadav <arvind.yadav.cs@gmail.com>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      9182fb98
    • J
      HID: multitouch: use proper symbolic constant for 0xff310076 application · 39bbf402
      Jiri Kosina 提交于
      0xff310076 application has been defined by 957b8dff ("HID: multitouch:
      Support Asus T304UA media keys") as a vendor-specific application with
      symbolic constant HID_VD_ASUS_CUSTOM_MEDIA_KEYS, so let's make use of
      it.
      
      Fixes: 957b8dff ("HID: multitouch: Support Asus T304UA media keys")
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      39bbf402
    • J
      HID: multitouch: Support Asus T304UA media keys · 957b8dff
      João Paulo Rechi Vita 提交于
      The Asus T304UA convertible sports a magnetic detachable keyboard with
      touchpad, which is connected over USB. Most of the keyboard hotkeys are
      exposed through the same USB interface as the touchpad, defined in the
      report descriptor as follows:
      
      0x06, 0x31, 0xFF,  // Usage Page (Vendor Defined 0xFF31)
      0x09, 0x76,        // Usage (0x76)
      0xA1, 0x01,        // Collection (Application)
      0x05, 0xFF,        //   Usage Page (Reserved 0xFF)
      0x85, 0x5A,        //   Report ID (90)
      0x19, 0x00,        //   Usage Minimum (0x00)
      0x2A, 0xFF, 0x00,  //   Usage Maximum (0xFF)
      0x15, 0x00,        //   Logical Minimum (0)
      0x26, 0xFF, 0x00,  //   Logical Maximum (255)
      0x75, 0x08,        //   Report Size (8)
      0x95, 0x0F,        //   Report Count (15)
      0xB1, 0x02,        //   Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
      0x05, 0xFF,        //   Usage Page (Reserved 0xFF)
      0x85, 0x5A,        //   Report ID (90)
      0x19, 0x00,        //   Usage Minimum (0x00)
      0x2A, 0xFF, 0x00,  //   Usage Maximum (0xFF)
      0x15, 0x00,        //   Logical Minimum (0)
      0x26, 0xFF, 0x00,  //   Logical Maximum (255)
      0x75, 0x08,        //   Report Size (8)
      0x95, 0x02,        //   Report Count (2)
      0x81, 0x02,        //   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
      0xC0,              // End Collection
      
      This UsagePage is declared as a variable, but we need to treat it as an
      array to be able to map each Usage we care about to its corresponding
      input key.
      Signed-off-by: NJoão Paulo Rechi Vita <jprvita@endlessm.com>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      957b8dff
    • J
      HID: multitouch: Support HID_GD_WIRELESS_RADIO_CTLS · 1fbf74ef
      João Paulo Rechi Vita 提交于
      Some keyboard + touchpad devices have the Microsoft Win8 Wireless Radio
      Controls extensions Usage Page define in the touchpad report descriptor,
      so we need to support them in this driver.
      Signed-off-by: NJoão Paulo Rechi Vita <jprvita@endlessm.com>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      1fbf74ef
  3. 13 7月, 2017 1 次提交
  4. 23 6月, 2017 3 次提交
  5. 21 6月, 2017 2 次提交
  6. 06 3月, 2017 1 次提交
    • H
      HID: multitouch: change for touch height/width · e9d0a26d
      HungNien Chen 提交于
      Quoting  from Jonathan Clarke in previous thread(2017/01/24):
      
      "This division by 2 was added along with the touch width/height fields 6 years
      ago so that those fields 'match the visual scale of the touch' for a specific
      device (3M PCT)" "The scaling is also discarding information about touch size
      (1 bit for each of width/height) which is useful for any application that wants
      to know about it."
      
      Jonathan mentioned just what I thought in a new project recently.  It dosen't
      make sense to discard 1 bit width/height in general case according to the spec
      in multi-touch-protocol.txt so I would like to make a slight change here.
      
      A quirk MT_QUIRK_TOUCH_SIZE_SCALING was added to service devices like 3M PCT
      with a special visual scale and the division by 2 only take effect with devices
      like that.
      
      [jkosina@suse.cz: reformat changelog]
      Signed-off-by: NHungNien Chen <hn.chen@weidahitech.com>
      Reviewed-by: NBenjamin Tissoires <benjamin.tissoires@redhat.com>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      e9d0a26d
  7. 03 2月, 2017 1 次提交
  8. 28 11月, 2016 3 次提交
  9. 28 6月, 2016 2 次提交
  10. 01 6月, 2016 1 次提交
  11. 01 4月, 2016 1 次提交
  12. 14 3月, 2016 1 次提交
  13. 08 3月, 2016 1 次提交
  14. 05 2月, 2016 1 次提交
  15. 28 12月, 2015 1 次提交
  16. 02 12月, 2015 1 次提交
    • B
      HID: multitouch: fix input mode switching on some Elan panels · 73e7d63e
      Benjamin Tissoires 提交于
      as reported by https://bugzilla.kernel.org/show_bug.cgi?id=108481
      
      This bug reports mentions 6d4f5440 ("HID: multitouch: Fetch feature
      reports on demand for Win8 devices") as the origin of the problem but this
      commit actually masked 2 firmware bugs that are annihilating each other:
      
      The report descriptor declares two features in reports 3 and 5:
      
      0x05, 0x0d,                    // Usage Page (Digitizers)             318
      0x09, 0x0e,                    // Usage (Device Configuration)        320
      0xa1, 0x01,                    // Collection (Application)            322
      0x85, 0x03,                    //  Report ID (3)                      324
      0x09, 0x22,                    //  Usage (Finger)                     326
      0xa1, 0x00,                    //  Collection (Physical)              328
      0x09, 0x52,                    //   Usage (Inputmode)                 330
      0x15, 0x00,                    //   Logical Minimum (0)               332
      0x25, 0x0a,                    //   Logical Maximum (10)              334
      0x75, 0x08,                    //   Report Size (8)                   336
      0x95, 0x02,                    //   Report Count (2)                  338
      0xb1, 0x02,                    //   Feature (Data,Var,Abs)            340
      0xc0,                          //  End Collection                     342
      0x09, 0x22,                    //  Usage (Finger)                     343
      0xa1, 0x00,                    //  Collection (Physical)              345
      0x85, 0x05,                    //   Report ID (5)                     347
      0x09, 0x57,                    //   Usage (Surface Switch)            349
      0x09, 0x58,                    //   Usage (Button Switch)             351
      0x15, 0x00,                    //   Logical Minimum (0)               353
      0x75, 0x01,                    //   Report Size (1)                   355
      0x95, 0x02,                    //   Report Count (2)                  357
      0x25, 0x03,                    //   Logical Maximum (3)               359
      0xb1, 0x02,                    //   Feature (Data,Var,Abs)            361
      0x95, 0x0e,                    //   Report Count (14)                 363
      0xb1, 0x03,                    //   Feature (Cnst,Var,Abs)            365
      0xc0,                          //  End Collection                     367
      
      The report ID 3 presents 2 input mode features, while only the first one
      is handled by the device. Given that we did not checked if one was
      previously assigned, we were dealing with the ignored featured and we
      should never have been able to switch this panel into the multitouch mode.
      
      However, the firmware presents an other bugs which allowed 6d4f5440
      to counteract the faulty report descriptor. When we request the values
      of the feature 5, the firmware answers "03 03 00". The fields are correct
      but the report id is wrong. Before 6d4f5440, we retrieved all the features
      and injected them in the system. So when we called report 5, we injected
      in the system the report 3 with the values "03 00".
      Setting the second input mode to 03 in this report changed it to "03 03"
      and the touchpad switched to the mt mode. We could have set anything
      in the second field because the actual value (the first 03 in this report)
      was given by the query of report ID 5.
      
      To sum up: 2 bugs in the firmware were hiding that we were accessing the
      wrong feature.
      Signed-off-by: NBenjamin Tissoires <benjamin.tissoires@redhat.com>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      73e7d63e
  17. 26 11月, 2015 1 次提交
  18. 06 11月, 2015 1 次提交
  19. 12 10月, 2015 1 次提交
    • M
      HID: multitouch: Fetch feature reports on demand for Win8 devices · 6d4f5440
      Mika Westerberg 提交于
      Some newer Intel Skylake based Dell laptops with Win8 precision touchpad
      fail when initial feature reports are fetched from it. Below is an example
      output with some additional debug included:
      
       i2c_hid i2c-DLL0704:01: Fetching the HID descriptor
       i2c_hid i2c-DLL0704:01: __i2c_hid_command: cmd=20 00
       i2c_hid i2c-DLL0704:01: HID Descriptor: 1e 00 00 01 99 02 21 00 24 ...
       ...
       i2c_hid i2c-DLL0704:01: i2c_hid_get_report
       i2c_hid i2c-DLL0704:01: __i2c_hid_command: cmd=22 00 38 02 23 00
       i2c_hid i2c-DLL0704:01: report (len=4): 04 00 08 05
       i2c_hid i2c-DLL0704:01: report id 13
       i2c_hid i2c-DLL0704:01: i2c_hid_get_report
       i2c_hid i2c-DLL0704:01: __i2c_hid_command: cmd=22 00 3d 02 23 00
       i2c_hid i2c-DLL0704:01: failed to retrieve report from device.
       i2c_hid i2c-DLL0704:01: report id 7
       i2c_hid i2c-DLL0704:01: i2c_hid_get_report
       i2c_hid i2c-DLL0704:01: __i2c_hid_command: cmd=22 00 37 02 23 00
       i2c_hid i2c-DLL0704:01: report (len=259): 03 01 07 fc 28 fe 84 40 ...
       i2c_hid i2c-DLL0704:01: report id 4
       i2c_hid i2c-DLL0704:01: i2c_hid_get_report
       i2c_hid i2c-DLL0704:01: __i2c_hid_command: cmd=22 00 34 02 23 00
      
      We manage to fetch few reports but then the touchpad dies:
      
       i2c_designware i2c_designware.1: i2c_dw_handle_tx_abort: lost arbitration
       i2c_hid i2c-DLL0704:01: failed to retrieve report from device.
      
      it eventually pulls the whole I2C bus low:
      
       i2c_designware i2c_designware.1: controller timed out
       i2c_hid i2c-DLL0704:01: failed to set a report to device.
      
      Fix this by preventing initial feature report retrieval for Win8 devices.
      Instead we fetch reports as needed in mt_feature_mapping(). This prevents
      fetching reports which might cause problems with the device in question.
      Suggested-by: NBenjamin Tissoires <benjamin.tissoires@redhat.com>
      Signed-off-by: NMika Westerberg <mika.westerberg@linux.intel.com>
      Reviewed-by: NBenjamin Tissoires <benjamin.tissoires@redhat.com>
      Tested-by: NSeth Forshee <seth.forshee@canonical.com>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      6d4f5440
  20. 30 9月, 2015 1 次提交
  21. 29 9月, 2015 1 次提交
  22. 24 7月, 2015 1 次提交
  23. 08 7月, 2015 1 次提交
  24. 12 3月, 2015 1 次提交
  25. 07 3月, 2015 1 次提交
  26. 27 2月, 2015 1 次提交
  27. 02 12月, 2014 1 次提交
  28. 25 11月, 2014 1 次提交
  29. 24 4月, 2014 1 次提交
  30. 20 3月, 2014 1 次提交
  31. 05 3月, 2014 1 次提交