Von Christoph Hellwig am Mi, 21. Februar 2001 um 15:24 #
@Mario
doch - schau dir cardbus an, dass geht!
Jeder Treiber, der die Linux-2.4 API unstertuetzt, unterstuetzt auch sowas wie diese "Phase2".
Schau dir doch die API mal an:
Beim initialisieren registrierst du einen PCI-Treiber (struct pci_driver), der hat nen namen, eine tabelle mit PCI-IDs die er moechte und 4 methoden: probe, remove, suspend und resume (und noch ein paar felder, die den Treiber aber nicht zu interresieren haben).
Wenn der Treiber initialisiert wird, werden nebenbei auch noch afuer lle zu dem Zeitpunkt vorhanden Karten ->probe() aufgerufen - dass koennte man zwar separieren, aber eigentlich ist es egal.
Wenn nun eine neue Karte hinzukommt, muss man ->probe nurnoch fuer das struct pci_dev der neuen aufrufen.
Und gerade _das_ ist der Punkt: Ein Linux-2.4 PCI treiber kann die hardware auch weit nach dem booten noch initialisieren.
doch - schau dir cardbus an, dass geht!
Jeder Treiber, der die Linux-2.4 API unstertuetzt, unterstuetzt auch sowas wie diese "Phase2".
Schau dir doch die API mal an:
Beim initialisieren registrierst du einen PCI-Treiber (struct pci_driver), der hat nen namen, eine tabelle mit PCI-IDs die er moechte und 4 methoden: probe, remove, suspend und resume (und noch ein paar felder, die den Treiber aber nicht zu interresieren haben).
Wenn der Treiber initialisiert wird, werden nebenbei auch noch afuer lle zu dem Zeitpunkt vorhanden Karten ->probe() aufgerufen - dass koennte man zwar separieren, aber eigentlich ist es egal.
Wenn nun eine neue Karte hinzukommt, muss man ->probe nurnoch fuer das struct pci_dev der neuen aufrufen.
Und gerade _das_ ist der Punkt: Ein Linux-2.4 PCI treiber kann die hardware auch weit nach dem booten noch initialisieren.
Christoph