Create "smb" device when "smbus" device is attached, so that it's
possible to load/unload smb.ko and smbus-implementing driver in any order, and get expected results.
This commit is contained in:
parent
6e683e52b7
commit
72e61e2d3b
@ -58,13 +58,11 @@ struct smb_softc {
|
||||
static int smb_probe(device_t);
|
||||
static int smb_attach(device_t);
|
||||
static int smb_detach(device_t);
|
||||
static void smb_identify(driver_t *driver, device_t parent);
|
||||
|
||||
static devclass_t smb_devclass;
|
||||
|
||||
static device_method_t smb_methods[] = {
|
||||
/* device interface */
|
||||
DEVMETHOD(device_identify, smb_identify),
|
||||
DEVMETHOD(device_probe, smb_probe),
|
||||
DEVMETHOD(device_attach, smb_attach),
|
||||
DEVMETHOD(device_detach, smb_detach),
|
||||
@ -94,14 +92,6 @@ static struct cdevsw smb_cdevsw = {
|
||||
.d_name = "smb",
|
||||
};
|
||||
|
||||
static void
|
||||
smb_identify(driver_t *driver, device_t parent)
|
||||
{
|
||||
|
||||
if (!device_find_child(parent, "smb", -1))
|
||||
device_add_child(parent, "smb", -1);
|
||||
}
|
||||
|
||||
static int
|
||||
smb_probe(device_t dev)
|
||||
{
|
||||
|
@ -49,11 +49,12 @@ static devclass_t smbus_devclass;
|
||||
* Device methods
|
||||
*/
|
||||
static int smbus_probe(device_t);
|
||||
static int smbus_attach(device_t);
|
||||
|
||||
static device_method_t smbus_methods[] = {
|
||||
/* device interface */
|
||||
DEVMETHOD(device_probe, smbus_probe),
|
||||
DEVMETHOD(device_attach, bus_generic_attach),
|
||||
DEVMETHOD(device_attach, smbus_attach),
|
||||
DEVMETHOD(device_detach, bus_generic_detach),
|
||||
|
||||
/* bus interface */
|
||||
@ -81,6 +82,15 @@ smbus_probe(device_t dev)
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
smbus_attach(device_t dev)
|
||||
{
|
||||
device_add_child(dev, NULL, -1);
|
||||
bus_generic_attach(dev);
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
void
|
||||
smbus_generic_intr(device_t dev, u_char devaddr, char low, char high)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user