| Age | Commit message (Collapse) | Author |
|
Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Michael Kerrisk <mtk.manpages@gmail.com>
Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Acked-by: Dave Jones <davej@redhat.com>
|
|
Now that hiddev_driver isn't being used for anything, there's no
reason to keep it around. This patch (as1419) gets rid of it
entirely.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
|
|
fix the following 'make headers_check' warning:
usr/include/linux/hiddev.h:40: found __[us]{8,16,32,64} type without #include <linux/types.h>
Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com>
|
|
Fix hiddev.h example code.
To get the correct usage code, you need to set report_type and
report_id.
Signed-off-by: Antonio Ospite <ospite@studenti.unina.it>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
|
|
Fix mixed space and tabs in example code.
Signed-off-by: Antonio Ospite <ospite@studenti.unina.it>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
|
|
Move connecting from usbhid to the hid layer and fix also hidp in
that manner.
This removes all the ignore/force hidinput/hiddev connecting quirks.
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
|
|
This patch removes CVS keywords that weren't updated for a long time
from comments.
Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
|
|
Maintain a per-CPU global "struct pt_regs *" variable which can be used instead
of passing regs around manually through all ~1800 interrupt handlers in the
Linux kernel.
The regs pointer is used in few places, but it potentially costs both stack
space and code to pass it around. On the FRV arch, removing the regs parameter
from all the genirq function results in a 20% speed up of the IRQ exit path
(ie: from leaving timer_interrupt() to leaving do_IRQ()).
Where appropriate, an arch may override the generic storage facility and do
something different with the variable. On FRV, for instance, the address is
maintained in GR28 at all times inside the kernel as part of general exception
handling.
Having looked over the code, it appears that the parameter may be handed down
through up to twenty or so layers of functions. Consider a USB character
device attached to a USB hub, attached to a USB controller that posts its
interrupts through a cascaded auxiliary interrupt controller. A character
device driver may want to pass regs to the sysrq handler through the input
layer which adds another few layers of parameter passing.
I've build this code with allyesconfig for x86_64 and i386. I've runtested the
main part of the code on FRV and i386, though I can't test most of the drivers.
I've also done partial conversion for powerpc and MIPS - these at least compile
with minimal configurations.
This will affect all archs. Mostly the changes should be relatively easy.
Take do_IRQ(), store the regs pointer at the beginning, saving the old one:
struct pt_regs *old_regs = set_irq_regs(regs);
And put the old one back at the end:
set_irq_regs(old_regs);
Don't pass regs through to generic_handle_irq() or __do_IRQ().
In timer_interrupt(), this sort of change will be necessary:
- update_process_times(user_mode(regs));
- profile_tick(CPU_PROFILING, regs);
+ update_process_times(user_mode(get_irq_regs()));
+ profile_tick(CPU_PROFILING);
I'd like to move update_process_times()'s use of get_irq_regs() into itself,
except that i386, alone of the archs, uses something other than user_mode().
Some notes on the interrupt handling in the drivers:
(*) input_dev() is now gone entirely. The regs pointer is no longer stored in
the input_dev struct.
(*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking. It does
something different depending on whether it's been supplied with a regs
pointer or not.
(*) Various IRQ handler function pointers have been moved to type
irq_handler_t.
Signed-Off-By: David Howells <dhowells@redhat.com>
(cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)
|
|
From: Jens B. Jorgensen <jbj1@ultraemail.net>
Signed-off-by: Vojtech Pavlik <vojtech@suse.cz>
|
|
hiddev.h needs hid.h but doesn't include it. Since hid.h is private anyway
just eliminate the need for it it in the first place.
Signed-off-by: Adam Kropelin <akropel1@rochester.rr.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
|
|
be set in a single request. Also fixes sizes of fields
in hiddev structs to use _uXX types.
|
|
|
|
value all the way from an interrupt handler to keyboard.c
that can display it.
|
|
I thought I'd send the results of some experimentation of mine getting
an MGE UPS (Evolution) to talk to 2.5 ... basically it behaved after
some patches, though the "hidups" driver didn't. They're all attached:
- "hiddev-1.patch" ... The default queue size was so small that this
low-speed device couldn't queue up about 110 control requests
(that many reports to check!) during init.
- "hiddev-2.patch" ... Makes hid debug output more useful by
(a) making it compile again;
(b) adding lots of "Power Device" and "Battery System" reports,
and putting all that data into the readonly data section;
(c) actually printing the usage strings, if they're known;
(d) printing a message when neither input nor hiddev claim
the device ... likely something's wrong, like someone
didn't configure in input subsystem or hiddev support.
- "hiddev-3.patch" ... Teaches hiddev to expose the physical ID
just like the input event framework does. Useful to help sort
out which UPS is which, so you won't power down the wrong set
of servers by accident.
|
|
Get rid of #ifdefs in hid-core again. (For you, Greg.)
Move the uref generation code from hid-core to hiddev to make things cleaner.
|
|
I've merged a patch Paul Stewart sent me some time ago, which should make life
easier for the guys writing UPS daemons.
|
|
updated the version number due the previous changes
|
|
I took some time to clean up the code a little, and to add the new
calls to the documentation. See patch below.
--
Paul
|
|
I've written a patch Vojtech and I discussed for enhancing the
hiddev code to optionally provide more detailed output on read().
The old functionality is still supported by default, and in
situations where HID usage codes are unique across reports, the
old method is still preferable due to its terseness.
The new method provides the ability to determine exactly which
value has changed, in cases where the HID usage codes are not
unique. It also provides a means to optionally receive notification
when input reports are received from the device, whether or not
any of the values in the report have changed.
The details of the changes are as follows:
- All current code behaves identically
- A new ioctl pair HIDIOCGFLAG/HIDIOCSFLAG gets and clears
flags on the hiddev device.
- If you set the flag HIDDEV_FLAG_UREF, the read() call switches
from reading hiddev_event structures to hiddev_usage_ref
structures. The change takes effect immediately, even to
already queued events that haven't been read() yet. Here's
an example of enabling FLAG_UREF:
{
int flag = HIDDEV_FLAG_UREF;
if (ioctl(fd, HIDIOCSFLAG, &flag) != 0) {
perror("ioctl");
exit(1);
}
}
- With the HIDDEV_FLAG_REPORT set (which is only allowed if
HIDDEV_FLAG_UREF is also set), there is a special uref that
will be read() in addition to the ones corresponding to
changes in the device state: when uref.field_index is set to
HID_FIELD_INDEX_NONE, this uref is a notification that the
report referred to by report_type and report_id has been
received from the device. This can be useful in situations
when the notification of the arrival of a report is useful
even if there is no change in state.
|
|
- Greg KH: start migration to new "min()/max()"
- Roman Zippel: move affs over to "min()/max()".
- Vojtech Pavlik: VIA update (make sure not to IRQ-unmask a vt82c576)
- Jan Kara: quota bug-fix (don't decrement quota for non-counted inode)
- Anton Altaparmakov: more NTFS updates
- Al Viro: make nosuid/noexec/nodev be per-mount flags, not per-filesystem
- Alan Cox: merge input/joystick layer differences, driver and alpha merge
- Keith Owens: scsi Makefile cleanup
- Trond Myklebust: fix oopsable race in locking code
- Jean Tourrilhes: IrDA update
|