- 30 Oct, 2002 10 commits
-
-
Patrick Mochel authored
- Define a device subsystem and register it on startup. - Fill it in with fields converted from driverfs-style fields. - Convert device_{create,remove}_file() to create files in sysfs. - Add default device attributes to device subsystem. - Make sure devices get proper kobject familial pointers and that the kobjects are registered.
-
Patrick Mochel authored
into osdl.org:/home/mochel/src/kernel/devel/linux-2.5-kobject
-
Patrick Mochel authored
struct subsystem may now contain a pointer to a NULL-terminated array of default attributes to be exported when an object is registered with the subsystem. kobject registration will check the return values of the directory creation and the creation of each file, and handle it appropriately. The documentation has also been updated.
-
Patrick Mochel authored
Previously, sysfs read() and write() calls looked for sysfs_ops in the struct sysfs_dir, in the kobject. Since objects belong to a subsystem, and is a member of a group of like devices, the sysfs_ops have been moved to struct subsystem, and are referenced from there. The only remaining member of struct sysfs_dir is the dentry of the object's directory. That is moved out of the dir struct and directly into struct kobject. That saves us 4 bytes/object. All of the sysfs functions that referenced the struct have been changed to just reference the dentry.
-
Patrick Mochel authored
A struct subsystem is basically a collection of objects of a certain type, and some callbacks to operate on objects of that type. subsystems contain embedded kobjects themselves, and have a similar set of library routines that kobjects do, which are mostly just wrappers for the correlating kobject routines. kobjects are inserted in depth-first order into their subsystem's list of objects. Orphan kobjects are also given foster parents that point to their subsystem. This provides a bit more rigidity in the hierarchy, and disallows any orphan kobjects. When an object is unregistered, it is removed from its subsystem's list. When the objects' refcount hits 0, the subsystem's ->release() callback is called. Documentation describing the objects and the interfaces has also been added.
-
bk://linuxusb.bkbits.net/linus-2.5Linus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-
Greg Kroah-Hartman authored
-
Alexander Viro authored
Got it. Breakage happened when Jens was switching to partial completions - !uptodate is not quite the same as !err ;-) With this fixed everything seems to work nicely.
-
http://linux-isdn.bkbits.net/linux-2.5.isdnLinus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-
Greg Kroah-Hartman authored
into kroah.com:/home/linux/linux/BK/gregkh-2.5
-
- 29 Oct, 2002 30 commits
-
-
Patrick Mochel authored
It's now int sysfs_create_link(struct kobject * kobj, struct kobject * target, char * name) So, the caller doesn't have to determine the path of the target nor the depth of the object we're creating the symlink for; it's all taken care of.
-
David Brownell authored
This mentions the web page with information about how to use the 'usbtest' driver.
-
David Brownell authored
This is a version of a patch I sent out last Friday to help address some of the "bad entry" errors that some folk were seeing, seemingly only with control requests. The fix is just to not try being clever: remove one TD at a time and patch the ED as if that TD had completed normally, then do the next ... don't try to patch just once in this fault case. (And it nukes some debug info I accidently submitted.) I've gotten preliminary feedback that this helps.
-
Greg Kroah-Hartman authored
-
Greg Kroah-Hartman authored
-
Greg Kroah-Hartman authored
-
Greg Kroah-Hartman authored
-
Greg Kroah-Hartman authored
-
Greg Kroah-Hartman authored
-
David Brownell authored
This patch splits up the usb structures to have two structs, "usb_XXX_descriptor" with just the descriptor, and "usb_host_XXX" (or something similar) to wrap it and add the "extra" pointers plus the array of related descriptors that the host parsed during enumeration. (2 or 3 words extra in each"usb_host_XXX".) This further matches the "on the wire" data and enables the gadget drivers to share the same header file. Covers all the linux/drivers/usb/* and linux/sound/usb/* stuff, but not a handful of other drivers (bluetooth, iforce, hisax, irda) that are out of the usb tree and will likely be affected.
-
Patrick Mochel authored
into osdl.org:/home/mochel/src/kernel/devel/linux-2.5-kobject
-
Kai Germaschewski authored
into tp1.ruhr-uni-bochum.de:/home/kai/src/kernel/v2.5/linux-2.5.isdn
-
Kai Germaschewski authored
We used to lock (ind mod use count) all drivers just in case, but it makes more sense to only lock the one we're just using, in particular since the old scheme was rather broken when insmod'ing a new driver later.
-
Kai Germaschewski authored
Now that ttyI's take care of their own business, some cross links between isdn_common and isdn_tty can finally go away.
-
Kai Germaschewski authored
Again, use a per ttyI timer handler to feed arrived data into the ttyI. Really, there shouldn't be the need for any timer at all, rather working flow control, but that'll take a bit to fix.
-
Kai Germaschewski authored
There's really no good reason to delay sending out data on a ttyI, ISDN is slow enough anyway ;) (There is one reason, i.e. allowing to coalesce multiple chars, but that is better fixed by having the upper levels (tty) send larger buffers)
-
Kai Germaschewski authored
Again, use a per ttyI timer handler for NO CARRIER messages, only activated when used.
-
Kai Germaschewski authored
Again, use a per ttyI timer handler for RING messages, only activated when used.
-
Kai Germaschewski authored
Instead of having one common timer and walking the list of all ISDN channels, which might be possibly associated with a ttyI and even more possibly so waiting for the silence period after "+++", just use a per ttyI timer, which only gets activated when necessary.
-
Kai Germaschewski authored
The common way in the kernel is to pass around the struct (e.g. struct net_device), and leave the user the possibility to add its private data using ::priv, so do it the same way when accessing an ISDN channel.
-
Kai Germaschewski authored
Merge the two different types of callbacks into just one, there's no good reasons for the receive callback to be different, in particular since we pass things through the same state machine later anyway.
-
Kai Germaschewski authored
The internal driver/channel relations shouldn't leak out to users of the ISDN code, and isdn_slot_all_eaz() can be taken over by common code as well.
-
Kai Germaschewski authored
For some reason, isdnloop didn't support the transparent encoding, which is necessary for testing V.110. Testing also found a typo causing an oops in isdn_common.c. Fixed.
-
Kai Germaschewski authored
It'd probably make more sense to provide it in library form to the hardware drivers which don't support V.110 natively, but for now it's at least collected in one place.
-
Kai Germaschewski authored
Remove the legacy functions isdn_slot_readbchan(int slot, u_char *, u_char *, int); isdn_slot_driver(int slot); isdn_slot_channel(int slot); isdn_slot_set_usage(int slot, int usage); isdn_drv_writebuf_skb(int di, int ch, int x, struct sk_buff *skb); isdn_drv_hdrlen(int di); Most of their tasks have been taken over by isdn_common.c, or are obsoleted by using the isdn_slot based approach.
-
Kai Germaschewski authored
Moving the tty receive queue into the tty-specific data in fact simplifies the common code (which doesn't need to know it at all, now), and the tty code, which can access the queue more directly.
-
Kai Germaschewski authored
We used to intercept status callbacks which were for specific channels instead of the driver before passing them to the driver and short-cutting to them to the per-channel state machine. Do it correctly for now, i.e. callback -> driver -> channel, even though that might have a small performance hit. Correctness first.
-
Kai Germaschewski authored
ISDN still has a huge global struct called "dev", which is a mess of parts which should be private to their respective subsystem. It's supposed to die, this is another step in making that happen.
-
Kai Germaschewski authored
Change the incoming call logic: Incoming calls are signalled to the net interface code first, then the tty code. It's the lower level's responsibility to claim the call by issueing ISDN_CMD_ACCEPTD now. Remove some crud which is handled by isdn_common state machines now.
-
Kai Germaschewski authored
They were never used except for passing the state to userspace, but not used in any application I know of. If necessary, the information can easily be recovered by looking at fi.state == ST_ACTIVE
-