Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 71c4c8b7 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
  Input: atkbd - add force relese key quirk for Soltech TA12
  Input: fix EVIOCGNAME/JSIOCGNAME regression
  Input: atkbd - add forced release keys quirk for FSC Amilo Pi 3525
  Input: pcspkr - switch driver to dev_pm_ops
  Input: xpad - don't resend successfully sent outgoing requests
  Input: wistron_btns - recognize Maxdata Pro 7000 notebooks
parents 3730793d 032e46cb
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -608,8 +608,7 @@ static long evdev_do_ioctl(struct file *file, unsigned int cmd,
						    p, compat_mode);

			if (_IOC_NR(cmd) == _IOC_NR(EVIOCGNAME(0)))
				return str_to_user(dev_name(&evdev->dev),
						   _IOC_SIZE(cmd), p);
				return str_to_user(dev->name, _IOC_SIZE(cmd), p);

			if (_IOC_NR(cmd) == _IOC_NR(EVIOCGPHYS(0)))
				return str_to_user(dev->phys, _IOC_SIZE(cmd), p);
+1 −1
Original line number Diff line number Diff line
@@ -536,7 +536,7 @@ static int joydev_ioctl_common(struct joydev *joydev,
	default:
		if ((cmd & ~IOCSIZE_MASK) == JSIOCGNAME(0)) {
			int len;
			const char *name = dev_name(&dev->dev);
			const char *name = dev->name;

			if (!name)
				return 0;
+13 −13
Original line number Diff line number Diff line
@@ -472,17 +472,17 @@ static void xpad_irq_out(struct urb *urb)
	switch (status) {
	case 0:
		/* success */
		break;
		return;

	case -ECONNRESET:
	case -ENOENT:
	case -ESHUTDOWN:
		/* this urb is terminated, clean up */
			dbg("%s - urb shutting down with status: %d",
				__func__, status);
		dbg("%s - urb shutting down with status: %d", __func__, status);
		return;

	default:
			dbg("%s - nonzero urb status received: %d",
				__func__, status);
		dbg("%s - nonzero urb status received: %d", __func__, status);
		goto exit;
	}

+32 −0
Original line number Diff line number Diff line
@@ -894,6 +894,13 @@ static unsigned int atkbd_amilo_pa1510_forced_release_keys[] = {
	0xb0, 0xae, -1U
};

/*
 * Amilo Pi 3525 key release for Fn+Volume keys not working
 */
static unsigned int atkbd_amilo_pi3525_forced_release_keys[] = {
	0x20, 0xa0, 0x2e, 0xae, 0x30, 0xb0, -1U
};

/*
 * Amilo Xi 3650 key release for light touch bar not working
 */
@@ -901,6 +908,13 @@ static unsigned int atkbd_amilo_xi3650_forced_release_keys[] = {
	0x67, 0xed, 0x90, 0xa2, 0x99, 0xa4, 0xae, 0xb0, -1U
};

/*
 * Soltech TA12 system with broken key release on volume keys and mute key
 */
static unsigned int atkdb_soltech_ta12_forced_release_keys[] = {
	0xa0, 0xae, 0xb0, -1U
};

/*
 * atkbd_set_keycode_table() initializes keyboard's keycode table
 * according to the selected scancode set
@@ -1567,6 +1581,15 @@ static struct dmi_system_id atkbd_dmi_quirk_table[] __initdata = {
		.callback = atkbd_setup_forced_release,
		.driver_data = atkbd_amilo_pa1510_forced_release_keys,
	},
	{
		.ident = "Fujitsu Amilo Pi 3525",
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"),
			DMI_MATCH(DMI_PRODUCT_NAME, "AMILO Pi 3525"),
		},
		.callback = atkbd_setup_forced_release,
		.driver_data = atkbd_amilo_pi3525_forced_release_keys,
	},
	{
		.ident = "Fujitsu Amilo Xi 3650",
		.matches = {
@@ -1576,6 +1599,15 @@ static struct dmi_system_id atkbd_dmi_quirk_table[] __initdata = {
		.callback = atkbd_setup_forced_release,
		.driver_data = atkbd_amilo_xi3650_forced_release_keys,
	},
	{
		.ident = "Soltech Corporation TA12",
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "Soltech Corporation"),
			DMI_MATCH(DMI_PRODUCT_NAME, "TA12"),
		},
		.callback = atkbd_setup_forced_release,
		.driver_data = atkdb_soltech_ta12_forced_release_keys,
	},
	{ }
};

+6 −2
Original line number Diff line number Diff line
@@ -114,7 +114,7 @@ static int __devexit pcspkr_remove(struct platform_device *dev)
	return 0;
}

static int pcspkr_suspend(struct platform_device *dev, pm_message_t state)
static int pcspkr_suspend(struct device *dev)
{
	pcspkr_event(NULL, EV_SND, SND_BELL, 0);

@@ -127,14 +127,18 @@ static void pcspkr_shutdown(struct platform_device *dev)
	pcspkr_event(NULL, EV_SND, SND_BELL, 0);
}

static struct dev_pm_ops pcspkr_pm_ops = {
	.suspend = pcspkr_suspend,
};

static struct platform_driver pcspkr_platform_driver = {
	.driver		= {
		.name	= "pcspkr",
		.owner	= THIS_MODULE,
		.pm	= &pcspkr_pm_ops,
	},
	.probe		= pcspkr_probe,
	.remove		= __devexit_p(pcspkr_remove),
	.suspend	= pcspkr_suspend,
	.shutdown	= pcspkr_shutdown,
};

Loading