diff options
| -rw-r--r-- | Documentation/kernel-parameters.txt | 2 | ||||
| -rw-r--r-- | drivers/input/keyboard/opencores-kbd.c | 2 | ||||
| -rw-r--r-- | drivers/input/keyboard/stmpe-keypad.c | 2 | ||||
| -rw-r--r-- | drivers/input/misc/ims-pcu.c | 2 | ||||
| -rw-r--r-- | drivers/input/misc/max77693-haptic.c | 5 | ||||
| -rw-r--r-- | drivers/input/misc/soc_button_array.c | 2 | ||||
| -rw-r--r-- | drivers/input/mouse/psmouse-base.c | 7 | ||||
| -rw-r--r-- | drivers/input/mouse/vsxxxaa.c | 2 | ||||
| -rw-r--r-- | drivers/input/serio/altera_ps2.c | 4 | ||||
| -rw-r--r-- | drivers/input/serio/i8042-x86ia64io.h | 297 | ||||
| -rw-r--r-- | drivers/input/serio/i8042.c | 2 | ||||
| -rw-r--r-- | drivers/input/touchscreen/wm97xx-core.c | 4 |
12 files changed, 302 insertions, 29 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index db034a5912e7..4c81a860cc2b 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
| @@ -1264,7 +1264,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
| 1264 | i8042.noloop [HW] Disable the AUX Loopback command while probing | 1264 | i8042.noloop [HW] Disable the AUX Loopback command while probing |
| 1265 | for the AUX port | 1265 | for the AUX port |
| 1266 | i8042.nomux [HW] Don't check presence of an active multiplexing | 1266 | i8042.nomux [HW] Don't check presence of an active multiplexing |
| 1267 | controller. Default: true. | 1267 | controller |
| 1268 | i8042.nopnp [HW] Don't use ACPIPnP / PnPBIOS to discover KBD/AUX | 1268 | i8042.nopnp [HW] Don't use ACPIPnP / PnPBIOS to discover KBD/AUX |
| 1269 | controllers | 1269 | controllers |
| 1270 | i8042.notimeout [HW] Ignore timeout condition signalled by controller | 1270 | i8042.notimeout [HW] Ignore timeout condition signalled by controller |
diff --git a/drivers/input/keyboard/opencores-kbd.c b/drivers/input/keyboard/opencores-kbd.c index 62abe2c16670..f8502bb29176 100644 --- a/drivers/input/keyboard/opencores-kbd.c +++ b/drivers/input/keyboard/opencores-kbd.c | |||
| @@ -70,7 +70,7 @@ static int opencores_kbd_probe(struct platform_device *pdev) | |||
| 70 | 70 | ||
| 71 | opencores_kbd->addr = devm_ioremap_resource(&pdev->dev, res); | 71 | opencores_kbd->addr = devm_ioremap_resource(&pdev->dev, res); |
| 72 | if (IS_ERR(opencores_kbd->addr)) | 72 | if (IS_ERR(opencores_kbd->addr)) |
| 73 | error = PTR_ERR(opencores_kbd->addr); | 73 | return PTR_ERR(opencores_kbd->addr); |
| 74 | 74 | ||
| 75 | input->name = pdev->name; | 75 | input->name = pdev->name; |
| 76 | input->phys = "opencores-kbd/input0"; | 76 | input->phys = "opencores-kbd/input0"; |
diff --git a/drivers/input/keyboard/stmpe-keypad.c b/drivers/input/keyboard/stmpe-keypad.c index c6727dda68f2..ef5e67fb567e 100644 --- a/drivers/input/keyboard/stmpe-keypad.c +++ b/drivers/input/keyboard/stmpe-keypad.c | |||
| @@ -86,7 +86,7 @@ static const struct stmpe_keypad_variant stmpe_keypad_variants[] = { | |||
| 86 | .max_cols = 8, | 86 | .max_cols = 8, |
| 87 | .max_rows = 12, | 87 | .max_rows = 12, |
| 88 | .col_gpios = 0x0000ff, /* GPIO 0 - 7*/ | 88 | .col_gpios = 0x0000ff, /* GPIO 0 - 7*/ |
| 89 | .row_gpios = 0x1fef00, /* GPIO 8-14, 16-20 */ | 89 | .row_gpios = 0x1f7f00, /* GPIO 8-14, 16-20 */ |
| 90 | }, | 90 | }, |
| 91 | [STMPE2403] = { | 91 | [STMPE2403] = { |
| 92 | .auto_increment = true, | 92 | .auto_increment = true, |
diff --git a/drivers/input/misc/ims-pcu.c b/drivers/input/misc/ims-pcu.c index 719410feb84b..afed8e2b2f94 100644 --- a/drivers/input/misc/ims-pcu.c +++ b/drivers/input/misc/ims-pcu.c | |||
| @@ -1381,7 +1381,7 @@ static ssize_t ims_pcu_ofn_reg_addr_store(struct device *dev, | |||
| 1381 | pcu->ofn_reg_addr = value; | 1381 | pcu->ofn_reg_addr = value; |
| 1382 | mutex_unlock(&pcu->cmd_mutex); | 1382 | mutex_unlock(&pcu->cmd_mutex); |
| 1383 | 1383 | ||
| 1384 | return error ?: count; | 1384 | return count; |
| 1385 | } | 1385 | } |
| 1386 | 1386 | ||
| 1387 | static DEVICE_ATTR(reg_addr, S_IRUGO | S_IWUSR, | 1387 | static DEVICE_ATTR(reg_addr, S_IRUGO | S_IWUSR, |
diff --git a/drivers/input/misc/max77693-haptic.c b/drivers/input/misc/max77693-haptic.c index 7b1fde93799e..ef6a9d650d69 100644 --- a/drivers/input/misc/max77693-haptic.c +++ b/drivers/input/misc/max77693-haptic.c | |||
| @@ -194,7 +194,7 @@ static int max77693_haptic_play_effect(struct input_dev *dev, void *data, | |||
| 194 | struct ff_effect *effect) | 194 | struct ff_effect *effect) |
| 195 | { | 195 | { |
| 196 | struct max77693_haptic *haptic = input_get_drvdata(dev); | 196 | struct max77693_haptic *haptic = input_get_drvdata(dev); |
| 197 | uint64_t period_mag_multi; | 197 | u64 period_mag_multi; |
| 198 | 198 | ||
| 199 | haptic->magnitude = effect->u.rumble.strong_magnitude; | 199 | haptic->magnitude = effect->u.rumble.strong_magnitude; |
| 200 | if (!haptic->magnitude) | 200 | if (!haptic->magnitude) |
| @@ -205,8 +205,7 @@ static int max77693_haptic_play_effect(struct input_dev *dev, void *data, | |||
| 205 | * The formula to convert magnitude to pwm_duty as follows: | 205 | * The formula to convert magnitude to pwm_duty as follows: |
| 206 | * - pwm_duty = (magnitude * pwm_period) / MAX_MAGNITUDE(0xFFFF) | 206 | * - pwm_duty = (magnitude * pwm_period) / MAX_MAGNITUDE(0xFFFF) |
| 207 | */ | 207 | */ |
| 208 | period_mag_multi = (int64_t)(haptic->pwm_dev->period * | 208 | period_mag_multi = (u64)haptic->pwm_dev->period * haptic->magnitude; |
| 209 | haptic->magnitude); | ||
| 210 | haptic->pwm_duty = (unsigned int)(period_mag_multi >> | 209 | haptic->pwm_duty = (unsigned int)(period_mag_multi >> |
| 211 | MAX_MAGNITUDE_SHIFT); | 210 | MAX_MAGNITUDE_SHIFT); |
| 212 | 211 | ||
diff --git a/drivers/input/misc/soc_button_array.c b/drivers/input/misc/soc_button_array.c index 735604753568..e097f1ab427f 100644 --- a/drivers/input/misc/soc_button_array.c +++ b/drivers/input/misc/soc_button_array.c | |||
| @@ -55,7 +55,7 @@ static int soc_button_lookup_gpio(struct device *dev, int acpi_index) | |||
| 55 | struct gpio_desc *desc; | 55 | struct gpio_desc *desc; |
| 56 | int gpio; | 56 | int gpio; |
| 57 | 57 | ||
| 58 | desc = gpiod_get_index(dev, KBUILD_MODNAME, acpi_index); | 58 | desc = gpiod_get_index(dev, KBUILD_MODNAME, acpi_index, GPIOD_ASIS); |
| 59 | if (IS_ERR(desc)) | 59 | if (IS_ERR(desc)) |
| 60 | return PTR_ERR(desc); | 60 | return PTR_ERR(desc); |
| 61 | 61 | ||
diff --git a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c index 26994f6a2b2a..95a3a6e2faf6 100644 --- a/drivers/input/mouse/psmouse-base.c +++ b/drivers/input/mouse/psmouse-base.c | |||
| @@ -1536,16 +1536,9 @@ static int psmouse_reconnect(struct serio *serio) | |||
| 1536 | { | 1536 | { |
| 1537 | struct psmouse *psmouse = serio_get_drvdata(serio); | 1537 | struct psmouse *psmouse = serio_get_drvdata(serio); |
| 1538 | struct psmouse *parent = NULL; | 1538 | struct psmouse *parent = NULL; |
| 1539 | struct serio_driver *drv = serio->drv; | ||
| 1540 | unsigned char type; | 1539 | unsigned char type; |
| 1541 | int rc = -1; | 1540 | int rc = -1; |
| 1542 | 1541 | ||
| 1543 | if (!drv || !psmouse) { | ||
| 1544 | psmouse_dbg(psmouse, | ||
| 1545 | "reconnect request, but serio is disconnected, ignoring...\n"); | ||
| 1546 | return -1; | ||
| 1547 | } | ||
| 1548 | |||
| 1549 | mutex_lock(&psmouse_mutex); | 1542 | mutex_lock(&psmouse_mutex); |
| 1550 | 1543 | ||
| 1551 | if (serio->parent && serio->id.type == SERIO_PS_PSTHRU) { | 1544 | if (serio->parent && serio->id.type == SERIO_PS_PSTHRU) { |
diff --git a/drivers/input/mouse/vsxxxaa.c b/drivers/input/mouse/vsxxxaa.c index 38298232124f..abd494411e69 100644 --- a/drivers/input/mouse/vsxxxaa.c +++ b/drivers/input/mouse/vsxxxaa.c | |||
| @@ -128,7 +128,7 @@ static void vsxxxaa_drop_bytes(struct vsxxxaa *mouse, int num) | |||
| 128 | if (num >= mouse->count) { | 128 | if (num >= mouse->count) { |
| 129 | mouse->count = 0; | 129 | mouse->count = 0; |
| 130 | } else { | 130 | } else { |
| 131 | memmove(mouse->buf, mouse->buf + num - 1, BUFLEN - num); | 131 | memmove(mouse->buf, mouse->buf + num, BUFLEN - num); |
| 132 | mouse->count -= num; | 132 | mouse->count -= num; |
| 133 | } | 133 | } |
| 134 | } | 134 | } |
diff --git a/drivers/input/serio/altera_ps2.c b/drivers/input/serio/altera_ps2.c index cce69d6b9587..58781c8a8aec 100644 --- a/drivers/input/serio/altera_ps2.c +++ b/drivers/input/serio/altera_ps2.c | |||
| @@ -37,7 +37,7 @@ static irqreturn_t altera_ps2_rxint(int irq, void *dev_id) | |||
| 37 | { | 37 | { |
| 38 | struct ps2if *ps2if = dev_id; | 38 | struct ps2if *ps2if = dev_id; |
| 39 | unsigned int status; | 39 | unsigned int status; |
| 40 | int handled = IRQ_NONE; | 40 | irqreturn_t handled = IRQ_NONE; |
| 41 | 41 | ||
| 42 | while ((status = readl(ps2if->base)) & 0xffff0000) { | 42 | while ((status = readl(ps2if->base)) & 0xffff0000) { |
| 43 | serio_interrupt(ps2if->io, status & 0xff, 0); | 43 | serio_interrupt(ps2if->io, status & 0xff, 0); |
| @@ -74,7 +74,7 @@ static void altera_ps2_close(struct serio *io) | |||
| 74 | { | 74 | { |
| 75 | struct ps2if *ps2if = io->port_data; | 75 | struct ps2if *ps2if = io->port_data; |
| 76 | 76 | ||
| 77 | writel(0, ps2if->base); /* disable rx irq */ | 77 | writel(0, ps2if->base + 4); /* disable rx irq */ |
| 78 | } | 78 | } |
| 79 | 79 | ||
| 80 | /* | 80 | /* |
diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h index a0bcbb64d06d..faeeb1372462 100644 --- a/drivers/input/serio/i8042-x86ia64io.h +++ b/drivers/input/serio/i8042-x86ia64io.h | |||
| @@ -207,17 +207,282 @@ static const struct dmi_system_id __initconst i8042_dmi_noloop_table[] = { | |||
| 207 | }; | 207 | }; |
| 208 | 208 | ||
| 209 | /* | 209 | /* |
| 210 | * Some laptops do implement active multiplexing mode correctly; | 210 | * Some Fujitsu notebooks are having trouble with touchpads if |
| 211 | * unfortunately they are in minority. | 211 | * active multiplexing mode is activated. Luckily they don't have |
| 212 | * external PS/2 ports so we can safely disable it. | ||
| 213 | * ... apparently some Toshibas don't like MUX mode either and | ||
| 214 | * die horrible death on reboot. | ||
| 212 | */ | 215 | */ |
| 213 | static const struct dmi_system_id __initconst i8042_dmi_mux_table[] = { | 216 | static const struct dmi_system_id __initconst i8042_dmi_nomux_table[] = { |
| 217 | { | ||
| 218 | /* Fujitsu Lifebook P7010/P7010D */ | ||
| 219 | .matches = { | ||
| 220 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"), | ||
| 221 | DMI_MATCH(DMI_PRODUCT_NAME, "P7010"), | ||
| 222 | }, | ||
| 223 | }, | ||
| 224 | { | ||
| 225 | /* Fujitsu Lifebook P7010 */ | ||
| 226 | .matches = { | ||
| 227 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), | ||
| 228 | DMI_MATCH(DMI_PRODUCT_NAME, "0000000000"), | ||
| 229 | }, | ||
| 230 | }, | ||
| 231 | { | ||
| 232 | /* Fujitsu Lifebook P5020D */ | ||
| 233 | .matches = { | ||
| 234 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"), | ||
| 235 | DMI_MATCH(DMI_PRODUCT_NAME, "LifeBook P Series"), | ||
| 236 | }, | ||
| 237 | }, | ||
| 238 | { | ||
| 239 | /* Fujitsu Lifebook S2000 */ | ||
| 240 | .matches = { | ||
| 241 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"), | ||
| 242 | DMI_MATCH(DMI_PRODUCT_NAME, "LifeBook S Series"), | ||
| 243 | }, | ||
| 244 | }, | ||
| 245 | { | ||
| 246 | /* Fujitsu Lifebook S6230 */ | ||
| 247 | .matches = { | ||
| 248 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"), | ||
| 249 | DMI_MATCH(DMI_PRODUCT_NAME, "LifeBook S6230"), | ||
| 250 | }, | ||
| 251 | }, | ||
| 252 | { | ||
| 253 | /* Fujitsu T70H */ | ||
| 254 | .matches = { | ||
| 255 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"), | ||
| 256 | DMI_MATCH(DMI_PRODUCT_NAME, "FMVLT70H"), | ||
| 257 | }, | ||
| 258 | }, | ||
| 259 | { | ||
| 260 | /* Fujitsu-Siemens Lifebook T3010 */ | ||
| 261 | .matches = { | ||
| 262 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), | ||
| 263 | DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK T3010"), | ||
| 264 | }, | ||
| 265 | }, | ||
| 266 | { | ||
| 267 | /* Fujitsu-Siemens Lifebook E4010 */ | ||
| 268 | .matches = { | ||
| 269 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), | ||
| 270 | DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK E4010"), | ||
| 271 | }, | ||
| 272 | }, | ||
| 273 | { | ||
| 274 | /* Fujitsu-Siemens Amilo Pro 2010 */ | ||
| 275 | .matches = { | ||
| 276 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), | ||
| 277 | DMI_MATCH(DMI_PRODUCT_NAME, "AMILO Pro V2010"), | ||
| 278 | }, | ||
| 279 | }, | ||
| 280 | { | ||
| 281 | /* Fujitsu-Siemens Amilo Pro 2030 */ | ||
| 282 | .matches = { | ||
| 283 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), | ||
| 284 | DMI_MATCH(DMI_PRODUCT_NAME, "AMILO PRO V2030"), | ||
| 285 | }, | ||
| 286 | }, | ||
| 287 | { | ||
| 288 | /* | ||
| 289 | * No data is coming from the touchscreen unless KBC | ||
| 290 | * is in legacy mode. | ||
| 291 | */ | ||
| 292 | /* Panasonic CF-29 */ | ||
| 293 | .matches = { | ||
| 294 | DMI_MATCH(DMI_SYS_VENDOR, "Matsushita"), | ||
| 295 | DMI_MATCH(DMI_PRODUCT_NAME, "CF-29"), | ||
| 296 | }, | ||
| 297 | }, | ||
| 298 | { | ||
| 299 | /* | ||
| 300 | * HP Pavilion DV4017EA - | ||
| 301 | * errors on MUX ports are reported without raising AUXDATA | ||
| 302 | * causing "spurious NAK" messages. | ||
| 303 | */ | ||
| 304 | .matches = { | ||
| 305 | DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), | ||
| 306 | DMI_MATCH(DMI_PRODUCT_NAME, "Pavilion dv4000 (EA032EA#ABF)"), | ||
| 307 | }, | ||
| 308 | }, | ||
| 309 | { | ||
| 310 | /* | ||
| 311 | * HP Pavilion ZT1000 - | ||
| 312 | * like DV4017EA does not raise AUXERR for errors on MUX ports. | ||
| 313 | */ | ||
| 314 | .matches = { | ||
| 315 | DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), | ||
| 316 | DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion Notebook PC"), | ||
| 317 | DMI_MATCH(DMI_PRODUCT_VERSION, "HP Pavilion Notebook ZT1000"), | ||
| 318 | }, | ||
| 319 | }, | ||
| 320 | { | ||
| 321 | /* | ||
| 322 | * HP Pavilion DV4270ca - | ||
| 323 | * like DV4017EA does not raise AUXERR for errors on MUX ports. | ||
| 324 | */ | ||
| 325 | .matches = { | ||
| 326 | DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), | ||
| 327 | DMI_MATCH(DMI_PRODUCT_NAME, "Pavilion dv4000 (EH476UA#ABL)"), | ||
| 328 | }, | ||
| 329 | }, | ||
| 330 | { | ||
| 331 | .matches = { | ||
| 332 | DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), | ||
| 333 | DMI_MATCH(DMI_PRODUCT_NAME, "Satellite P10"), | ||
| 334 | }, | ||
| 335 | }, | ||
| 336 | { | ||
| 337 | .matches = { | ||
| 338 | DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), | ||
| 339 | DMI_MATCH(DMI_PRODUCT_NAME, "EQUIUM A110"), | ||
| 340 | }, | ||
| 341 | }, | ||
| 342 | { | ||
| 343 | .matches = { | ||
| 344 | DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), | ||
| 345 | DMI_MATCH(DMI_PRODUCT_NAME, "SATELLITE C850D"), | ||
| 346 | }, | ||
| 347 | }, | ||
| 348 | { | ||
| 349 | .matches = { | ||
| 350 | DMI_MATCH(DMI_SYS_VENDOR, "ALIENWARE"), | ||
| 351 | DMI_MATCH(DMI_PRODUCT_NAME, "Sentia"), | ||
| 352 | }, | ||
| 353 | }, | ||
| 354 | { | ||
| 355 | /* Sharp Actius MM20 */ | ||
| 356 | .matches = { | ||
| 357 | DMI_MATCH(DMI_SYS_VENDOR, "SHARP"), | ||
| 358 | DMI_MATCH(DMI_PRODUCT_NAME, "PC-MM20 Series"), | ||
| 359 | }, | ||
| 360 | }, | ||
| 361 | { | ||
| 362 | /* Sony Vaio FS-115b */ | ||
| 363 | .matches = { | ||
| 364 | DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), | ||
| 365 | DMI_MATCH(DMI_PRODUCT_NAME, "VGN-FS115B"), | ||
| 366 | }, | ||
| 367 | }, | ||
| 368 | { | ||
| 369 | /* | ||
| 370 | * Sony Vaio FZ-240E - | ||
| 371 | * reset and GET ID commands issued via KBD port are | ||
| 372 | * sometimes being delivered to AUX3. | ||
| 373 | */ | ||
| 374 | .matches = { | ||
| 375 | DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), | ||
| 376 | DMI_MATCH(DMI_PRODUCT_NAME, "VGN-FZ240E"), | ||
| 377 | }, | ||
| 378 | }, | ||
| 214 | { | 379 | { |
| 215 | /* | 380 | /* |
| 216 | * Panasonic CF-18 needs to be in MUX mode since the | 381 | * Most (all?) VAIOs do not have external PS/2 ports nor |
| 217 | * touchscreen is on serio3 and it also has touchpad. | 382 | * they implement active multiplexing properly, and |
| 383 | * MUX discovery usually messes up keyboard/touchpad. | ||
| 218 | */ | 384 | */ |
| 219 | .matches = { | 385 | .matches = { |
| 220 | DMI_MATCH(DMI_PRODUCT_NAME, "CF-18"), | 386 | DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), |
| 387 | DMI_MATCH(DMI_BOARD_NAME, "VAIO"), | ||
| 388 | }, | ||
| 389 | }, | ||
| 390 | { | ||
| 391 | /* Amoi M636/A737 */ | ||
| 392 | .matches = { | ||
| 393 | DMI_MATCH(DMI_SYS_VENDOR, "Amoi Electronics CO.,LTD."), | ||
| 394 | DMI_MATCH(DMI_PRODUCT_NAME, "M636/A737 platform"), | ||
| 395 | }, | ||
| 396 | }, | ||
| 397 | { | ||
| 398 | /* Lenovo 3000 n100 */ | ||
| 399 | .matches = { | ||
| 400 | DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), | ||
| 401 | DMI_MATCH(DMI_PRODUCT_NAME, "076804U"), | ||
| 402 | }, | ||
| 403 | }, | ||
| 404 | { | ||
| 405 | .matches = { | ||
| 406 | DMI_MATCH(DMI_SYS_VENDOR, "Acer"), | ||
| 407 | DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 1360"), | ||
| 408 | }, | ||
| 409 | }, | ||
| 410 | { | ||
| 411 | /* Acer Aspire 5710 */ | ||
| 412 | .matches = { | ||
| 413 | DMI_MATCH(DMI_SYS_VENDOR, "Acer"), | ||
| 414 | DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5710"), | ||
| 415 | }, | ||
| 416 | }, | ||
| 417 | { | ||
| 418 | /* Gericom Bellagio */ | ||
| 419 | .matches = { | ||
| 420 | DMI_MATCH(DMI_SYS_VENDOR, "Gericom"), | ||
| 421 | DMI_MATCH(DMI_PRODUCT_NAME, "N34AS6"), | ||
| 422 | }, | ||
| 423 | }, | ||
| 424 | { | ||
| 425 | /* IBM 2656 */ | ||
| 426 | .matches = { | ||
| 427 | DMI_MATCH(DMI_SYS_VENDOR, "IBM"), | ||
| 428 | DMI_MATCH(DMI_PRODUCT_NAME, "2656"), | ||
| 429 | }, | ||
| 430 | }, | ||
| 431 | { | ||
| 432 | /* Dell XPS M1530 */ | ||
| 433 | .matches = { | ||
| 434 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | ||
| 435 | DMI_MATCH(DMI_PRODUCT_NAME, "XPS M1530"), | ||
| 436 | }, | ||
| 437 | }, | ||
| 438 | { | ||
| 439 | /* Compal HEL80I */ | ||
| 440 | .matches = { | ||
| 441 | DMI_MATCH(DMI_SYS_VENDOR, "COMPAL"), | ||
| 442 | DMI_MATCH(DMI_PRODUCT_NAME, "HEL80I"), | ||
| 443 | }, | ||
| 444 | }, | ||
| 445 | { | ||
| 446 | /* Dell Vostro 1510 */ | ||
| 447 | .matches = { | ||
| 448 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | ||
| 449 | DMI_MATCH(DMI_PRODUCT_NAME, "Vostro1510"), | ||
| 450 | }, | ||
| 451 | }, | ||
| 452 | { | ||
| 453 | /* Acer Aspire 5536 */ | ||
| 454 | .matches = { | ||
| 455 | DMI_MATCH(DMI_SYS_VENDOR, "Acer"), | ||
| 456 | DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5536"), | ||
| 457 | DMI_MATCH(DMI_PRODUCT_VERSION, "0100"), | ||
| 458 | }, | ||
| 459 | }, | ||
| 460 | { | ||
| 461 | /* Dell Vostro V13 */ | ||
| 462 | .matches = { | ||
| 463 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | ||
| 464 | DMI_MATCH(DMI_PRODUCT_NAME, "Vostro V13"), | ||
| 465 | }, | ||
| 466 | }, | ||
| 467 | { | ||
| 468 | /* Newer HP Pavilion dv4 models */ | ||
| 469 | .matches = { | ||
| 470 | DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), | ||
| 471 | DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion dv4 Notebook PC"), | ||
| 472 | }, | ||
| 473 | }, | ||
| 474 | { | ||
| 475 | /* Asus X450LCP */ | ||
| 476 | .matches = { | ||
| 477 | DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), | ||
| 478 | DMI_MATCH(DMI_PRODUCT_NAME, "X450LCP"), | ||
| 479 | }, | ||
| 480 | }, | ||
| 481 | { | ||
| 482 | /* Avatar AVIU-145A6 */ | ||
| 483 | .matches = { | ||
| 484 | DMI_MATCH(DMI_SYS_VENDOR, "Intel"), | ||
| 485 | DMI_MATCH(DMI_PRODUCT_NAME, "IC4I"), | ||
| 221 | }, | 486 | }, |
| 222 | }, | 487 | }, |
| 223 | { } | 488 | { } |
| @@ -364,6 +629,22 @@ static const struct dmi_system_id __initconst i8042_dmi_notimeout_table[] = { | |||
| 364 | }, | 629 | }, |
| 365 | }, | 630 | }, |
| 366 | { | 631 | { |
| 632 | /* Fujitsu A544 laptop */ | ||
| 633 | /* https://bugzilla.redhat.com/show_bug.cgi?id=1111138 */ | ||
| 634 | .matches = { | ||
| 635 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"), | ||
| 636 | DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK A544"), | ||
| 637 | }, | ||
| 638 | }, | ||
| 639 | { | ||
| 640 | /* Fujitsu AH544 laptop */ | ||
| 641 | /* https://bugzilla.kernel.org/show_bug.cgi?id=69731 */ | ||
| 642 | .matches = { | ||
| 643 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"), | ||
| 644 | DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK AH544"), | ||
| 645 | }, | ||
| 646 | }, | ||
| 647 | { | ||
| 367 | /* Fujitsu U574 laptop */ | 648 | /* Fujitsu U574 laptop */ |
| 368 | /* https://bugzilla.kernel.org/show_bug.cgi?id=69731 */ | 649 | /* https://bugzilla.kernel.org/show_bug.cgi?id=69731 */ |
| 369 | .matches = { | 650 | .matches = { |
| @@ -740,8 +1021,8 @@ static int __init i8042_platform_init(void) | |||
| 740 | if (dmi_check_system(i8042_dmi_noloop_table)) | 1021 | if (dmi_check_system(i8042_dmi_noloop_table)) |
| 741 | i8042_noloop = true; | 1022 | i8042_noloop = true; |
| 742 | 1023 | ||
| 743 | if (dmi_check_system(i8042_dmi_mux_table)) | 1024 | if (dmi_check_system(i8042_dmi_nomux_table)) |
| 744 | i8042_nomux = false; | 1025 | i8042_nomux = true; |
| 745 | 1026 | ||
| 746 | if (dmi_check_system(i8042_dmi_notimeout_table)) | 1027 | if (dmi_check_system(i8042_dmi_notimeout_table)) |
| 747 | i8042_notimeout = true; | 1028 | i8042_notimeout = true; |
diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c index 9a97c2b10926..f5a98af3b325 100644 --- a/drivers/input/serio/i8042.c +++ b/drivers/input/serio/i8042.c | |||
| @@ -39,7 +39,7 @@ static bool i8042_noaux; | |||
| 39 | module_param_named(noaux, i8042_noaux, bool, 0); | 39 | module_param_named(noaux, i8042_noaux, bool, 0); |
| 40 | MODULE_PARM_DESC(noaux, "Do not probe or use AUX (mouse) port."); | 40 | MODULE_PARM_DESC(noaux, "Do not probe or use AUX (mouse) port."); |
| 41 | 41 | ||
| 42 | static bool i8042_nomux = true; | 42 | static bool i8042_nomux; |
| 43 | module_param_named(nomux, i8042_nomux, bool, 0); | 43 | module_param_named(nomux, i8042_nomux, bool, 0); |
| 44 | MODULE_PARM_DESC(nomux, "Do not check whether an active multiplexing controller is present."); | 44 | MODULE_PARM_DESC(nomux, "Do not check whether an active multiplexing controller is present."); |
| 45 | 45 | ||
diff --git a/drivers/input/touchscreen/wm97xx-core.c b/drivers/input/touchscreen/wm97xx-core.c index d0ef91fc87d1..b1ae77995968 100644 --- a/drivers/input/touchscreen/wm97xx-core.c +++ b/drivers/input/touchscreen/wm97xx-core.c | |||
| @@ -70,11 +70,11 @@ | |||
| 70 | * Documentation/input/input-programming.txt for more details. | 70 | * Documentation/input/input-programming.txt for more details. |
| 71 | */ | 71 | */ |
| 72 | 72 | ||
| 73 | static int abs_x[3] = {350, 3900, 5}; | 73 | static int abs_x[3] = {150, 4000, 5}; |
| 74 | module_param_array(abs_x, int, NULL, 0); | 74 | module_param_array(abs_x, int, NULL, 0); |
| 75 | MODULE_PARM_DESC(abs_x, "Touchscreen absolute X min, max, fuzz"); | 75 | MODULE_PARM_DESC(abs_x, "Touchscreen absolute X min, max, fuzz"); |
| 76 | 76 | ||
| 77 | static int abs_y[3] = {320, 3750, 40}; | 77 | static int abs_y[3] = {200, 4000, 40}; |
| 78 | module_param_array(abs_y, int, NULL, 0); | 78 | module_param_array(abs_y, int, NULL, 0); |
| 79 | MODULE_PARM_DESC(abs_y, "Touchscreen absolute Y min, max, fuzz"); | 79 | MODULE_PARM_DESC(abs_y, "Touchscreen absolute Y min, max, fuzz"); |
| 80 | 80 | ||
