| Age | Commit message (Collapse) | Author |
|
From: Christoph Hellwig <hch@lst.de>
Some people may already have noticed that I've been revamping the devfs API
recently. The worst offender still left is devfs_register, it's prototype
is:
devfs_handle_t devfs_register(devfs_handle_t dir,
const char *name, unsigned int flags,
unsigned int major, unsigned int minor,
umode_t mode, void *ops, void *info)
Of these:
- dir and flags are always zero
- the return value is never used
- info is only used in one driver which doesn't even need it for
operation
- umode_t always describes a character device
- name very often comes from a stack buffer we sprintf'ed into
so obviously we really want a much simpler API instead. My first draft for
this was:
int devfs_mk_cdev(dev_t dev, umode_t mode,
struct file_operations *fops, void *info,
const char *fmt, ...)
this removes the unused argumens, switches to a proper dev_t for the device
number and allows to directly use a printf-like expression as name, getting
rid of the temporary buffers.
Now Al has reappeared and put the first steps of his CIDR for charater device
on public ftp and we'll soon have a similar lookup object + fops mechanism in
generic code as we already habe for blockdevices, i.e. the devfs code to
assign fops from an entry will become superflous as generic code already does
it. That means the fops and info arguments are obsolete before they were
introduced, so I'd like to propose the following API instead:
int devfs_mk_cdev(dev_t dev, umode_t mode, const char *fmt, ...)
which is much nicer anyway. The educated reader will notice that this is
exactly the same prototype devfs_mk_bdev has so I'll probably get suggestions
to merge those two into some kind of devfs_mk_node soon. Personally I don't
like that as character and blockdevices are two really separate entinities
and I'll like to keep them as separate as possible.
Example patch that introduces the API and converts drivers/input attached.
Every driver which calls devfs_mk_cdev (about 50) needs conversion. Note
that the transition can happen in pieces - devfs_register continues to work
after this patch, it's just the plan to get rid of it in the end.
|
|
|
|
Now that devfs_handle_t is gone from all structs there is no
reason to include it in headers.
Fix the fallout by including previously implicit headers and fixing
the drivers that didn't include devfs_fs_kernel.h explicitly.
|
|
Make sure input always uses devfs_remove. While at it I've also
remove lots of code duplication - every upper input driver contained
the code surrounding devfs_unregister in two identical copies.
|
|
value all the way from an interrupt handler to keyboard.c
that can display it.
|
|
input.h wants fs.h and timer.h, not sched.h
|
|
input_event().
input_register_device() usually does that, but some drivers will call
input_event() before registering to pre-load the absolute values in
struct input_dev in an easy way.
|
|
standard for extended keys.
|
|
|
|
- Replace struct input_dev::handle with a standard linked list
- Replace struct input_handler::handle with a standard linked list
- Replace struct input_handle's next pointers with struct list_heads
- Update users of the lists
- Add macros for converting from the struct list_head to various types
|
|
- Update all accesses to list to use generic list functions.
|
|
- Remove struct input_dev * input_dev; replace with static LIST_HEAD(input_dev_list).
- Change all list manipulation from manual to using generic list helpers.
|
|
|
|
Recompute keybit when keycode table changes.
Stricter checks on input keycode/scancode values.
|
|
as functions interfacing to the input core. PC-Speaker handling is
moved to a separate file. Uinput is moved to a input/misc directory.
|
|
|
|
easier for userspace people, as Brad Hards has suggested.
|
|
|
|
|
|
values on input devices. This is something the X peoople
really wanted.
Rename input_devinfo to input_id, it's shorter and more
to the point.
Remove superfluous printks in uinput.c
Clean up return values in evdev.c ioctl.
|
|
from a device belong together was implemented - input_sync() and
EV_SYN. Touches every input driver. The first to make use of it
is mousedev.c to properly merge events into PS/2 packets.
|
|
of a PVR support patch.
|
|
struct by a single struct to simplify passing it around and to
userspace.
|
|
|
|
|
|
|
|
drivers. Most of this is from 2.4. Almost all of this work was
done by Ben Herrenschmidt.
|
|
This patch updates the input core to the current version, fixing a bunch
of bugs, adding hotplug support and a listing of available input devices
in /proc. The later is very useful for troubleshooting.
Vojtech Pavlik
SuSE Labs
|
|
- 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
|
|
|