~ubuntu-branches/ubuntu/trusty/linux-armadaxp/trusty

« back to all changes in this revision

Viewing changes to drivers/input/mouse/psmouse-base.c

  • Committer: Package Import Robot
  • Author(s): Michael Casadevall, Bryan Wu, Dann Frazier, Michael Casadeall
  • Date: 2012-03-10 15:00:54 UTC
  • mfrom: (1.1.1)
  • Revision ID: package-import@ubuntu.com-20120310150054-flugb39zon8vvgwe
Tags: 3.2.0-1600.1
[ Bryan Wu ]
* UBUNTU: import debian/debian.env and debian.armadaxp

[ Dann Frazier ]
* ARM: Armada XP: remove trailing '/' in dirnames in mvRules.mk

[ Michael Casadeall ]
* tools: add some tools for Marvell Armada XP processor
* kernel: timer tick hacking from Marvell
* kernel: Sheeva Errata: add delay on Sheeva when powering down
* net: add Marvell NFP netfilter
* net: socket and skb modifications made by Marvell
* miscdevice: add minor IDs for some Marvell Armada drivers
* fs: introduce memory pool for splice()
* video: EDID detection updates from Marvell Armada XP patchset
* video: backlight: add Marvell Dove LCD backlight driver
* video: display: add THS8200 display driver
* video: framebuffer: add Marvell Dove and Armada XP processor onchip LCD controller driver
* usbtest: add Interrupt transfer testing by Marvell Armada XP code
* usb: ehci: add support for Marvell EHCI controler
* tty/serial: 8250: add support for Marvell Armada XP processor and DeviceTree work
* rtc: add support for Marvell Armada XP onchip RTC controller
* net: pppoe: add Marvell ethernet NFP hook in PPPoE networking driver
* mtd: nand: add support for Marvell Armada XP Nand Flash Controller
* mtd: maps: add Marvell Armada XP specific map driver
* mmc: add support for Marvell Armada XP MMC/SD host controller
* i2c: add support for Marvell Armada XP onchip i2c bus controller
* hwmon: add Kconfig option for Armada XP onchip thermal sensor driver
* dmaengine: add Net DMA support for splice and update Marvell XOR DMA engine driver
* ata: add support for Marvell Armada XP SATA controller and update some quirks
* ARM: add Marvell Armada XP machine to mach-types
* ARM: oprofile: add support for Marvell PJ4B core
* ARM: mm: more ARMv6 switches for Marvell Armada XP
* ARM: remove static declaration to allow compilation
* ARM: alignment access fault trick
* ARM: mm: skip some fault fixing when run on NONE SMP ARMv6 mode during early abort event
* ARM: mm: add Marvell Sheeva CPU Architecture for PJ4B
* ARM: introduce optimized copy operation for Marvell Armada XP
* ARM: SAUCE: hardware breakpoint trick for Marvell Armada XP
* ARM: big endian and little endian tricks for Marvell Armada XP
* ARM: SAUCE: Add Marvell Armada XP build rules to arch/arm/kernel/Makefile
* ARM: vfp: add special handling for Marvell Armada XP
* ARM: add support for Marvell U-Boot
* ARM: add mv_controller_num for ARM PCI drivers
* ARM: add support for local PMUs, general SMP tweaks and cache flushing
* ARM: add Marvell device identifies in glue-proc.h
* ARM: add IPC driver support for Marvell platforms
* ARM: add DMA mapping for Marvell platforms
* ARM: add Sheeva errata and PJ4B code for booting
* ARM: update Kconfig and Makefile to include Marvell Armada XP platforms
* ARM: Armada XP: import LSP from Marvell for Armada XP 3.2 kernel enablement

Show diffs side-by-side

added added

removed removed

Lines of Context:
11
11
 * the Free Software Foundation.
12
12
 */
13
13
 
 
14
#define pr_fmt(fmt)             KBUILD_MODNAME ": " fmt
 
15
#define psmouse_fmt(fmt)        fmt
 
16
 
14
17
#include <linux/delay.h>
15
18
#include <linux/module.h>
16
19
#include <linux/slab.h>
251
254
        switch (rc) {
252
255
        case PSMOUSE_BAD_DATA:
253
256
                if (psmouse->state == PSMOUSE_ACTIVATED) {
254
 
                        printk(KERN_WARNING "psmouse.c: %s at %s lost sync at byte %d\n",
255
 
                                psmouse->name, psmouse->phys, psmouse->pktcnt);
 
257
                        psmouse_warn(psmouse,
 
258
                                     "%s at %s lost sync at byte %d\n",
 
259
                                     psmouse->name, psmouse->phys,
 
260
                                     psmouse->pktcnt);
256
261
                        if (++psmouse->out_of_sync_cnt == psmouse->resetafter) {
257
262
                                __psmouse_set_state(psmouse, PSMOUSE_IGNORE);
258
 
                                printk(KERN_NOTICE "psmouse.c: issuing reconnect request\n");
 
263
                                psmouse_notice(psmouse,
 
264
                                                "issuing reconnect request\n");
259
265
                                serio_reconnect(psmouse->ps2dev.serio);
260
266
                                return -1;
261
267
                        }
267
273
                psmouse->pktcnt = 0;
268
274
                if (psmouse->out_of_sync_cnt) {
269
275
                        psmouse->out_of_sync_cnt = 0;
270
 
                        printk(KERN_NOTICE "psmouse.c: %s at %s - driver resynched.\n",
271
 
                                psmouse->name, psmouse->phys);
 
276
                        psmouse_notice(psmouse,
 
277
                                        "%s at %s - driver resynced.\n",
 
278
                                        psmouse->name, psmouse->phys);
272
279
                }
273
280
                break;
274
281
 
295
302
                     ((flags & SERIO_PARITY) && !psmouse->ignore_parity))) {
296
303
 
297
304
                if (psmouse->state == PSMOUSE_ACTIVATED)
298
 
                        printk(KERN_WARNING "psmouse.c: bad data from KBC -%s%s\n",
299
 
                                flags & SERIO_TIMEOUT ? " timeout" : "",
300
 
                                flags & SERIO_PARITY ? " bad parity" : "");
 
305
                        psmouse_warn(psmouse,
 
306
                                     "bad data from KBC -%s%s\n",
 
307
                                     flags & SERIO_TIMEOUT ? " timeout" : "",
 
308
                                     flags & SERIO_PARITY ? " bad parity" : "");
301
309
                ps2_cmd_aborted(&psmouse->ps2dev);
302
310
                goto out;
303
311
        }
315
323
 
316
324
        if (psmouse->state == PSMOUSE_ACTIVATED &&
317
325
            psmouse->pktcnt && time_after(jiffies, psmouse->last + HZ/2)) {
318
 
                printk(KERN_INFO "psmouse.c: %s at %s lost synchronization, throwing %d bytes away.\n",
319
 
                       psmouse->name, psmouse->phys, psmouse->pktcnt);
 
326
                psmouse_info(psmouse, "%s at %s lost synchronization, throwing %d bytes away.\n",
 
327
                             psmouse->name, psmouse->phys, psmouse->pktcnt);
320
328
                psmouse->badbyte = psmouse->packet[0];
321
329
                __psmouse_set_state(psmouse, PSMOUSE_RESYNCING);
322
330
                psmouse_queue_work(psmouse, &psmouse->resync_work, 0);
661
669
                ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_RESET_DIS);
662
670
                if (alps_detect(psmouse, set_properties) == 0) {
663
671
                        if (!set_properties || alps_init(psmouse) == 0)
664
 
/* If ALPS model quirk was applied, don't change the settings */
665
 
                                return psmouse->type ? psmouse->type : PSMOUSE_ALPS;
 
672
                                return PSMOUSE_ALPS;
666
673
/*
667
674
 * Init failed, try basic relative protocols
668
675
 */
944
951
 */
945
952
 
946
953
        if (ps2_command(ps2dev, NULL, PSMOUSE_CMD_RESET_DIS))
947
 
                printk(KERN_WARNING "psmouse.c: Failed to reset mouse on %s\n", ps2dev->serio->phys);
 
954
                psmouse_warn(psmouse, "Failed to reset mouse on %s\n",
 
955
                             ps2dev->serio->phys);
948
956
 
949
957
        return 0;
950
958
}
1006
1014
static void psmouse_activate(struct psmouse *psmouse)
1007
1015
{
1008
1016
        if (ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_ENABLE))
1009
 
                printk(KERN_WARNING "psmouse.c: Failed to enable mouse on %s\n",
1010
 
                        psmouse->ps2dev.serio->phys);
 
1017
                psmouse_warn(psmouse, "Failed to enable mouse on %s\n",
 
1018
                             psmouse->ps2dev.serio->phys);
1011
1019
 
1012
1020
        psmouse_set_state(psmouse, PSMOUSE_ACTIVATED);
1013
1021
}
1021
1029
static void psmouse_deactivate(struct psmouse *psmouse)
1022
1030
{
1023
1031
        if (ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_DISABLE))
1024
 
                printk(KERN_WARNING "psmouse.c: Failed to deactivate mouse on %s\n",
1025
 
                        psmouse->ps2dev.serio->phys);
 
1032
                psmouse_warn(psmouse, "Failed to deactivate mouse on %s\n",
 
1033
                             psmouse->ps2dev.serio->phys);
1026
1034
 
1027
1035
        psmouse_set_state(psmouse, PSMOUSE_CMD_MODE);
1028
1036
}
1029
1037
 
1030
1038
/*
1031
 
 * psmouse_poll() - default poll hanlder. Everyone except for ALPS uses it.
 
1039
 * psmouse_poll() - default poll handler. Everyone except for ALPS uses it.
1032
1040
 */
1033
1041
 
1034
1042
static int psmouse_poll(struct psmouse *psmouse)
1116
1124
        }
1117
1125
 
1118
1126
        if (!enabled) {
1119
 
                printk(KERN_WARNING "psmouse.c: failed to re-enable mouse on %s\n",
1120
 
                        psmouse->ps2dev.serio->phys);
 
1127
                psmouse_warn(psmouse, "failed to re-enable mouse on %s\n",
 
1128
                             psmouse->ps2dev.serio->phys);
1121
1129
                failed = true;
1122
1130
        }
1123
1131
 
1124
1132
        if (failed) {
1125
1133
                psmouse_set_state(psmouse, PSMOUSE_IGNORE);
1126
 
                printk(KERN_INFO "psmouse.c: resync failed, issuing reconnect request\n");
 
1134
                psmouse_info(psmouse,
 
1135
                             "resync failed, issuing reconnect request\n");
1127
1136
                serio_reconnect(serio);
1128
1137
        } else
1129
1138
                psmouse_set_state(psmouse, PSMOUSE_ACTIVATED);
1156
1165
         * Disable stream mode so cleanup routine can proceed undisturbed.
1157
1166
         */
1158
1167
        if (ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_DISABLE))
1159
 
                printk(KERN_WARNING "psmouse.c: Failed to disable mouse on %s\n",
1160
 
                        psmouse->ps2dev.serio->phys);
 
1168
                psmouse_warn(psmouse, "Failed to disable mouse on %s\n",
 
1169
                             psmouse->ps2dev.serio->phys);
1161
1170
 
1162
1171
        if (psmouse->cleanup)
1163
1172
                psmouse->cleanup(psmouse);
1401
1410
        int rc = -1;
1402
1411
 
1403
1412
        if (!drv || !psmouse) {
1404
 
                printk(KERN_DEBUG "psmouse: reconnect request, but serio is disconnected, ignoring...\n");
 
1413
                psmouse_dbg(psmouse,
 
1414
                            "reconnect request, but serio is disconnected, ignoring...\n");
1405
1415
                return -1;
1406
1416
        }
1407
1417
 
1428
1438
                        goto out;
1429
1439
        }
1430
1440
 
1431
 
        /* ok, the device type (and capabilities) match the old one,
1432
 
         * we can continue using it, complete intialization
 
1441
        /*
 
1442
         * OK, the device type (and capabilities) match the old one,
 
1443
         * we can continue using it, complete initialization
1433
1444
         */
1434
1445
        psmouse_set_state(psmouse, PSMOUSE_CMD_MODE);
1435
1446
 
1587
1598
 
1588
1599
        while (!list_empty(&serio->children)) {
1589
1600
                if (++retry > 3) {
1590
 
                        printk(KERN_WARNING
1591
 
                                "psmouse: failed to destroy children ports, "
1592
 
                                "protocol change aborted.\n");
 
1601
                        psmouse_warn(psmouse,
 
1602
                                     "failed to destroy children ports, protocol change aborted.\n");
1593
1603
                        input_free_device(new_dev);
1594
1604
                        return -EIO;
1595
1605
                }
1716
1726
 
1717
1727
        kpsmoused_wq = create_singlethread_workqueue("kpsmoused");
1718
1728
        if (!kpsmoused_wq) {
1719
 
                printk(KERN_ERR "psmouse: failed to create kpsmoused workqueue\n");
 
1729
                pr_err("failed to create kpsmoused workqueue\n");
1720
1730
                return -ENOMEM;
1721
1731
        }
1722
1732