From: Adam Belay <ambx1@netscape.net>
To: Patrick Mochel <mochel@osdl.org>, linux-kernel@vger.kernel.org
Subject: driverfs: [PATCH] remove bus and improve driver management (2.5.30)
Date: Wed, 14 Aug 2002 22:16:31 +0000 [thread overview]
Message-ID: <3D5AD6BF.8060609@netscape.net> (raw)
[-- Attachment #1: Type: text/plain, Size: 2792 bytes --]
This patch removes bus.c from the Driver Model and replaces it with
a more advanced and scaleable driver subsystem.
The following diagram illustrates the current Driver Model
implementation for drivers:
bus-> pci-> parport_pc
agpgart
cardbus
usb->
hid
Lets say that the usb bus is connected to pci0. Notice how the usb
driver has no linkage to the pci driver. It should in order to take
full advatage of the power management and other features of the driver
model. Of course the usb bus could create another driver and register
it to pci but that would be wasteful and overly complicated. Also
notice that parport_pc could have a printer attached to it. The lp
driver would control this device but there is no way to represent the lp
driver in the current model since only buses can have child drivers.
The following diagram illustrates the driver implementation after this
patch: (this assumes that the listed driver have been converted to the
Driver Model)
driver-> pci-> usb-> hid
parport_pc-> lp
agpgart
cardbus
Notice that this implementation not only solves the problems listed
earlier but also it is more scalable because it lists the drivers by
thier true relationship to one another. These changes actually reduce
the total amount of code as well as the complexity of the entire system
resulting in better efficiency and perhaps even less memory consumption.
`This patch also provides user level driver management support
through the advanced features of the new interface. It creates a file
entry named "driver" for each device.
To attach a driver simply echo the name of the driver you want to
attach. For example:
#cd ./root/pci0/00:00.0
#echo "agpgart" > driver
To remove a driver simply echo remove to the driver file while a driver
is loaded. For example:
#echo "remove" > driver
If you read the driver file you will get the name of the loaded driver
if a driver is loaded. For example:
#cat driver
output: agpgart
This patch is against 2.5.30. The following still needs to be done:
1.) port to 2.5.31
2.) update bus drivers, currently only pci has been ported and tested,
use the other buses at your own risk
3.) explore the possibility of linking the driver and root trees. I
have included an unused and untested function that will provide at least
a framework for this. See the code and comments in fs.c. The function
is called "device_driver_link".
Sincerely,
Adam Belay
*because the patch is so large I have gzipped it and attached it. It is
available in other formats upon request.
[-- Attachment #2: a.patch.gz --]
[-- Type: application/octet-stream, Size: 7302 bytes --]
next reply other threads:[~2002-08-15 2:09 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-08-14 22:16 Adam Belay [this message]
2002-08-15 5:04 ` driverfs: [PATCH] remove bus and improve driver management (2.5.30) Greg KH
2002-08-15 10:57 ` Adam Belay
[not found] ` <3D5B885E.5000407@netscape.net>
2002-08-15 16:23 ` Greg KH
2002-08-15 16:48 ` Patrick Mochel
2002-08-15 20:53 ` driverfs: driver interface Adam Belay
2002-08-16 1:00 ` Greg KH
2002-08-15 16:44 ` driverfs: [PATCH] remove bus and improve driver management (2.5.30) Patrick Mochel
2002-08-15 15:35 ` Adam Belay
-- strict thread matches above, loose matches on Subject: below --
2002-08-14 22:46 Adam Belay
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3D5AD6BF.8060609@netscape.net \
--to=ambx1@netscape.net \
--cc=linux-kernel@vger.kernel.org \
--cc=mochel@osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox