Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
* '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
This commit is contained in:
commit
71c4c8b7c3
6 changed files with 62 additions and 18 deletions
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -470,20 +470,20 @@ static void xpad_irq_out(struct urb *urb)
|
|||
status = urb->status;
|
||||
|
||||
switch (status) {
|
||||
case 0:
|
||||
case 0:
|
||||
/* success */
|
||||
break;
|
||||
case -ECONNRESET:
|
||||
case -ENOENT:
|
||||
case -ESHUTDOWN:
|
||||
/* this urb is terminated, clean up */
|
||||
dbg("%s - urb shutting down with status: %d",
|
||||
__func__, status);
|
||||
return;
|
||||
default:
|
||||
dbg("%s - nonzero urb status received: %d",
|
||||
__func__, status);
|
||||
goto exit;
|
||||
return;
|
||||
|
||||
case -ECONNRESET:
|
||||
case -ENOENT:
|
||||
case -ESHUTDOWN:
|
||||
/* this urb is terminated, clean up */
|
||||
dbg("%s - urb shutting down with status: %d", __func__, status);
|
||||
return;
|
||||
|
||||
default:
|
||||
dbg("%s - nonzero urb status received: %d", __func__, status);
|
||||
goto exit;
|
||||
}
|
||||
|
||||
exit:
|
||||
|
|
|
@ -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,
|
||||
},
|
||||
{ }
|
||||
};
|
||||
|
||||
|
|
|
@ -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,
|
||||
};
|
||||
|
||||
|
|
|
@ -644,6 +644,15 @@ static struct dmi_system_id dmi_ids[] __initdata = {
|
|||
},
|
||||
.driver_data = keymap_fs_amilo_pro_v2000
|
||||
},
|
||||
{
|
||||
.callback = dmi_matched,
|
||||
.ident = "Maxdata Pro 7000 DX",
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "MAXDATA"),
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "Pro 7000"),
|
||||
},
|
||||
.driver_data = keymap_fs_amilo_pro_v2000
|
||||
},
|
||||
{
|
||||
.callback = dmi_matched,
|
||||
.ident = "Fujitsu N3510",
|
||||
|
|
Loading…
Reference in a new issue