Commit graph

721777 commits

Author SHA1 Message Date
Vadim Pasternak
4abdbfa733 platform/mellanox: mlxreg-hotplug: Remove unused wait.h include
The driver does not make use of anything defined in wait.h.

Signed-off-by: Vadim Pasternak <vadimp@mellanox.com>
Acked-by: Andy Shevchenko <andy.shevchenko@gmail.com>
[dvhart: refactor into smaller functional changes, leave spinlock.h]
Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
2018-01-31 10:36:49 -08:00
Vadim Pasternak
1f976f6978 platform/x86: Move Mellanox platform hotplug driver to platform/mellanox
In preparation for making the hotplug driver build for different
architectures, move mlxcpld-hotplug.c to platform/mellanox and the
header to include/linux/platform_data as mlxreg.h to reflect the new
interface changes to come.

Replace references to CPLD with REG throughout the files, consistent
with the new name.

Signed-off-by: Vadim Pasternak <vadimp@mellanox.com>
Acked-by: Andy Shevchenko <andy.shevchenko@gmail.com>
[dvhart: update copyright, rewrite commit message]
Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
2018-01-31 10:36:48 -08:00
Lukas Wunner
d6fa7588fd Revert "apple-gmux: lock iGP IO to protect from vgaarb changes"
Commit 4eebd5a4e7 ("apple-gmux: lock iGP IO to protect from vgaarb
changes") amended this driver's ->probe hook to lock decoding of normal
(non-legacy) I/O space accesses to the integrated GPU on dual-GPU
MacBook Pros.  The lock stays in place until the driver is unbound.

The change was made to work around an issue with the out-of-tree nvidia
graphics driver (available at http://www.nvidia.com/object/unix.html).
It contains the following sequence in nvidia/nv.c:

	#if defined(CONFIG_VGA_ARB) && !defined(NVCPU_PPC64LE)
	#if defined(VGA_DEFAULT_DEVICE)
	    vga_tryget(VGA_DEFAULT_DEVICE, VGA_RSRC_LEGACY_MASK);
	#endif
	    vga_set_legacy_decoding(dev, VGA_RSRC_NONE);
	#endif

This code was reported to cause deadlocks with VFIO already in 2013:
https://devtalk.nvidia.com/default/topic/545560

I've reported the issue to Nvidia developers once more in 2017:
https://www.spinics.net/lists/dri-devel/msg138754.html

On the MacBookPro10,1, this code apparently breaks backlight control
(which is handled by apple-gmux via an I/O region starting at 0x700),
as reported by Petri Hodju:
https://bugzilla.kernel.org/show_bug.cgi?id=86121

I tried to replicate Petri's observations on my MacBook9,1, which uses
the same Intel Ivy Bridge + Nvidia GeForce GT 650M architecture, to no
avail.  On my machine apple-gmux' I/O region remains accessible even
with the nvidia driver loaded and commit 4eebd5a4e7 reverted.
Petri reported that apple-gmux becomes accessible again after a
suspend/resume cycle because the BIOS changed the VGA routing on the
root port to the Nvidia GPU.  Perhaps this is a BIOS issue after all
that can be fixed with an update?

In any case, the change made by commit 4eebd5a4e7 has turned out to
cause two new issues:

* Wilfried Klaebe reports a deadlock when launching Xorg because it
  opens /dev/vga_arbiter and calls vga_get(), but apple-gmux is holding
  a lock on I/O space indefinitely.  It looks like apple-gmux' current
  behavior is an abuse of the vgaarb API as locks are not meant to be
  held for longer periods:
  https://bugzilla.kernel.org/show_bug.cgi?id=88861#c11
  https://bugzilla.kernel.org/attachment.cgi?id=217541

* On dual GPU MacBook Pros introduced since 2013, the integrated GPU is
  powergated on boot und thus becomes invisible to Linux unless a custom
  EFI protocol is used to leave it powered on.  (A patch exists but is
  not in mainline yet due to several negative side effects.)  On these
  machines, locking I/O to the integrated GPU (as done by 4eebd5a4e7)
  fails and backlight control is therefore broken:
  https://bugzilla.kernel.org/show_bug.cgi?id=105051

So let's revert commit 4eebd5a4e7 please.  Users experiencing the
issue with the proprietary nvidia driver can comment out the above-
quoted problematic code as a workaround (or try updating the BIOS).

Cc: Petri Hodju <petrihodju@yahoo.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Bruno Prémont <bonbons@linux-vserver.org>
Cc: Andy Ritger <aritger@nvidia.com>
Cc: Ronald Tschalär <ronald@innovation.ch>
Tested-by: Wilfried Klaebe <linux-kernel@lebenslange-mailadresse.de>
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Cc: stable@vger.kernel.org
Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
2018-01-31 10:35:35 -08:00
Hans de Goede
e5778689a9 platform/x86: GPD pocket fan: Stop work on suspend
Stop the work on suspend, otherwise it may run between our suspend method
running and the system suspending, possibly restarting the fan which
we've just stopped.

Note we already requeue the work on resume, so that we get a fresh speed
at resume.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2018-01-29 20:44:16 +02:00
Hans de Goede
594ce6db32 platform/x86: GPD pocket fan: Use a min-speed of 2 while charging
Newer versions of the GPD pocket BIOS set the fan-speed to 2 when a
charger gets plugged in while the device is off. Mirror this in our
fan driver and use a minimum speed of 2 while charging,

Cc: James <kernel@madingley.org>
Suggested-by: James <kernel@madingley.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2018-01-29 20:44:15 +02:00
Hans de Goede
d890acf728 platform/x86: GPD pocket fan: Set speed to max on get_temp failure
When we fail to get the temperature, assume the worst and set the speed
to max.

While at it introduce a define for MAX_SPEED.

Cc: James <kernel@madingley.org>
Suggested-by: James <kernel@madingley.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2018-01-29 20:44:15 +02:00
Rajneesh Bhardwaj
00f8b2fce4 platform/x86: intel_pmc_core: Convert to ICPU macro
Use ICPU macro to refactor code related to x86_cpu_id for better
readability.

Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Rajneesh Bhardwaj <rajneesh.bhardwaj@intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2018-01-29 20:44:15 +02:00
Srinivas Pandruvada
21ae435709 platform/x86: intel_pmc_core: Substitute PCI with CPUID enumeration
The Only use of PCI device enumeration here is to get the PMC base address
which is a fixed value i.e. 0xFE000000. On some platforms this can be read
through a non standard PCI BAR. But after Kabylake, PMC is not exposed as a
PCI device anymore. There are other non standard methods like ACPI LPIT
which can also be used for obtaining this value.

For simplicity, this value can be hardcoded as it won't change.

Since we don't have a PMC PCI device on any platform after Kabylake, this
creates a foundation for future SoC support.

Signed-off-by: Rajneesh Bhardwaj <rajneesh.bhardwaj@intel.com>
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2018-01-29 20:44:15 +02:00
Rajneesh Bhardwaj
750e0f570b platform/x86: intel_pmc_core: Refactor debugfs entries
When on a platform if we can't show MPHY and PLL status, don't even bother
to create a debugfs entry as it will fail anyway. In fact unless OEM builds
a special BIOS for test, it will fail on every production system.

This will help to add future platform support where we can't support these
entries.

Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Rajneesh Bhardwaj <rajneesh.bhardwaj@intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2018-01-29 20:44:15 +02:00
Mario Limonciello
7dc5ff66c2 platform/x86: dell-smbios: Correct notation for filtering
The class/select were mistakenly put into octal notation but
intended to be in decimal notation.

Suggested-by: Pali Rohar <pali.rohar@gmail.com>
Signed-off-by: Mario Limonciello <mario.limonciello@dell.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2018-01-29 20:44:15 +02:00
Alexander Abrosimov
fe48613878 platform/x86: dell-laptop: Add 2-in-1 devices to the DMI whitelist
SMBIOS 3.0.0 Specification introduced new Chassis Types field values for
2-in-1 devices like tablets, convertibles and detachables. Dell's
Inspiron 2-in-1 and XPS 2-in-1 fall into this category and they have to
be added to the DMI whitelist, so rfkill and backlight can be controlled
for them as for other laptops.

Signed-off-by: Alexander Abrosimov <alexander.n.abrosimov@gmail.com>
Reviewed-by: Mario Limonciello <mario.limonciello@dell.com>
Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
2018-01-26 15:41:58 -08:00
Alberto Ponces
c58a4f2215 platform/x86: silead_dmi: Add Teclast X3 Plus tablet support
Add touchscreen platform data for the Teclast X3 Plus tablet.

Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Alberto Ponces <ponces26@gmail.com>
Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
2018-01-25 14:29:58 -08:00
David Herrmann
587d8628fb platform/x86: thinkpad_acpi: suppress warning about palm detection
This patch prevents the thinkpad_acpi driver from warning about 2 event
codes returned for keyboard palm-detection. No behavioral changes,
other than suppressing the warning in the kernel log. The events are
still forwarded via acpi-netlink channels.

We could, optionally, decide to forward the event through a
input-switch on the tpacpi input device. However, so far no suitable
input-code exists, and no similar drivers report such events. Hence,
leave it an acpi event for now.

Note that the event-codes are named based on empirical studies. On the
ThinkPad X1 5th Gen the sensor can be found underneath the arrow key.

Cc: Matthew Thode <mthode@mthode.org>
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
Acked-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2018-01-24 08:39:06 +02:00
Hans de Goede
4245c15542 platform/x86: silead_dmi: Add entry for newer BIOS for Trekstor Surftab 7.0
Some versions of the Trekstor Surftab 7.0 ship with a newer BIOS which uses
different DMI strings.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
2018-01-20 10:18:36 -08:00
Hans de Goede
4d6bde512a platform/x86: dell-laptop: Filter out spurious keyboard backlight change events
On some Dell XPS models WMI events of type 0x0000 reporting a keycode of
0xe00c get reported when the brightness of the LCD panel changes.

This leads to us reporting false-positive kbd_led change events to
userspace which in turn leads to the kbd backlight OSD showing when it
should not.

We already read the current keyboard backlight brightness value when
reporting events because the led_classdev_notify_brightness_hw_changed
API requires this. Compare this value to the last known value and filter
out duplicate events, fixing this.

Note the fixed issue is esp. a problem on XPS models with an ambient light
sensor and automatic brightness adjustments turned on, this causes the kbd
backlight OSD to show all the time there.

BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1514969
Fixes: 9c656b0799 ("platform/x86: dell-*: Call new led hw_changed API ...")
Acked-by: Pali Rohár <pali.rohar@gmail.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2018-01-16 17:24:15 +02:00
Rajneesh Bhardwaj
c4abf92d4f platform/x86: intel_pmc_core: Update Kconfig
This adds list of supported features by this driver to the Kconfig.

Signed-off-by: Rajneesh Bhardwaj <rajneesh.bhardwaj@intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2018-01-16 17:24:15 +02:00
Rajneesh Bhardwaj
1f644da7e9 platform/x86: intel_pmc_core: Fix file permission warnings
Symbolic permissions 'S_IRUGO' are not preferred. This patch changes the
debugfs files to use octal permissions '0644' or '0444' as needed by the
attribute.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Rajneesh Bhardwaj <rajneesh.bhardwaj@intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2018-01-16 17:24:15 +02:00
Srinivas Pandruvada
2854a0aa82 platform/x86: intel_pmc_core: Change driver to a module
Allow the driver to be a module since builtin_pci_driver funtionality is no
longer needed.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Rajneesh Bhardwaj <rajneesh.bhardwaj@intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2018-01-16 17:24:15 +02:00
Rajneesh Bhardwaj
7fc658923a platform/x86: intel_pmc_core: Fix kernel doc for pmc_dev
Fix invalid field information and add missing fields in kernel doc comments.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Rajneesh Bhardwaj <rajneesh.bhardwaj@intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2018-01-16 17:24:15 +02:00
Rajneesh Bhardwaj
8c9180dd2c platform/x86: intel_pmc_core: Remove unused variable
base_address field is redundant and unused in the driver so get rid of it.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Rajneesh Bhardwaj <rajneesh.bhardwaj@intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2018-01-16 17:24:15 +02:00
Rajneesh Bhardwaj
12d614a0dc platform/x86: intel_pmc_core: Remove unused EXPORTED API
Though ChromeOs uses the exported API as part of their S0ix failsafe
mechanism, there is no active consumer of this API in upstream kernel.

We can revisit this when ChromeOs kernel team is able to get their S0ix
failsafe framework in mainline.

Cc: Derek Basehore <dbasehore@chromium.org>
Cc: Rajat Jain <rajatja@google.com>
Link: https://patchwork.kernel.org/patch/9831229/

Suggested-by: Andriy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Rajneesh Bhardwaj <rajneesh.bhardwaj@intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2018-01-16 17:24:14 +02:00
Randy Dunlap
4f258cf401 platform/x86: have ACPI_CMPC use depends instead of select for INPUT
Drivers should not 'select' a subsystem. Instead they should depend
on it. If the subsystem is disabled, the user probably did that for
a purpose and one driver shouldn't be changing that.

This also makes all platform/x86/ drivers consistent w.r.t depending on
INPUT instead of selecting it.

Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Cc: Andy Shevchenko <andy@infradead.org>
Cc: platform-driver-x86@vger.kernel.org
Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
2018-01-15 12:52:07 -08:00
Olle Liljenzin
28d71ae921 platform/x86: ideapad-laptop: Add Y720-15IKB to no_hw_rfkill
Lenovo Legion Y720-15IKB is another Lenovo model without a
hw rfkill switch, resulting in wifi always reported as hard
blocked.

Add the model to the list of models without rfkill switch.

Signed-off-by: Olle Liljenzin <olle@liljenzin.se>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2018-01-08 12:56:29 +02:00
Rafael J. Wysocki
9a1a625918 platform/x86: wmi: Call acpi_wmi_init() later
Calling acpi_wmi_init() at the subsys_initcall() level causes ordering
issues to appear on some systems and they are difficult to reproduce,
because there is no guaranteed ordering between subsys_initcall()
calls, so they may occur in different orders on different systems.

In particular, commit 86d9f48534 (mm/slab: fix kmemcg cache
creation delayed issue) exposed one of these issues where genl_init()
and acpi_wmi_init() are both called at the same initcall level, but
the former must run before the latter so as to avoid a NULL pointer
dereference.

For this reason, move the acpi_wmi_init() invocation to the
initcall_sync level which should still be early enough for things
to work correctly in the WMI land.

Link: https://marc.info/?t=151274596700002&r=1&w=2
Reported-by: Jonathan McDowell <noodles@earth.li>
Reported-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Tested-by: Jonathan McDowell <noodles@earth.li>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
2018-01-05 17:35:27 -08:00
Paul Cercueil
a346aa2040 platform/x86: silead_dmi: Add entry for the Teclast X98 Plus II
Add touchscreen platform data for the Teclast X98 Plus II tablet.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
2018-01-02 15:30:03 -08:00
Hans de Goede
2aeb2c3a2b platform/x86: silead_dmi: Add entry for the Trekstor Primebook C13
Add touchscreen platform data for the Trekstor Primebook C13 laptop.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2017-12-28 11:08:58 +02:00
weiyongjun (A)
e52f6d9fcb platform/x86: dell-laptop: make some local functions static
Fixes the following sparse warnings:

drivers/platform/x86/dell-laptop.c:289:6: warning:
 symbol 'dell_set_arguments' was not declared. Should it be static?
drivers/platform/x86/dell-laptop.c:298:5: warning:
 symbol 'dell_send_request' was not declared. Should it be static?

Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Reviewed-by: Pali Rohár <pali.rohar@gmail.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2017-12-28 10:13:12 +02:00
Hans de Goede
1b46f17d68 platform/x86: Add driver for GPD pocket custom fan controller
Add a driver for the GPD pocket device's custom fan controller, which
gets controlled through 2 GPIOs listed in a FAN02501 ACPI device.

Cc: James <kernel@madingley.org>
Suggested-by: James <kernel@madingley.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2017-12-21 14:56:28 +02:00
Benjamin Berg
26befef00e platform/x86: thinkpad_acpi: Accept flat mode for type 4 multi mode status
On the X1 Yoga 2nd Generation and most likely other notebooks the FLAT
mode is reported. Decode it correctly rather than warning about an
unexpected multi mode status to be reported.

Signed-off-by: Benjamin Berg <bberg@redhat.com>
Cc: Peter FP1 Zhang <zhangfp1@lenovo.com
Cc: Lyude <lyude@redhat.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2017-12-21 14:56:27 +02:00
Geert Uytterhoeven
064cbc4f6a platform/x86: samsung-laptop: Grammar s/are can/can/
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2017-12-21 14:56:27 +02:00
Shih-Yuan Lee (FourDollars)
842b854459 platform/x86: dell-wmi: Add an event created by Dell Latitude 5495
The Dell Latitude 5495 has the mic mute key.

Signed-off-by: Shih-Yuan Lee (FourDollars) <sylee@canonical.com>
Reviewed-by: Pali Rohár <pali.rohar@gmail.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2017-12-21 14:56:27 +02:00
Andy Shevchenko
1ea74a560c platform/x86: pmc_atom: introduce DEFINE_SHOW_ATTRIBUTE() macro
This macro deduplicates a lot of similar code in the pmc_atom.c module.
Targeting to be moved to seq_file.h eventually.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2017-12-21 14:56:26 +02:00
Hans de Goede
f1905b980f platform/x86: silead_dmi: Add entry for the Chuwi Vi8 tablet
Add touchscreen platform data for the Chuwi Vi8 tablet.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2017-12-21 14:56:26 +02:00
Maruyama Shohei
d2d541e839 platform/x86: silead_dmi: add entry for Chuwi Hi8 tablet
This commit add entry for Chuwi Hi8 tablet.

Signed-off-by: Shohei Maruyama <cheat.sc.linux@outlook.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2017-12-21 14:56:26 +02:00
Nerijus Baliunas
170e9a53be platform/x86: silead_dmi: Add support for the Onda oBook 20 Plus tablet
Add touchscreen platform data for the Onda oBook 20 Plus tablet.

Firmware for this is available here:
https://github.com/onitake/gsl-firmware/blob/master/firmware/linux/silead/gsl3676-onda-obook-20-plus.fw

Signed-off-by: Nerijus Baliūnas <nerijus@users.sourceforge.net>
Acked-by: Hans de Goede <hdegoede@redhat.com>
[andy: massaged title and wrote commit message]
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2017-12-21 14:56:26 +02:00
Bernhard Übelacker
f4c12d4dee platform/x86: silead_dmi: Add touchscreen info for SurfTab twin 10.1
Add touchscreen info for the Trekstor SurfTab twin 10.1 ST10432-8
tablet. Resolution based on output of evemu-record.

Signed-off-by: Bernhard Übelacker <bernhardu@mailbox.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2017-12-12 20:22:21 +02:00
Alex Hung
c454a99d4c intel-hid: add a DMI quirk to support Wacom MobileStudio Pro
HEBC method reports capabilities of 5 button array but Wacom
MobileStudio Pro does not have this control method. A DMI quirk
was created to enable 5 button array for this system.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=197991

Reported-by: Jason Gerecke <jason.gerecke@wacom.com>
Signed-off-by: Alex Hung <alex.hung@canonical.com>
Tested-by: Jason Gerecke <jason.gerecke@wacom.com>
Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
2017-12-11 16:43:38 -08:00
Dan Carpenter
91c73e8092 platform/x86: dell-wmi: check for kmalloc() errors
This allocation won't fail in the current kernel because it's small but
not checking for kmalloc() failures introduces static checker warnings
so let's fix it.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Mario Limonciello <mario.limonciello@dell.com>
Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
2017-12-11 16:32:30 -08:00
Peter Hutterer
9cd5cf3710 platform/x86: asus-wireless: send an EV_SYN/SYN_REPORT between state changes
Sending the switch state change twice within the same frame is invalid
evdev protocol and only works if the client handles keys immediately as
well. Processing events immediately is incorrect, it forces a fake
order of events that does not exist on the device.

Recent versions of libinput changed to only process the device state and
SYN_REPORT time, so now the key event is lost.

https://bugs.freedesktop.org/show_bug.cgi?id=104041

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
2017-12-11 16:31:07 -08:00
Darren Hart (VMware)
9606520468 MAINTAINERS: Update tree for platform-drivers-x86
Update the tree listed for X86 PLATFORM DRIVERS to its new top level
reposority at infradead. The old one is an alias to the new one, but
we prefer to remove the "user/dvhart" from the URL.

Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
2017-12-11 16:31:07 -08:00
Jiaxun Yang
ae7c8cba32 platform/x86: ideapad-laptop: add lenovo RESCUER R720-15IKBN to no_hw_rfkill_list
This model does not have a hardware rfkill switch, add it to the
no_hw_rfkill_list to prevent the radio always being blocked.

Reported-by: Roger Jargoyhen <rjargoyhen@gmail.com>
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
2017-12-11 16:31:06 -08:00
Jiaxun Yang
f1395edbce platform/x86: ideapad-laptop: Use __func__ instead of write_ec_cmd in pr_err
Address the following  checkpatch warning by using __func__ instead:
WARNING: Prefer using '"%s...", __func__' to using 'write_ec_cmd',
this function's name, in a string

Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
2017-12-11 16:31:05 -08:00
Jiaxun Yang
ba3a33876e platform/x86: ideapad-laptop: Remove unnecessary else
Address the following checkpatch warning by removing unnecessary else
blocks:
WARNING: else is not generally useful after a break or return

Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
2017-12-11 16:31:04 -08:00
Darren Hart (VMware)
1c3fdf125e platform/x86: intel-vbtn: Simplify autorelease logic
The new notify_handler logic determining if autorelease should be used or
not is a bit awkward, and can result in more than one call to
sparse_keymap_report_event for the same event (scancode). The nesting
and long lines also made it difficult to read.

Simplify the logic by eliminating a level of nesting with a goto and
always calculate autorelease and val so we can make a single call to
sparse_keymap_report_event.

Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
Reviewed-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Tested-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Cc: AceLan Kao <acelan.kao@canonical.com>
2017-12-11 16:30:51 -08:00
Stefan Brüns
9678d0ef77 platform/x86: intel-vbtn: support panel front button
The Lenovo Helix 2 and Dell XPS 12 (9Q33) have an extra button on the
front showing a 'Windows' logo, both reporting event codes 0xC2/0xC3
on press/release. On the Dell, both press/release are distinct events
while on the Helix 2 both events are generated on release.

Tested on XPS 12, for info on the Helix 2 see:
https://www.spinics.net/lists/ibm-acpi-devel/msg03982.html

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
2017-12-08 13:54:43 -08:00
Stefan Brüns
3d5d95d316 platform/x86: intel-vbtn: support KEY_ROTATE_LOCK_TOGGLE
The Rotate Lock button event is emitted on the XPS 12 (BIOS A8, but not
on BIOS A2).

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
2017-12-08 13:54:43 -08:00
Stefan Brüns
4982327ff6 Input: add KEY_ROTATE_LOCK_TOGGLE
The key has the same use as the SW_ROTATE_LOCK, but is used on devices
where the state is not tracked by the hardware but has to be handled
in software.

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
2017-12-08 13:54:43 -08:00
Stefan Brüns
95f38fd46c platform/x86: intel-vbtn: Support separate press/release events
Currently all key events use autorelease, but this forbids use as a
modifier key.

As all event codes come in even/odd pairs, we can lookup the key type
(KE_KEY/KE_IGNORE) for the key up event corresponding to the currently
handled key down event. If the key up is ignored, we keep setting the
autorelease flag for the key down.

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
2017-12-08 13:54:43 -08:00
Stefan Brüns
1c82849622 platform/x86: intel-vbtn: support SW_TABLET_MODE
Event code 0xcc is emitted by several convertibles (Dell XPS 12 9Q33 BIOS
A8, Dell XPS 13 2in1 9365, HP Spectre x360, Lenovo Thinkpad Helix) when
entering tablet mode, and 0xcd on return to laptop mode.

Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
2017-12-08 13:54:42 -08:00
Pali Rohár
1e478ac198 platform/x86: dell-laptop: Use bool in struct quirk_entry for true/false fields
In struct quirk_entry some boolean fields used int, some u8 type. Change
them all to bool type.

Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
2017-12-08 13:40:21 -08:00