openwrt/staging/blogic.git
17 years agoInput: wistron - fix typo in keymap for Acer TM610
Eric Piel [Mon, 30 Apr 2007 03:41:53 +0000 (23:41 -0400)]
Input: wistron - fix typo in keymap for Acer TM610

This patch fixes typo that prevented PROG2 key from working
on Acer Travelmate 610.

Signed-off-by: Eric Piel <eric.piel@tremplin-utc.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: add input_set_capability() helper
Dmitry Torokhov [Wed, 25 Apr 2007 04:53:18 +0000 (00:53 -0400)]
Input: add input_set_capability() helper

Add input_set_capability() helper used to indicate that an input
device supports a certain event without need to manipulate bitmaps
directly.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: i8042 - add Fujitsu touchscreen/touchpad PNP IDs
Dmitry Torokhov [Wed, 25 Apr 2007 04:40:53 +0000 (00:40 -0400)]
Input: i8042 - add Fujitsu touchscreen/touchpad PNP IDs

Add PNP IDs for Fujitsu touchscreen/touchpad for AUX port
detection to latch onto.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: i8042 - add Panasonic CF-29 to nomux list
Dmitry Torokhov [Wed, 25 Apr 2007 04:40:32 +0000 (00:40 -0400)]
Input: i8042 - add Panasonic CF-29 to nomux list

There is no data coming from touchscreen on Panasonic CF-29
notebook unless keyboard controller is in legacy mode.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: lifebook - split into 2 devices
Dmitry Torokhov [Wed, 25 Apr 2007 04:39:53 +0000 (00:39 -0400)]
Input: lifebook - split into 2 devices

Have lifebook protocol register 2 separate input devices -
one for the touchscreen reporting absolute coordinates and
touches and another one for touchpad reporting relative
coordinates and left and right button presses.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: lifebook - add signature of Panasonic CF-29
Dmitry Torokhov [Wed, 25 Apr 2007 04:39:31 +0000 (00:39 -0400)]
Input: lifebook - add signature of Panasonic CF-29

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: lifebook - activate 6-byte protocol on select models
Dmitry Torokhov [Thu, 12 Apr 2007 05:36:34 +0000 (01:36 -0400)]
Input: lifebook - activate 6-byte protocol on select models

It appears that if we turn on 6-byte Lifebook protocol on
Panasonic CF-28 its touchpad is left alone and generates
standard 3-byte PS/2 data stream with relative packets
instead of being converted in 3-byte Lifebook protocol with
absolute coordinates - in other words what get what we need
to distinguish between touchscreen and touchpad.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: lifebook - work properly on Panasonic CF-18
Dmitry Torokhov [Thu, 12 Apr 2007 05:36:25 +0000 (01:36 -0400)]
Input: lifebook - work properly on Panasonic CF-18

Panasonic CF18 has an active multiplexing controller with
touchscreen connected to one port and a touchpad to another.
Use "phys" from serio port to activate lifebook protoocol
only on the port that has touchscreen connected to it.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: cobalt buttons - separate device and driver registration
Dmitry Torokhov [Thu, 12 Apr 2007 05:36:12 +0000 (01:36 -0400)]
Input: cobalt buttons - separate device and driver registration

Create platform device for cobalt buttons as part of arch setup.
This makes the driver follow current driver model more closely.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Acked-by: Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
17 years agoInput: ati_remote - make button repeat sensitivity configurable
Karl Pickett [Thu, 12 Apr 2007 05:35:59 +0000 (01:35 -0400)]
Input: ati_remote - make button repeat sensitivity configurable

ati_remote causes repeats after only .23 seconds with my remote and
makes it hard to use comfortably. Make a precise way of setting the
repeat delay time in milliseconds and default it to 500ms.  The old
behavior can be had by setting repeat_delay = 0.

Signed-off-by: Karl Pickett <karl.pickett@gmail.com>
Signed-off-by: Vincent Vanackere <vincent.vanackere@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: pxa27x - do not use deprecated SA_INTERRUPT flag
Thomas Gleixner [Thu, 12 Apr 2007 05:35:51 +0000 (01:35 -0400)]
Input: pxa27x - do not use deprecated SA_INTERRUPT flag

IRQF_DISABLED is the proper name.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: ucb1400 - make delays configurable
Cliff Brake [Thu, 12 Apr 2007 05:35:43 +0000 (01:35 -0400)]
Input: ucb1400 - make delays configurable

This patch adds module parameters for several timing values used
in the driver. These values can vary based on the hardware design
and how much capacitive filtering there is on the touch panel inputs,
and the resistance of the panel.

Signed-off-by: Cliff Brake <cbrake@bec-systems.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: misc devices - switch to using input_dev->dev.parent
Dmitry Torokhov [Thu, 12 Apr 2007 05:35:32 +0000 (01:35 -0400)]
Input: misc devices - switch to using input_dev->dev.parent

In preparation for struct class_device -> struct device input
core conversion, switch to using input_dev->dev.parent when
specifying device position in sysfs tree.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: joysticks - switch to using input_dev->dev.parent
Dmitry Torokhov [Thu, 12 Apr 2007 05:35:26 +0000 (01:35 -0400)]
Input: joysticks - switch to using input_dev->dev.parent

In preparation for struct class_device -> struct device input
core conversion, switch to using input_dev->dev.parent when
specifying device position in sysfs tree.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: touchscreens - switch to using input_dev->dev.parent
Dmitry Torokhov [Thu, 12 Apr 2007 05:35:14 +0000 (01:35 -0400)]
Input: touchscreens - switch to using input_dev->dev.parent

In preparation for struct class_device -> struct device input
core conversion, switch to using input_dev->dev.parent when
specifying device position in sysfs tree.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: mice - switch to using input_dev->dev.parent
Dmitry Torokhov [Thu, 12 Apr 2007 05:35:09 +0000 (01:35 -0400)]
Input: mice - switch to using input_dev->dev.parent

In preparation for struct class_device -> struct device input
core conversion, switch to using input_dev->dev.parent when
specifying device position in sysfs tree.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: USB devices - switch to using input_dev->dev.parent
Dmitry Torokhov [Thu, 12 Apr 2007 05:35:03 +0000 (01:35 -0400)]
Input: USB devices - switch to using input_dev->dev.parent

In preparation for struct class_device -> struct device input
core conversion, switch to using input_dev->dev.parent when
specifying device position in sysfs tree.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: keyboards - switch to using input_dev->dev.parent
Dmitry Torokhov [Thu, 12 Apr 2007 05:34:58 +0000 (01:34 -0400)]
Input: keyboards - switch to using input_dev->dev.parent

In preparation for struct class_device -> struct device input
core conversion, switch to using input_dev->dev.parent when
specifying device position in sysfs tree.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: prepare to switching to struct device
Dmitry Torokhov [Thu, 12 Apr 2007 05:34:47 +0000 (01:34 -0400)]
Input: prepare to switching to struct device

In preparation to switching to struct device and class device
going away provide an alias to allow drivers that create devices
to use either input_dev->cdev.dev or input_dev->dev.parent to
put them into sysfs tree. The former will go away once conversion
to struct device is complete.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: drivers/usb/input - don't access dev->private directly
Dmitry Torokhov [Thu, 12 Apr 2007 05:34:39 +0000 (01:34 -0400)]
Input: drivers/usb/input - don't access dev->private directly

Use input_get_drvdata() and input_set_drvdata() instead.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: drivers/input/misc - don't access dev->private directly
Dmitry Torokhov [Thu, 12 Apr 2007 05:34:33 +0000 (01:34 -0400)]
Input: drivers/input/misc - don't access dev->private directly

Use input_get_drvdata() and input_set_drvdata() instead.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: drivers/input/keyboard - don't access dev->private directly
Dmitry Torokhov [Thu, 12 Apr 2007 05:34:20 +0000 (01:34 -0400)]
Input: drivers/input/keyboard - don't access dev->private directly

Use input_get_drvdata() and input_set_drvdata() instead.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: drivers/input/joystick - don't access dev->private directly
Dmitry Torokhov [Thu, 12 Apr 2007 05:34:14 +0000 (01:34 -0400)]
Input: drivers/input/joystick - don't access dev->private directly

Use input_get_drvdata() and input_set_drvdata() instead.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: drivers/input/touchscreen - don't access dev->private directly
Dmitry Torokhov [Thu, 12 Apr 2007 05:34:08 +0000 (01:34 -0400)]
Input: drivers/input/touchscreen - don't access dev->private directly

Use input_get_drvdata() and input_set_drvdata() instead.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: drivers/input/mice - don't access dev->private directly
Dmitry Torokhov [Thu, 12 Apr 2007 05:34:02 +0000 (01:34 -0400)]
Input: drivers/input/mice - don't access dev->private directly

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: add input_{get|set}_drvdata() helpers
Dmitry Torokhov [Thu, 12 Apr 2007 05:33:51 +0000 (01:33 -0400)]
Input: add input_{get|set}_drvdata() helpers

Add helpers to set up and access driver-specific data in input
device structure. Once conversion to struct driver is complete
we will drop input_dev->private and will use dev_get_drvdata()
and dev_set_drvdata().

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: USB devices - handle errors when registering input devices
Dmitry Torokhov [Thu, 12 Apr 2007 05:33:39 +0000 (01:33 -0400)]
Input: USB devices - handle errors when registering input devices

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: remove old USB touchscreen drivers
Dmitry Torokhov [Thu, 12 Apr 2007 05:33:28 +0000 (01:33 -0400)]
Input: remove old USB touchscreen drivers

itmtoch, mtouchusb and touchkitusb have been replaced with
composite usbtouchscreen driver and can be removed now.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoInput: logips2pp - add model 1 information
Dmitry Torokhov [Thu, 12 Apr 2007 05:33:19 +0000 (01:33 -0400)]
Input: logips2pp - add model 1 information

It turns out I had an old 2-button Logitech mouse that responds
to Logitech's queries with model of 1.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: add logical channel support for ATI Remote Wonder II
Peter Stokes [Thu, 12 Apr 2007 05:33:10 +0000 (01:33 -0400)]
Input: add logical channel support for ATI Remote Wonder II

The ATI Remote Wonder II can be configured with one of 16 unique logical
channels. Allowing up to 16 remotes to be used independently within
range of each other. This change adds functionality to configure the
receiver and filter the input data to respond or exclude remotes
configured with different logical channels.

Signed-off-by: Peter Stokes <linux@dadeos.freeserve.co.uk>
Acked-by: Ville Syrjala <syrjala@sci.fi>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: gtco - handle errors from input_register_device()
Dmitry Torokhov [Thu, 12 Apr 2007 05:33:00 +0000 (01:33 -0400)]
Input: gtco - handle errors from input_register_device()

Also fix URB leak in gtco_probe error path, formatting fixes.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: wistron - declare keymaps as initdata
Eric Piel [Thu, 12 Apr 2007 05:32:49 +0000 (01:32 -0400)]
Input: wistron - declare keymaps as initdata

As the number of keymaps increases and is very unlikely to
reduce, this patch helps to reduce memory consumption by
declaring all keymaps as __initdata and copying right keymap
during DMI detection. On x86 this make the module size at
runtime going from 10616 to 9428: a bit more than 1kb saved.

Signed-off-by: Eric Piel <eric.piel@tremplin-utc.net>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: wistron - introduce generic keymap
Eric Piel [Thu, 12 Apr 2007 05:32:41 +0000 (01:32 -0400)]
Input: wistron - introduce generic keymap

It turns out that the keymaps in the wistron driver are almost the
same, the main difference being some keys which may not exist and
leds which might not be present. Therefore it's possible to write
a generic keymap which would allow the use of an unknown keyboard
with little drawbacks. The user can select it specifying the parameter
"keymap=generic".

Signed-off-by: Eric Piel <eric.piel@tremplin-utc.net>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: wistron - add acerhk laptop database
Eric Piel [Thu, 12 Apr 2007 05:32:34 +0000 (01:32 -0400)]
Input: wistron - add acerhk laptop database

Acerhk supports already a lot of laptops. Lets import its database so
that everyone can benefit of the work of Olaf Tauber. Only the "tm_new"
laptops were imported. "tm_old" laptops could be possible but requires
more testing and probably only few laptops are still alive. "dritek"
laptops should probably be imported into a different driver. Also compress
the keymaps by fitting each entry on an int. Most of the dmi matching was
written based on google searches, so it's rather prone to errors. That's
why I'm asking people to confirm it works.

Support to generate switch input events was added as some laptops indicate
lid open/close through this interface.

This adds the following hardware:
Acer TravelMate 370
Acer TravelMate 380
Acer TravelMate C300
Acer TravelMate C100
Acer TravelMate C110
Acer TravelMate 250
Acer TravelMate 350
Acer TravelMate 620
Acer TravelMate 630
Acer TravelMate 220
Acer TravelMate 230
Acer TravelMate 260
Acer TravelMate 280
Acer TravelMate 360
Acer TravelMate 2100
Acer TravelMate 2410
Acer Aspire 1500
Acer Aspire 1600
Acer Aspire 3020
Acer Aspire 5020
Medion MD 2900
Medion MD 40100
Medion MD 95400
Medion MD 96500
Fujitsu Siemens Amilo 7820

Signed-off-by: Eric Piel <eric.piel@tremplin-utc.net>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: logips2pp - ignore mice reporting model as 0
Dmitry Torokhov [Thu, 12 Apr 2007 05:32:22 +0000 (01:32 -0400)]
Input: logips2pp - ignore mice reporting model as 0

There are mice reporting to logitech's queries with model
of 0. Do not claim that these are Logitech mice.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: i8042 - disable interfaces when switching to legacy mode
Dmitry Torokhov [Thu, 12 Apr 2007 05:32:09 +0000 (01:32 -0400)]
Input: i8042 - disable interfaces when switching to legacy mode

Disable both keyboard and auxiliary interfaces before switching
to legacy mode to prevent atkbd from getting "empty" interrupts.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: mousedev - fix sudden warps with touchpads
Dmitry Torokhov [Thu, 12 Apr 2007 05:31:55 +0000 (01:31 -0400)]
Input: mousedev - fix sudden warps with touchpads

Pete Zaitcev reports that with his touchpad, if he lifts the finger
and places it elsewhere, the pointer sometimes warps dramatically.
This happens because we don't store coordinates unless we detect a
touch so sometimes we have stale coordinates in queue (from where
the finger left the pad) and averaging makes cursor to jump across
the screen. The solution is to always store the latest coordinates.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: ALPS - handle errors from input_register_device()
Dmitry Torokhov [Thu, 12 Apr 2007 05:31:13 +0000 (01:31 -0400)]
Input: ALPS - handle errors from input_register_device()

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: remove no longer used power.c handler
Robert P. J. Day [Thu, 12 Apr 2007 05:31:05 +0000 (01:31 -0400)]
Input: remove no longer used power.c handler

Delete the never-compiled source file drivers/input/power.c, and
remove its entry from the corresponding Makefile, as there is no
Kconfig file that refers to the config option INPUT_POWER

Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: keyboard handler - use printk_ratelimit()
Dmitry Torokhov [Thu, 12 Apr 2007 05:30:52 +0000 (01:30 -0400)]
Input: keyboard handler - use printk_ratelimit()

Use printk_ratelimit() to protect ourselves from buggy drivers or
devices endlessly generating invalid events.

Suggested by Andrew Morton.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: synaptics - export model bits
Dmitry Torokhov [Thu, 12 Apr 2007 05:30:41 +0000 (01:30 -0400)]
Input: synaptics - export model bits

Encode synaptics model in psmouse->model so it will be
exported via sysfs as input_dev->id.version and become
visible for applications.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: iforce - use usb_kill_urb instead of usb_unlink_urb
Johann Deneux [Thu, 12 Apr 2007 05:30:24 +0000 (01:30 -0400)]
Input: iforce - use usb_kill_urb instead of usb_unlink_urb

Using usb_unlink_urb can cause iforce_open to fail when called
soon after iforce_release. Also updated my email address and
replaced calls to printk() by dbg(), warn(), info(), err()...

Signed-off-by: Johann Deneux <johann.deneux@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: handlers - handle errors from input_open_device()
Dmitry Torokhov [Thu, 12 Apr 2007 05:30:15 +0000 (01:30 -0400)]
Input: handlers - handle errors from input_open_device()

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: handlers - rename 'list' to 'client'
Dmitry Torokhov [Thu, 12 Apr 2007 05:30:00 +0000 (01:30 -0400)]
Input: handlers - rename 'list' to 'client'

The naming convention in input handlers was very confusing -
client stuctures were called lists, regular lists were also
called lists making anyone looking at the code go mad.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: rework handle creation code
Dmitry Torokhov [Thu, 12 Apr 2007 05:29:46 +0000 (01:29 -0400)]
Input: rework handle creation code

 - consolidate code for binding handlers to a device
 - return error codes from handlers connect() methods back to input
   core and log failures

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: i8042 - add HP Pavilion DV4017EA to the MUX blacklist
Dmitry Torokhov [Fri, 16 Mar 2007 04:59:42 +0000 (00:59 -0400)]
Input: i8042 - add HP Pavilion DV4017EA to the MUX blacklist

This should get rid of "atkbd.c: Suprious NAK on isa0060/serio0"
messages caused by broken MUX implementation. The box does not
have external PS/2 ports so disabling MUX mode is safe.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: HIL - fix rwlock recursion bug
Helge Deller [Fri, 16 Mar 2007 04:59:29 +0000 (00:59 -0400)]
Input: HIL - fix rwlock recursion bug

The following bug happens when insmoding hp_sdc_mlc.ko:

    HP SDC MLC: Registering the System Domain Controller's HIL MLC.
    BUG: rwlock recursion on CPU#0, hotplug/1814, 00854734
    Backtrace:
     [<10267560>] _raw_write_lock+0x50/0x88
     [<10104008>] _write_lock_irqsave+0x14/0x24
     [<008537d4>] hp_sdc_mlc_out+0x38/0x25c [hp_sdc_mlc]
     [<0084ebd8>] hilse_donode+0x308/0x470 [hil_mlc]
     [<0084ed80>] hil_mlcs_process+0x40/0x6c [hil_mlc]
     [<10130f80>] tasklet_action+0x78/0xb8
     [<10130cec>] __do_softirq+0x60/0xcc
     [<1010428c>] __lock_text_end+0x38/0x48
     [<10108348>] do_cpu_irq_mask+0xf0/0x11c
     [<1010b068>] intr_return+0x0/0xc

Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: add support for PXA27x keyboard controller
Rodolfo Giometti [Fri, 16 Mar 2007 04:58:52 +0000 (00:58 -0400)]
Input: add support for PXA27x keyboard controller

Signed-off-by: Rodolfo Giometti <giometti@enneenne.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: sermouse - improve protocol error recovery
Peter Osterlund [Fri, 16 Mar 2007 04:58:37 +0000 (00:58 -0400)]
Input: sermouse - improve protocol error recovery

When using MS protocol the driver should wait for a byte with
bit 6 set before assuming that it sees beginning of a data packet.
This should allow driver better cope with lost bytes and prevent
spurious left/right button events when serial communication is
disturbed by a CPU-hungry real-time process.

Also fix some formatting.

Signed-off-by: Peter Osterlund <petero2@telia.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: simplify input_free_device()
Dmitry Torokhov [Fri, 16 Mar 2007 04:57:25 +0000 (00:57 -0400)]
Input: simplify input_free_device()

Now that sysfs attributes that were marked for deletion can't access
their devices we do not need to set name, phys and uniq to NULL.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: add getkeycode and setkeycode methods
Marvin Raaijmakers [Thu, 15 Mar 2007 02:50:42 +0000 (22:50 -0400)]
Input: add getkeycode and setkeycode methods

Allow drivers to implement their own get and set keycode methods. This
will allow drivers to change their keymaps without allocating huge
tables covering entire range of possible scancodes.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: psmouse - allow disabing certain protocol extensions
Andres Salomon [Sat, 10 Mar 2007 06:39:54 +0000 (01:39 -0500)]
Input: psmouse - allow disabing certain protocol extensions

Allow ALPS, LOGIPS2PP, LIFEBOOK, TRACKPOINT and TOUCHKIT protocol
extensions of psmouse to be disabled during compilation. This will
allow users save some memory when they are sure that they will only
use a certain type of mice.

Signed-off-by: Andres Salomon <dilinger@debian.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: let driver core create class device attribute groups
Dmitry Torokhov [Thu, 8 Mar 2007 04:20:26 +0000 (23:20 -0500)]
Input: let driver core create class device attribute groups

Rely on device core to create attribute groups for input devices
instead of open-coding it.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: export 'uniq' in /proc/bus/input/devices
Dmitry Torokhov [Thu, 8 Mar 2007 04:20:17 +0000 (23:20 -0500)]
Input: export 'uniq' in /proc/bus/input/devices

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: wistron - add support for TravelMate 610
Eric Piel [Wed, 7 Mar 2007 06:45:16 +0000 (01:45 -0500)]
Input: wistron - add support for TravelMate 610

Add support for Acer TravelMate 610 to wistron_btns. All special keys
are detected, but the 2 leds are not handled (yet).

Signed-off-by: Eric Piel <eric.piel@tremplin-utc.net>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: psmouse - do not force stream mode
Dmitry Torokhov [Wed, 7 Mar 2007 06:44:59 +0000 (01:44 -0500)]
Input: psmouse - do not force stream mode

Forcing stream mode after reset confuses some devices (reported
by Andrea Arcangeli) so let's take it out - spec says that after
reset mouse should already be in stream mode.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: HIL - cleanup coding style
Helge Deller [Thu, 1 Mar 2007 04:51:29 +0000 (23:51 -0500)]
Input: HIL - cleanup coding style

Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: HIL - various fixes for HIL drivers
Helge Deller [Thu, 1 Mar 2007 04:51:19 +0000 (23:51 -0500)]
Input: HIL - various fixes for HIL drivers

 - mark some structures const or __read_mostly
 - hilkbd.c: fix uninitialized spinlock in HIL keyboard driver
 - hil_mlc.c: use USEC_PER_SEC instead of 1000000
 - hp_sdc: bugfix for request_irq()/free_irq() parameters, this prevented
           multiple load/unload cycles as module

Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: ads7846 - add support for the ads7843 touchscreen
Nicolas Ferre [Thu, 1 Mar 2007 04:51:03 +0000 (23:51 -0500)]
Input: ads7846 - add support for the ads7843 touchscreen

The ads7843 support has now become almost trivial since the last
rework.

Signed-off-by: Nicolas Ferre <nicolas.ferre@rfo.atmel.com>
Acked-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: add driver for MIPS Cobalt back panel buttons
Yoichi Yuasa [Sun, 18 Feb 2007 06:50:18 +0000 (01:50 -0500)]
Input: add driver for MIPS Cobalt back panel buttons

Tested on Cobalt Qube2.

Signed-off-by: Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: psmouse - add support for eGalax PS/2 touchscreen controller
Stefan Lucke [Sun, 18 Feb 2007 06:49:10 +0000 (01:49 -0500)]
Input: psmouse - add support for eGalax PS/2 touchscreen controller

Based on the touchkit USB and lifebook PS/2 touchscreen driver.

The egalax touchsreen controller (PS/2 or USB version) is used in this 7"
device: http://www.cartft.com/catalog/il/449

Signed-off-by: Michal Piotrowski <michal.k.k.piotrowski@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: remove obsolete setup parameters from input drivers
Dmitry Torokhov [Sun, 18 Feb 2007 06:44:58 +0000 (01:44 -0500)]
Input: remove obsolete setup parameters from input drivers

They have been marked as __obsolete_setup() for several years,
it is time for them to go.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: HIL - fix improper call to release_region()
Cyrill V. Gorcunov [Sun, 18 Feb 2007 06:44:02 +0000 (01:44 -0500)]
Input: HIL - fix improper call to release_region()

Do not call release_region() if the code has been compiled
without CONFIG_HP300 support.

Signed-off-by: Cyrill V. Gorcunov <gorcunov@gmail.com>
Acked-by: Helge Deller <deller@gmx.de>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: hid-lgff - treat devices as joysticks unless told otherwise
Dmitry Torokhov [Sun, 18 Feb 2007 06:42:11 +0000 (01:42 -0500)]
Input: hid-lgff - treat devices as joysticks unless told otherwise

By default threat devices as joysticks with constant force-feedback
effect.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: HID - add support for Logitech Formula Force EX
Valentin Zagura [Sun, 18 Feb 2007 06:41:27 +0000 (01:41 -0500)]
Input: HID - add support for Logitech Formula Force EX

Signed-off-by: Johann Deneux <johann.deneux@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: gpio-keys - switch to common GPIO API
Philipp Zabel [Sun, 18 Feb 2007 06:40:46 +0000 (01:40 -0500)]
Input: gpio-keys - switch to common GPIO API

This adds support for at least SA1100 and S3C24xx CPUs.

Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: do not lock device when showing name, phys and uniq
Dmitry Torokhov [Sun, 18 Feb 2007 06:40:37 +0000 (01:40 -0500)]
Input: do not lock device when showing name, phys and uniq

Now that sysfs attributes return -ENODEV once driver requests their
removal we do not need to handle scenario when data is deleted from
under our feet and can simplify the code.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: i8042 - let serio bus suspend ports
Dmitry Torokhov [Sun, 18 Feb 2007 06:40:30 +0000 (01:40 -0500)]
Input: i8042 - let serio bus suspend ports

Let serio subsystem take care of suspending the ports; concentrate
on suspending/resuming the controller itself.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoInput: psmouse - properly reset mouse on shutdown/suspend
Dmitry Torokhov [Sun, 18 Feb 2007 06:40:24 +0000 (01:40 -0500)]
Input: psmouse - properly reset mouse on shutdown/suspend

Some people report that they need psmouse module unloaded
for suspend to ram/disk to work properly. Let's make port
cleanup behave the same way as driver unload.

This fixes "bad state" roblem on various HP laptops, such
as nx7400.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
17 years agoMerge branch 'for-linus' of git://www.atmel.no/~hskinnemoen/linux/kernel/avr32
Linus Torvalds [Fri, 16 Feb 2007 16:19:44 +0000 (08:19 -0800)]
Merge branch 'for-linus' of git://atmel.no/~hskinnemoen/linux/kernel/avr32

* 'for-linus' of git://www.atmel.no/~hskinnemoen/linux/kernel/avr32:
  [AVR32] Use per-controller spi_board_info structures
  [AVR32] Warn, don't BUG if clk_disable is called too many times
  [AVR32] Make sure all genclocks have a parent
  [AVR32] Remove unnecessary sys_nfsservctl conditional
  [AVR32] Wire up the SysV IPC calls properly
  [AVR32] Define ioremap_nocache, ioport_map and ioport_unmap
  [AVR32] Fix prototypes for __raw_writesb and friends

17 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davej/agpgart
Linus Torvalds [Fri, 16 Feb 2007 16:17:04 +0000 (08:17 -0800)]
Merge /pub/scm/linux/kernel/git/davej/agpgart

* master.kernel.org:/pub/scm/linux/kernel/git/davej/agpgart:
  [AGPGART] allow drm populated agp memory types cleanups
  [AGPGART] intel-agp: Use ARRAY_SIZE macro when appropriate
  [AGPGART] Add agp-type-to-mask-type method missing from some drivers.
  [AGPGART] Don't try to remap i810 registers on resume.
  [AGPGART] Allow drm-populated agp memory types
  [AGPGART] compat ioctl

17 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq
Linus Torvalds [Fri, 16 Feb 2007 16:16:01 +0000 (08:16 -0800)]
Merge /pub/scm/linux/kernel/git/davej/cpufreq

* master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq:
  [CPUFREQ] Longhaul - Redo Longhaul ver. 2
  [CPUFREQ] EPS - Correct 2nd brand test
  [CPUFREQ] Longhaul - Separate frequency and voltage transition
  [CPUFREQ] Longhaul - Models of Nehemiah
  [CPUFREQ] Whitespace fixup
  [CPUFREQ] Longhaul - Simplier minmult
  [CPUFREQ] CPU_FREQ_TABLE shouldn't be a def_tristate
  [CPUFREQ] ondemand governor use new cpufreq rwsem locking in work callback
  [CPUFREQ] ondemand governor restructure the work callback
  [CPUFREQ] Rewrite lock in cpufreq to eliminate cpufreq/hotplug related issues
  [CPUFREQ] Remove hotplug cpu crap
  [CPUFREQ] Enhanced PowerSaver driver
  [CPUFREQ] Longhaul - Add VT8235 support
  [CPUFREQ] Longhaul - Fix guess_fsb function
  [CPUFREQ] Longhaul - Remove duplicate tables
  [CPUFREQ] Longhaul - Introduce Nehemiah C
  [CPUFREQ] fix cpuinfo_cur_freq for CPU_HW_PSTATE
  [CPUFREQ] Longhaul - Remove "ignore_latency" option

17 years ago[PATCH] s3c2410fb: fix un-initialised dev field
Ben Dooks [Fri, 16 Feb 2007 09:28:42 +0000 (01:28 -0800)]
[PATCH] s3c2410fb: fix un-initialised dev field

The current driver is not setting the dev field in the private data
structure, which can lead to an OOPS if the driver tries to report an
error.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Cc: James Simmons <jsimmons@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] ecryptfs: fix forgotten format specifier
Thomas Hisch [Fri, 16 Feb 2007 09:28:41 +0000 (01:28 -0800)]
[PATCH] ecryptfs: fix forgotten format specifier

Add format specifier %d for uid in ecryptfs_printk

Signed-off-by: Thomas Hisch <t.hisch@gmail.com>
Cc: Michael Halcrow <mhalcrow@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] eCryptfs: Reduce stack usage in ecryptfs_generate_key_packet_set()
Michael Halcrow [Fri, 16 Feb 2007 09:28:40 +0000 (01:28 -0800)]
[PATCH] eCryptfs: Reduce stack usage in ecryptfs_generate_key_packet_set()

eCryptfs is gobbling a lot of stack in ecryptfs_generate_key_packet_set()
because it allocates a temporary memory-hungry ecryptfs_key_record struct.
This patch introduces a new kmem_cache for that struct and converts
ecryptfs_generate_key_packet_set() to use it.

Signed-off-by: Michael Halcrow <mhalcrow@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] knfsd: stop NFSD writes from being broken into lots of little writes to files...
NeilBrown [Fri, 16 Feb 2007 09:28:38 +0000 (01:28 -0800)]
[PATCH] knfsd: stop NFSD writes from being broken into lots of little writes to filesystem

When NFSD receives a write request, the data is typically in a number of
1448 byte segments and writev is used to collect them together.

Unfortunately, generic_file_buffered_write passes these to the filesystem
one at a time, so an e.g.  32K over-write becomes a series of partial-page
writes to each page, causing the filesystem to have to pre-read those pages
- wasted effort.

generic_file_buffered_write handles one segment of the vector at a time as
it has to pre-fault in each segment to avoid deadlocks.  When writing from
kernel-space (and nfsd does) this is not an issue, so
generic_file_buffered_write does not need to break and iovec from nfsd into
little pieces.

This patch avoids the splitting when  get_fs is KERNEL_DS as it is
from NFSd.

This issue was introduced by commit 6527c2bdf1f833cc18e8f42bd97973d583e4aa83

Acked-by: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: Norman Weathers <norman.r.weathers@conocophillips.com>
Cc: Vladimir V. Saveliev <vs@namesys.com>
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] knfsd: nfsd4: fix handling of directories without default ACLs
J. Bruce Fields [Fri, 16 Feb 2007 09:28:37 +0000 (01:28 -0800)]
[PATCH] knfsd: nfsd4: fix handling of directories without default ACLs

When setting an ACL that lacks inheritable ACEs on a directory, we should set
a default ACL of zero length, not a default ACL with all bits denied.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] knfsd: nfsd4: acls: avoid unnecessary denies
J. Bruce Fields [Fri, 16 Feb 2007 09:28:36 +0000 (01:28 -0800)]
[PATCH] knfsd: nfsd4: acls: avoid unnecessary denies

We're inserting deny's between some ACEs in order to enforce posix draft acl
semantics which prevent permissions from accumulating across entries in an
acl.

That's fine, but we're doing that by inserting a deny after *every* allow,
which is overkill.  We shouldn't be adding them in places where they actually
make no difference.

Also replaced some helper functions for creating acl entries; I prefer just
assigning directly to the struct fields--it takes a few more lines, but the
field names provide some documentation that I think makes the result easier
understand.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] knfsd: nfsd4: acls: don't return explicit mask
J. Bruce Fields [Fri, 16 Feb 2007 09:28:34 +0000 (01:28 -0800)]
[PATCH] knfsd: nfsd4: acls: don't return explicit mask

Return just the effective permissions, and forget about the mask.  It isn't
worth the complexity.

WARNING: This breaks backwards compatibility with overly-picky nfsv4->posix
acl translation, as may has been included in some patched versions of libacl.
To our knowledge no such version was every distributed by anyone outside citi.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] knfsd: nfsd4: fix error return on unsupported acl
J. Bruce Fields [Fri, 16 Feb 2007 09:28:34 +0000 (01:28 -0800)]
[PATCH] knfsd: nfsd4: fix error return on unsupported acl

We should be returning ATTRNOTSUPP, not NOTSUPP, when acls are unsupported.

Also fix a comment.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] knfsd: nfsd4: fix memory leak on kmalloc failure in savemem
J. Bruce Fields [Fri, 16 Feb 2007 09:28:30 +0000 (01:28 -0800)]
[PATCH] knfsd: nfsd4: fix memory leak on kmalloc failure in savemem

The wrong pointer is being kfree'd in savemem() when defer_free returns with
an error.

Signed-off-by: Benny Halevy <bhalevy@panasas.com>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] knfsd: nfsd4: represent nfsv4 acl with array instead of linked list
J. Bruce Fields [Fri, 16 Feb 2007 09:28:30 +0000 (01:28 -0800)]
[PATCH] knfsd: nfsd4: represent nfsv4 acl with array instead of linked list

Simplify the memory management and code a bit by representing acls with an
array instead of a linked list.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] knfsd: nfsd4: simplify nfsv4->posix translation
J. Bruce Fields [Fri, 16 Feb 2007 09:28:29 +0000 (01:28 -0800)]
[PATCH] knfsd: nfsd4: simplify nfsv4->posix translation

The code that splits an incoming nfsv4 ACL into inheritable and effective
parts can be combined with the the code that translates each to a posix acl,
resulting in simpler code that requires one less pass through the ACL.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] knfsd: nfsd4: relax checking of ACL inheritance bits
J. Bruce Fields [Fri, 16 Feb 2007 09:28:28 +0000 (01:28 -0800)]
[PATCH] knfsd: nfsd4: relax checking of ACL inheritance bits

The rfc allows us to be more permissive about the ACL inheritance bits we
accept:

"If the server supports a single "inherit ACE" flag that applies to
both files and directories, the server may reject the request
(i.e., requiring the client to set both the file and directory
inheritance flags). The server may also accept the request and
silently turn on the ACE4_DIRECTORY_INHERIT_ACE flag."

Let's take the latter option--the ACL is a complex attribute that could be
rejected for a wide variety of reasons, and the protocol gives us little
ability to explain the reason for the rejection, so erroring out is a
user-unfriendly last resort.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] knfsd: nfsd4: fix non-terminated string
J. Bruce Fields [Fri, 16 Feb 2007 09:28:27 +0000 (01:28 -0800)]
[PATCH] knfsd: nfsd4: fix non-terminated string

The server name is expected to be a null-terminated string, so we can't pass
in the raw client identifier.

What's more, the client identifier is just a binary, not necessarily
printable, blob.  Let's just use the ip address instead.  The server name
appears to exist just to help debugging by making some printk's more
informative.

Note that the string is copies into the rpc client structure, so the pointer
to the local variable does not outlive the function call.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] small irq management simplification
Jan Beulich [Fri, 16 Feb 2007 09:28:26 +0000 (01:28 -0800)]
[PATCH] small irq management simplification

Use mask_ack_irq() where possible.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] IRQ kernel-doc fixes
Randy Dunlap [Fri, 16 Feb 2007 09:28:25 +0000 (01:28 -0800)]
[PATCH] IRQ kernel-doc fixes

Fix kernel-doc warnings in IRQ management.

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] genirq: remove IRQ_DISABLED
Ingo Molnar [Fri, 16 Feb 2007 09:28:24 +0000 (01:28 -0800)]
[PATCH] genirq: remove IRQ_DISABLED

Now that disable_irq() defaults to delayed-disable semantics, the IRQ_DISABLED
flag is not needed anymore.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] genirq: do not mask interrupts by default
Ingo Molnar [Fri, 16 Feb 2007 09:28:24 +0000 (01:28 -0800)]
[PATCH] genirq: do not mask interrupts by default

Never mask interrupts immediately upon request.  Disabling interrupts in
high-performance codepaths is rare, and on the other hand this change could
recover lost edges (or even other types of lost interrupts) by conservatively
only masking interrupts after they happen.  (NOTE: with this change the
highlevel irq-disable code still soft-disables this IRQ line - and if such an
interrupt happens then the IRQ flow handler keeps the IRQ masked.)

Mark i8529A controllers as 'never loses an edge'.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] posix timers: RCU optimization for clock_gettime()
Paul E. McKenney [Fri, 16 Feb 2007 09:28:22 +0000 (01:28 -0800)]
[PATCH] posix timers: RCU optimization for clock_gettime()

Use RCU to avoid the need to acquire tasklist_lock in the single-threaded
case of clock_gettime().  It still acquires tasklist_lock when for a
(potentially multithreaded) process.  This change allows realtime
applications to frequently monitor CPU consumption of individual tasks, as
requested (and now deployed) by some off-list users.

This has been in Ingo Molnar's -rt patchset since late 2005 with no
problems reported, and tests successfully on 2.6.20-rc6, so I believe that
it is long-since ready for mainline adoption.

[paulmck@linux.vnet.ibm.com: fix exit()/posix_cpu_clock_get() race spotted by Oleg]
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: john stultz <johnstul@us.ibm.com>
Cc: Roman Zippel <zippel@linux-m68k.org>
Cc: Oleg Nesterov <oleg@tv-sign.ru>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] time: x86_64: re-enable vsyscall support for x86_64
john stultz [Fri, 16 Feb 2007 09:28:21 +0000 (01:28 -0800)]
[PATCH] time: x86_64: re-enable vsyscall support for x86_64

Cleanup and re-enable vsyscall gettimeofday using the generic clocksource
infrastructure.

[akpm@osdl.org: cleanup]
Signed-off-by: John Stultz <johnstul@us.ibm.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Andi Kleen <ak@muc.de>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] time: x86_64: convert x86_64 to use GENERIC_TIME
john stultz [Fri, 16 Feb 2007 09:28:20 +0000 (01:28 -0800)]
[PATCH] time: x86_64: convert x86_64 to use GENERIC_TIME

This patch converts x86_64 to use the GENERIC_TIME infrastructure and adds
clocksource structures for both TSC and HPET (ACPI PM is shared w/ i386).

[akpm@osdl.org: fix printk timestamps]
[akpm@osdl.org: fix printk ckeanups]
[akpm@osdl.org: hpet build fix]
Signed-off-by: John Stultz <johnstul@us.ibm.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Andi Kleen <ak@muc.de>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] time: x86_64: split x86_64/kernel/time.c up
john stultz [Fri, 16 Feb 2007 09:28:19 +0000 (01:28 -0800)]
[PATCH] time: x86_64: split x86_64/kernel/time.c up

In preparation for the x86_64 generic time conversion, this patch splits out
TSC and HPET related code from arch/x86_64/kernel/time.c into respective
hpet.c and tsc.c files.

[akpm@osdl.org: fix printk timestamps]
[akpm@osdl.org: cleanup]
Signed-off-by: John Stultz <johnstul@us.ibm.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Andi Kleen <ak@muc.de>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] time: x86_64: hpet_address cleanup
john stultz [Fri, 16 Feb 2007 09:28:18 +0000 (01:28 -0800)]
[PATCH] time: x86_64: hpet_address cleanup

In preparation for supporting generic timekeeping, this patch cleans up
x86-64's use of vxtime.hpet_address, changing it to just hpet_address as is
also used in i386.  This is necessary since the vxtime structure will be going
away.

Signed-off-by: John Stultz <johnstul@us.ibm.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Andi Kleen <ak@muc.de>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] generic: vsyscall-gtod support for GENERIC_TIME
john stultz [Fri, 16 Feb 2007 09:28:17 +0000 (01:28 -0800)]
[PATCH] generic: vsyscall-gtod support for GENERIC_TIME

Provides generic infrastructure for vsyscall-gtod.

[akpm@osdl.org: cleanup]
Signed-off-by: John Stultz <johnstul@us.ibm.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Andi Kleen <ak@muc.de>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] Add SysRq-Q to print timer_list debug info
Ingo Molnar [Fri, 16 Feb 2007 09:28:16 +0000 (01:28 -0800)]
[PATCH] Add SysRq-Q to print timer_list debug info

Add SysRq-Q to print pending timers and other timer info.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: john stultz <johnstul@us.ibm.com>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] Add debugging feature /proc/timer_list
Ingo Molnar [Fri, 16 Feb 2007 09:28:15 +0000 (01:28 -0800)]
[PATCH] Add debugging feature /proc/timer_list

add /proc/timer_list, which prints all currently pending (high-res) timers,
all clock-event sources and their parameters in a human-readable form.

Sample output:

Timer List Version: v0.1
HRTIMER_MAX_CLOCK_BASES: 2
now at 4246046273872 nsecs

cpu: 0
 clock 0:
  .index:      0
  .resolution: 1 nsecs
  .get_time:   ktime_get_real
  .offset:     1273998312645738432 nsecs
active timers:
 clock 1:
  .index:      1
  .resolution: 1 nsecs
  .get_time:   ktime_get
  .offset:     0 nsecs
active timers:
 #0: <f5a90ec8>, hrtimer_sched_tick, hrtimer_stop_sched_tick, swapper/0
 # expires at 4246432689566 nsecs [in 386415694 nsecs]
 #1: <f5a90ec8>, hrtimer_wakeup, do_nanosleep, pcscd/2050
 # expires at 4247018194689 nsecs [in 971920817 nsecs]
 #2: <f5a90ec8>, hrtimer_wakeup, do_nanosleep, irqbalance/1909
 # expires at 4247351358392 nsecs [in 1305084520 nsecs]
 #3: <f5a90ec8>, hrtimer_wakeup, do_nanosleep, crond/2157
 # expires at 4249097614968 nsecs [in 3051341096 nsecs]
 #4: <f5a90ec8>, it_real_fn, do_setitimer, syslogd/1888
 # expires at 4251329900926 nsecs [in 5283627054 nsecs]
  .expires_next   : 4246432689566 nsecs
  .hres_active    : 1
  .check_clocks   : 0
  .nr_events      : 31306
  .idle_tick      : 4246020791890 nsecs
  .tick_stopped   : 1
  .idle_jiffies   : 986504
  .idle_calls     : 40700
  .idle_sleeps    : 36014
  .idle_entrytime : 4246019418883 nsecs
  .idle_sleeptime : 4178181972709 nsecs

cpu: 1
 clock 0:
  .index:      0
  .resolution: 1 nsecs
  .get_time:   ktime_get_real
  .offset:     1273998312645738432 nsecs
active timers:
 clock 1:
  .index:      1
  .resolution: 1 nsecs
  .get_time:   ktime_get
  .offset:     0 nsecs
active timers:
 #0: <f5a90ec8>, hrtimer_sched_tick, hrtimer_restart_sched_tick, swapper/0
 # expires at 4246050084568 nsecs [in 3810696 nsecs]
 #1: <f5a90ec8>, hrtimer_wakeup, do_nanosleep, atd/2227
 # expires at 4261010635003 nsecs [in 14964361131 nsecs]
 #2: <f5a90ec8>, hrtimer_wakeup, do_nanosleep, smartd/2332
 # expires at 5469485798970 nsecs [in 1223439525098 nsecs]
  .expires_next   : 4246050084568 nsecs
  .hres_active    : 1
  .check_clocks   : 0
  .nr_events      : 24043
  .idle_tick      : 4246046084568 nsecs
  .tick_stopped   : 0
  .idle_jiffies   : 986510
  .idle_calls     : 26360
  .idle_sleeps    : 22551
  .idle_entrytime : 4246043874339 nsecs
  .idle_sleeptime : 4170763761184 nsecs

tick_broadcast_mask: 00000003
event_broadcast_mask: 00000001

CPU#0's local event device:

Clock Event Device: lapic
 capabilities:   0000000e
 max_delta_ns:   807385544
 min_delta_ns:   1443
 mult:           44624025
 shift:          32
 set_next_event: lapic_next_event
 set_mode:       lapic_timer_setup
 event_handler:  hrtimer_interrupt
  .installed:  1
  .expires:    4246432689566 nsecs

CPU#1's local event device:

Clock Event Device: lapic
 capabilities:   0000000e
 max_delta_ns:   807385544
 min_delta_ns:   1443
 mult:           44624025
 shift:          32
 set_next_event: lapic_next_event
 set_mode:       lapic_timer_setup
 event_handler:  hrtimer_interrupt
  .installed:  1
  .expires:    4246050084568 nsecs

Clock Event Device: hpet
 capabilities:   00000007
 max_delta_ns:   2147483647
 min_delta_ns:   3352
 mult:           61496110
 shift:          32
 set_next_event: hpet_next_event
 set_mode:       hpet_set_mode
 event_handler:  handle_nextevt_broadcast

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: john stultz <johnstul@us.ibm.com>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] Add debugging feature /proc/timer_stat
Ingo Molnar [Fri, 16 Feb 2007 09:28:13 +0000 (01:28 -0800)]
[PATCH] Add debugging feature /proc/timer_stat

Add /proc/timer_stats support: debugging feature to profile timer expiration.
Both the starting site, process/PID and the expiration function is captured.
This allows the quick identification of timer event sources in a system.

Sample output:

# echo 1 > /proc/timer_stats
# cat /proc/timer_stats
Timer Stats Version: v0.1
Sample period: 4.010 s
  24,     0 swapper          hrtimer_stop_sched_tick (hrtimer_sched_tick)
  11,     0 swapper          sk_reset_timer (tcp_delack_timer)
   6,     0 swapper          hrtimer_stop_sched_tick (hrtimer_sched_tick)
   2,     1 swapper          queue_delayed_work_on (delayed_work_timer_fn)
  17,     0 swapper          hrtimer_restart_sched_tick (hrtimer_sched_tick)
   2,     1 swapper          queue_delayed_work_on (delayed_work_timer_fn)
   4,  2050 pcscd            do_nanosleep (hrtimer_wakeup)
   5,  4179 sshd             sk_reset_timer (tcp_write_timer)
   4,  2248 yum-updatesd     schedule_timeout (process_timeout)
  18,     0 swapper          hrtimer_restart_sched_tick (hrtimer_sched_tick)
   3,     0 swapper          sk_reset_timer (tcp_delack_timer)
   1,     1 swapper          neigh_table_init_no_netlink (neigh_periodic_timer)
   2,     1 swapper          e1000_up (e1000_watchdog)
   1,     1 init             schedule_timeout (process_timeout)
100 total events, 25.24 events/sec

[ cleanups and hrtimers support from Thomas Gleixner <tglx@linutronix.de> ]
[bunk@stusta.de: nr_entries can become static]
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: john stultz <johnstul@us.ibm.com>
Cc: Roman Zippel <zippel@linux-m68k.org>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] hrtimers: prevent possible itimer DoS
Thomas Gleixner [Fri, 16 Feb 2007 09:28:12 +0000 (01:28 -0800)]
[PATCH] hrtimers: prevent possible itimer DoS

Fix potential setitimer DoS with high-res timers by pushing itimer rearm
processing to process context.

[Fixes from: Ingo Molnar <mingo@elte.hu>]
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Cc: john stultz <johnstul@us.ibm.com>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
17 years ago[PATCH] hrtimers: add high resolution timer support
Thomas Gleixner [Fri, 16 Feb 2007 09:28:11 +0000 (01:28 -0800)]
[PATCH] hrtimers: add high resolution timer support

Implement high resolution timers on top of the hrtimers infrastructure and the
clockevents / tick-management framework.  This provides accurate timers for
all hrtimer subsystem users.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Cc: john stultz <johnstul@us.ibm.com>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>