forked from Minki/linux
platform-drivers-x86 MAINTAINERS and fixes for v3.17
toshiba_acpi: Re-enable hotkeys and cleanups ideapad-laptop: Revert touchpad disable, and cleanup static/const usage MAINTAINERS: Update platform-drivers-x86 maintainer and tree -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAABAgAGBQJUB9HMAAoJEKbMaAwKp364ZMsH/iwz14qnEy8RJnKBvwN+Xny4 LqWyP1BMj/lFMuunxS6x6xf9nhi1+RH85K4hesvyJqCM/hUSdPAbDvwrdOr2JZ8t X9UB/r8O5Gw8kEYGmc12uJ4A8C4yTr7oeZ/AqvpsOajbpCahtciLjQQJvi0pA19J Rsz8LMv9Q4ccfQw+6kvtOU0P0ZTKbzBddTnZ0eJ51JQcKyUXMpMlEUdxq44qcOL8 kzWK90sn01weabW16hFjOhzhoZTOBc/IiuhWYM6s9TWc20WUfGM9L6vaMc966CuX Qnn20ZH76VliTqi8UiBBbCTBdH6b3Oxn7o5v9g4D1IISQE8XLoS3IqlLs+R4jjA= =nUTT -----END PGP SIGNATURE----- Merge tag 'platform-drivers-x86-v3.17-1' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86 Pull x86 platform drivers fixes from Darren Hart: "This is my first pull request since taking on maintenance for the platform-drivers-x86 tree from Matthew Garrett. These have passed my build testing and been run through Fengguang's LKP tests. Due to timing this round, these have not spent any time in linux-next. I have asked Stephen to include my for-next branch in linux-next going forward, once he's back from vacation. Details from tag: - toshiba_acpi: re-enable hotkeys and cleanups - ideapad-laptop: revert touchpad disable, and cleanup static/const usage - MAINTAINERS: update platform-drivers-x86 maintainer and tree" * tag 'platform-drivers-x86-v3.17-1' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86: toshiba_acpi: fix and cleanup toshiba_kbd_bl_mode_store() platform/x86: toshiba: re-enable acpi hotkeys after suspend to disk ideapad-laptop: Constify DMI table for real! Revert "ideapad-laptop: Disable touchpad interface on Yoga models" MAINTAINERS: Update platform-drivers-x86 maintainer and tree
This commit is contained in:
commit
0e03f98c46
@ -10070,9 +10070,9 @@ F: Documentation/x86/
|
||||
F: arch/x86/
|
||||
|
||||
X86 PLATFORM DRIVERS
|
||||
M: Matthew Garrett <matthew.garrett@nebula.com>
|
||||
M: Darren Hart <dvhart@infradead.org>
|
||||
L: platform-driver-x86@vger.kernel.org
|
||||
T: git git://cavan.codon.org.uk/platform-drivers-x86.git
|
||||
T: git git://git.infradead.org/users/dvhart/linux-platform-drivers-x86.git
|
||||
S: Maintained
|
||||
F: drivers/platform/x86/
|
||||
|
||||
|
@ -88,7 +88,6 @@ struct ideapad_private {
|
||||
struct dentry *debug;
|
||||
unsigned long cfg;
|
||||
bool has_hw_rfkill_switch;
|
||||
bool has_touchpad_control;
|
||||
};
|
||||
|
||||
static bool no_bt_rfkill;
|
||||
@ -456,7 +455,7 @@ struct ideapad_rfk_data {
|
||||
int type;
|
||||
};
|
||||
|
||||
const const struct ideapad_rfk_data ideapad_rfk_data[] = {
|
||||
static const struct ideapad_rfk_data ideapad_rfk_data[] = {
|
||||
{ "ideapad_wlan", CFG_WIFI_BIT, VPCCMD_W_WIFI, RFKILL_TYPE_WLAN },
|
||||
{ "ideapad_bluetooth", CFG_BT_BIT, VPCCMD_W_BT, RFKILL_TYPE_BLUETOOTH },
|
||||
{ "ideapad_3g", CFG_3G_BIT, VPCCMD_W_3G, RFKILL_TYPE_WWAN },
|
||||
@ -767,9 +766,6 @@ static void ideapad_sync_touchpad_state(struct ideapad_private *priv)
|
||||
{
|
||||
unsigned long value;
|
||||
|
||||
if (!priv->has_touchpad_control)
|
||||
return;
|
||||
|
||||
/* Without reading from EC touchpad LED doesn't switch state */
|
||||
if (!read_ec_data(priv->adev->handle, VPCCMD_R_TOUCHPAD, &value)) {
|
||||
/* Some IdeaPads don't really turn off touchpad - they only
|
||||
@ -833,29 +829,7 @@ static void ideapad_acpi_notify(acpi_handle handle, u32 event, void *data)
|
||||
* always results in 0 on these models, causing ideapad_laptop to wrongly
|
||||
* report all radios as hardware-blocked.
|
||||
*/
|
||||
static struct dmi_system_id no_hw_rfkill_list[] = {
|
||||
{
|
||||
.ident = "Lenovo Yoga 2 11 / 13 / Pro",
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
|
||||
DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo Yoga 2"),
|
||||
},
|
||||
},
|
||||
{}
|
||||
};
|
||||
|
||||
/*
|
||||
* Some models don't offer touchpad ctrl through the ideapad interface, causing
|
||||
* ideapad_sync_touchpad_state to send wrong touchpad enable/disable events.
|
||||
*/
|
||||
static struct dmi_system_id no_touchpad_ctrl_list[] = {
|
||||
{
|
||||
.ident = "Lenovo Yoga 1 series",
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
|
||||
DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo IdeaPad Yoga"),
|
||||
},
|
||||
},
|
||||
static const struct dmi_system_id no_hw_rfkill_list[] = {
|
||||
{
|
||||
.ident = "Lenovo Yoga 2 11 / 13 / Pro",
|
||||
.matches = {
|
||||
@ -889,7 +863,6 @@ static int ideapad_acpi_add(struct platform_device *pdev)
|
||||
priv->adev = adev;
|
||||
priv->platform_device = pdev;
|
||||
priv->has_hw_rfkill_switch = !dmi_check_system(no_hw_rfkill_list);
|
||||
priv->has_touchpad_control = !dmi_check_system(no_touchpad_ctrl_list);
|
||||
|
||||
ret = ideapad_sysfs_init(priv);
|
||||
if (ret)
|
||||
|
@ -1255,10 +1255,15 @@ static ssize_t toshiba_kbd_bl_mode_store(struct device *dev,
|
||||
const char *buf, size_t count)
|
||||
{
|
||||
struct toshiba_acpi_dev *toshiba = dev_get_drvdata(dev);
|
||||
int mode = -1;
|
||||
int time = -1;
|
||||
int mode;
|
||||
int time;
|
||||
int ret;
|
||||
|
||||
if (sscanf(buf, "%i", &mode) != 1 && (mode != 2 || mode != 1))
|
||||
|
||||
ret = kstrtoint(buf, 0, &mode);
|
||||
if (ret)
|
||||
return ret;
|
||||
if (mode != SCI_KBD_MODE_FNZ && mode != SCI_KBD_MODE_AUTO)
|
||||
return -EINVAL;
|
||||
|
||||
/* Set the Keyboard Backlight Mode where:
|
||||
@ -1266,11 +1271,12 @@ static ssize_t toshiba_kbd_bl_mode_store(struct device *dev,
|
||||
* Auto - KBD backlight turns off automatically in given time
|
||||
* FN-Z - KBD backlight "toggles" when hotkey pressed
|
||||
*/
|
||||
if (mode != -1 && toshiba->kbd_mode != mode) {
|
||||
if (toshiba->kbd_mode != mode) {
|
||||
time = toshiba->kbd_time << HCI_MISC_SHIFT;
|
||||
time = time + toshiba->kbd_mode;
|
||||
if (toshiba_kbd_illum_status_set(toshiba, time) < 0)
|
||||
return -EIO;
|
||||
ret = toshiba_kbd_illum_status_set(toshiba, time);
|
||||
if (ret)
|
||||
return ret;
|
||||
toshiba->kbd_mode = mode;
|
||||
}
|
||||
|
||||
@ -1857,9 +1863,16 @@ static int toshiba_acpi_resume(struct device *device)
|
||||
{
|
||||
struct toshiba_acpi_dev *dev = acpi_driver_data(to_acpi_device(device));
|
||||
u32 result;
|
||||
acpi_status status;
|
||||
|
||||
if (dev->hotkey_dev) {
|
||||
status = acpi_evaluate_object(dev->acpi_dev->handle, "ENAB",
|
||||
NULL, NULL);
|
||||
if (ACPI_FAILURE(status))
|
||||
pr_info("Unable to re-enable hotkeys\n");
|
||||
|
||||
if (dev->hotkey_dev)
|
||||
hci_write1(dev, HCI_HOTKEY_EVENT, HCI_HOTKEY_ENABLE, &result);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user