Re: Driver core change request

Dmitry Torokhov
2004-10-08T03:06:28Z

On Thursday 07 October 2004 04:40 pm, Greg KH wrote:
> On Wed, Oct 06, 2004 at 11:54:18PM -0500, Dmitry Torokhov wrote:
> > Hi,
> >
> > I am reworking my sysfs serio patches (trying to get dynamic psmouse
> > protocol switching) and I am wondering if we could export device_attach
> > function. Serio system allows user to request device rescan - force current
> > driver to let go off the device and find another suitable driver. Also user
> > can manually request device to be disconnected/connected to a driver. By
> > having device_attach exported I could get rid of some duplicated code.
>
> driver_attach() is global, so I don't have a problem with making
> device_attach() global either. Just send me a patch :)
>

OK. BTW, while driver_attach is global it is not exported. Should I mark both
of them EXPORT_GPL_ONLY?

> >
> > I.e driver_probe_device is exported. Does it have a chance to be accepted?
>
> What's wrong with doing what the pci core does in this situation and
> call driver_attach()?
>

Well, I need to be able to work with a specific port so when I am doing

echo -n "serio_raw" > /sys/bus/serio/devices/serio1/driver

I want only serio1 be affected, not every disconnected port that can work
with serio_raw. driver_attach() will claim all of them.

The difference is that serio system allows you to have several drivers
that can drive the same hardware and user gets to chose which driver gets
the honors. I.e given 4 PS/2 ports in the system user might want to have
raw access to port #2 (via serio_raw) while using standard psmouse driver
for the rest of them. With PCI if you have 2 drivers and 2 exactly same
cards you do not have ability to bind first driver to one of the cards and
second driver to the other.

--
Dmitry