1. 23 Feb, 2021 7 commits
  2. 18 Feb, 2021 1 commit
    • Jason Gerecke's avatar
      HID: wacom: Ignore attempts to overwrite the touch_max value from HID · 88f38846
      Jason Gerecke authored
      The `wacom_feature_mapping` function is careful to only set the the
      touch_max value a single time, but this care does not extend to the
      `wacom_wac_finger_event` function. In particular, if a device sends
      multiple HID_DG_CONTACTMAX items in a single feature report, the
      driver will end up retaining the value of last item.
      
      The HID descriptor for the Cintiq Companion 2 does exactly this. It
      incorrectly sets a "Report Count" of 2, which will cause the driver
      to process two HID_DG_CONTACTCOUNT items. The first item has the actual
      count, while the second item should have been declared as a constant
      zero. The constant zero is the value the driver ends up using, however,
      since it is the last HID_DG_CONTACTCOUNT in the report.
      
          Report ID (16),
          Usage (Contact Count Maximum),  ; Contact count maximum (55h, static value)
          Report Count (2),
          Logical Maximum (10),
          Feature (Variable),
      
      To address this, we add a check that the touch_max is not already set
      within the `wacom_wac_finger_event` function that processes the
      HID_DG_TOUCHMAX item. We emit a warning if the value is set and ignore
      the updated value.
      
      This could potentially cause problems if there is a tablet which has
      a similar issue but requires the last item to be used. This is unlikely,
      however, since it would have to have a different non-zero value for
      HID_DG_CONTACTMAX earlier in the same report, which makes no sense
      except in the case of a firmware bug. Note that cases where the
      HID_DG_CONTACTMAX items are in different reports is already handled
      (and similarly ignored) by `wacom_feature_mapping` as mentioned above.
      
      Link: https://github.com/linuxwacom/input-wacom/issues/223
      Fixes: 184eccd4 ("HID: wacom: generic: read HID_DG_CONTACTMAX from any feature report")
      Signed-off-by: default avatarJason Gerecke <jason.gerecke@wacom.com>
      CC: stable@vger.kernel.org
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      88f38846
  3. 09 Feb, 2021 4 commits
    • Hans de Goede's avatar
      HID: ite: Enable QUIRK_TOUCHPAD_ON_OFF_REPORT on Acer Aspire Switch 10E · b7c20f38
      Hans de Goede authored
      The Acer Aspire Switch 10E (SW3-016)'s keyboard-dock uses the same USB-ids
      as the Acer One S1003 keyboard-dock. Yet they are not entirely the same:
      
      1. The S1003 keyboard-dock has the same report descriptors as the
      S1002 keyboard-dock (which has different USB-ids)
      
      2. The Acer Aspire Switch 10E's keyboard-dock has different
      report descriptors from the S1002/S1003 keyboard docks and it
      sends 0x00880078 / 0x00880079 usage events when the touchpad is
      toggled on/off (which is handled internally).
      
      This means that all Acer kbd-docks handled by the hid-ite.c drivers
      report their touchpad being toggled on/off through these custom
      usage-codes with the exception of the S1003 dock, which likely is
      a bug of that dock.
      
      Add a QUIRK_TOUCHPAD_ON_OFF_REPORT quirk for the Aspire Switch 10E / S1003
      usb-id so that the touchpad toggling will get reported to userspace on
      the Aspire Switch 10E.
      
      Since the Aspire Switch 10E's kbd-dock has different report-descriptors,
      this also requires adding support for fixing those to ite_report_fixup().
      
      Setting the quirk will also cause ite_report_fixup() to hit the
      S1002/S1003 descriptors path on the S1003. Since the S1003 kbd-dock
      never generates any input-reports for the fixed up part of the
      descriptors this does not matter; and if there are versions out there
      which do actually send input-reports for the touchpad-toggle then the
      fixup should actually help to make things work.
      
      This was tested on both an Acer Aspire Switch 10E and on an Acer One S1003.
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      b7c20f38
    • Elia Devito's avatar
      HID: Ignore battery for Elan touchscreen on HP Spectre X360 15-df0xxx · decfe496
      Elia Devito authored
      Battery status is reported for the HP Spectre X360 Convertible 15-df0xxx
      even if it does not have a battery. Prevent it to always report the
      battery as low.
      Signed-off-by: default avatarElia Devito <eliadevito@gmail.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      decfe496
    • Filipe Laíns's avatar
      HID: logitech-dj: add support for the new lightspeed connection iteration · fab3a956
      Filipe Laíns authored
      This new connection type is the new iteration of the Lightspeed
      connection and will probably be used in some of the newer gaming
      devices. It is currently use in the G Pro X Superlight.
      
      This patch should be backported to older versions, as currently the
      driver will panic when seing the unsupported connection. This isn't
      an issue when using the receiver that came with the device, as Logitech
      has been using different PIDs when they change the connection type, but
      is an issue when using a generic receiver (well, generic Lightspeed
      receiver), which is the case of the one in the Powerplay mat. Currently,
      the only generic Ligthspeed receiver we support, and the only one that
      exists AFAIK, is ther Powerplay.
      
      As it stands, the driver will panic when seeing a G Pro X Superlight
      connected to the Powerplay receiver and won't send any input events to
      userspace! The kernel will warn about this so the issue should be easy
      to identify, but it is still very worrying how hard it will fail :(
      
      [915977.398471] logitech-djreceiver 0003:046D:C53A.0107: unusable device of type UNKNOWN (0x0f) connected on slot 1
      Signed-off-by: default avatarFilipe Laíns <lains@riseup.net>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      fab3a956
    • You-Sheng Yang's avatar
      HID: intel-ish-hid: ipc: Add Tiger Lake H PCI device ID · 2aefba19
      You-Sheng Yang authored
      Added Tiger Lake H PCI device ID to the supported device list.
      Signed-off-by: default avatarYou-Sheng Yang <vicamo.yang@canonical.com>
      Acked-by: default avatarSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      2aefba19
  4. 05 Feb, 2021 5 commits
  5. 02 Feb, 2021 2 commits
    • Nicolas Boichat's avatar
      HID: google: Get HID report on probe to confirm tablet switch state · df7b6229
      Nicolas Boichat authored
      This forces reading the base folded state anytime the device is
      probed, to make sure it's in sync.
      
      This is useful after a reboot, if the device re-enumerates for
      any reason (e.g. ESD shock), or if the driver is unbound/rebound
      (debugging/testing).
      
      Without this, the tablet switch state is only synchronized after a
      key is pressed (since the device would then send a report that
      includes the switch state), leading to strange UX (e.g. UI
      mode changes when a key is pressed after reboot).
      
      This is not a problem on detachable base attach, as the device,
      by itself, sends a report after it is booted up.
      Signed-off-by: default avatarNicolas Boichat <drinkcat@chromium.org>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      df7b6229
    • Dmitry Torokhov's avatar
      HID: hid-input: avoid splitting keyboard, system and consumer controls · 7c7d7ac7
      Dmitry Torokhov authored
      A typical USB keyboard usually splits its keys into several reports:
      
      - one for the basic alphanumeric keys, modifier keys, F<n> keys, six pack
        keys and keypad. This report's application is normally listed as
        GenericDesktop.Keyboard
      - a GenericDesktop.SystemControl report for the system control keys, such
        as power and sleep
      - Consumer.ConsumerControl report for multimedia (forward, rewind,
        play/pause, mute, etc) and other extended keys.
      - additional output, vendor specific, and feature reports
      
      Splitting each report into a separate input device is wasteful and even
      hurts userspace as it makes it harder to determine the true capabilities
      (set of available keys) of a keyboard, so let's adjust application
      matching to merge system control and consumer control reports with
      keyboard report, if one has already been processed.
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      Acked-by: default avatarPeter Hutterer <peter.hutterer@who-t.net>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      7c7d7ac7
  6. 28 Jan, 2021 5 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid · 25221c99
      Linus Torvalds authored
      Pull HID fixes from Jiri Kosina:
      
       - NULL pointer dereference regression fix for Wacom driver (Jason
         Gerecke)
      
       - functional regression fix for pam handling on some Elan and Synaptics
         touchpads (Kai-Heng Feng)
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid:
        HID: wacom: Correct NULL dereference on AES pen proximity
        HID: multitouch: Apply MT_QUIRK_CONFIDENCE quirk for multi-input devices
      25221c99
    • Linus Torvalds's avatar
      Merge tag 'media/v5.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · fc856f1d
      Linus Torvalds authored
      Pull media fixes from Mauro Carvalho Chehab:
      
       - a V4L2 core regression at videobuf2 when checking for single-plane
         dmabuf
      
       - a change at uAPI header v4l2-subdev.h, fixing a breakage as BIT()
         macro is not available in userspace
      
       - fix some regressions at RC core due to the usage of microseconds
         everywhere on it
      
       - a fix for a race condition at RC core
      
       - a rename on a newly-introduced kAPI symbol (v4l2_get_link_rate),
         currently used only by a single driver
      
       - Regression fixes for rcar-vin, cedrus, ite-cir, hantro, css, venus,
         and cec drivers.
      
      * tag 'media/v5.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
        media: hantro: Fix reset_raw_fmt initialization
        media: cec: add stm32 driver
        media: cedrus: Fix H264 decoding
        media: v4l2-subdev.h: BIT() is not available in userspace
        media: Revert "media: videobuf2: Fix length check for single plane dmabuf queueing"
        media: rc: ite-cir: fix min_timeout calculation
        media: venus: core: Fix platform driver shutdown
        media: rc: fix timeout handling after switch to microsecond durations
        media: v4l: common: Fix naming of v4l2_get_link_rate
        media: rcar-vin: fix return, use ret instead of zero
        media: ccs: Get static data version minor correctly
        media: ccs-pll: Fix link frequency for C-PHY
        media: rc: ensure that uevent can be read directly after rc device register
      fc856f1d
    • Linus Torvalds's avatar
      Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · a467b073
      Linus Torvalds authored
      Pull clk fixes from Stephen Boyd:
       "A handful of clk driver fixes:
      
         - Build fix for CONFIG_PM=n in the mmp2 driver
      
         - Kconfig warning for unmet dependencies in the i.MX driver
      
         - Make the camera AHB clk always be enabled on qcom sc7180
      
         - Use rate round down semantics for qcom sm8250 SD clks"
      
      * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
        clk: mmp2: fix build without CONFIG_PM
        clk: qcom: gcc-sm250: Use floor ops for sdcc clks
        clk: imx: fix Kconfig warning for i.MX SCU clk
        clk: qcom: gcc-sc7180: Mark the camera abh clock always ON
      a467b073
    • Linus Torvalds's avatar
      Merge tag 'sound-5.11-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · be4a3385
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Although the incoming fixes haven't settled down yet, all changes here
        are small and mostly device-specific fixes, so nothing look worrisome.
      
         - Yet another USB-audio regression fixes
      
         - HD-audio ID fix and device-specific quirks
      
         - SOF Intel / SoundWire fixes including topology
      
         - ASoC Qualcomm and Mediatek fixes"
      
      * tag 'sound-5.11-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (24 commits)
        ALSA: hda/via: Apply the workaround generically for Clevo machines
        ASoC: Intel: sof_sdw: set proper flags for Dell TGL-H SKU 0A5E
        ASoC: qcom: lpass: Fix out-of-bounds DAI ID lookup
        ASoC: mediatek: mt8192-mt6359: add format constraints for RT5682
        ASoC: ak4458: correct reset polarity
        ASoC: SOF: SND_INTEL_DSP_CONFIG dependency
        ASoC: SOF: Intel: soundwire: fix select/depend unmet dependencies
        ALSA: hda: intel-dsp-config: add PCI id for TGL-H
        ALSA: usb-audio: workaround for iface reset issue
        ALSA: pcm: One more dependency for hw constraints
        ALSA: hda/realtek: Enable headset of ASUS B1400CEPE with ALC256
        ASoC: Intel: Skylake: Zero snd_ctl_elem_value
        ASoC: Intel: Skylake: skl-topology: Fix OOPs ib skl_tplg_complete
        ASoC: qcom: Fix number of HDMI RDMA channels on sc7180
        ASoC: mediatek: mt8183-da7219: ignore TDM DAI link by default
        ASoC: mediatek: mt8183-mt6358: ignore TDM DAI link by default
        ASoC: topology: Properly unregister DAI on removal
        ASoC: topology: Fix memory corruption in soc_tplg_denum_create_values()
        ASoC: qcom: lpass-ipq806x: fix bitwidth regmap field
        ASoC: AMD Renoir - refine DMI entries for some Lenovo products
        ...
      be4a3385
    • Wang Hai's avatar
      Revert "mm/slub: fix a memory leak in sysfs_slab_add()" · 757fed1d
      Wang Hai authored
      This reverts commit dde3c6b7.
      
      syzbot report a double-free bug. The following case can cause this bug.
      
       - mm/slab_common.c: create_cache(): if the __kmem_cache_create() fails,
         it does:
      
      	out_free_cache:
      		kmem_cache_free(kmem_cache, s);
      
       - but __kmem_cache_create() - at least for slub() - will have done
      
      	sysfs_slab_add(s)
      		-> sysfs_create_group() .. fails ..
      		-> kobject_del(&s->kobj); .. which frees s ...
      
      We can't remove the kmem_cache_free() in create_cache(), because other
      error cases of __kmem_cache_create() do not free this.
      
      So, revert the commit dde3c6b7 ("mm/slub: fix a memory leak in
      sysfs_slab_add()") to fix this.
      
      Reported-by: syzbot+d0bd96b4696c1ef67991@syzkaller.appspotmail.com
      Fixes: dde3c6b7 ("mm/slub: fix a memory leak in sysfs_slab_add()")
      Acked-by: default avatarVlastimil Babka <vbabka@suse.cz>
      Signed-off-by: default avatarWang Hai <wanghai38@huawei.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      757fed1d
  7. 27 Jan, 2021 1 commit
  8. 26 Jan, 2021 15 commits