SB cards are first probed by sbcard driver. It allocates the resources, followed by attaching child devices(pcm, midi/mpu - not functional, midi/opl). The device type(pcm/mpu/opl) is passed to the drivers via the ivars of child devices, so that the drivers can attach the appropriate devices. The following figure shows the hierarcy of the drivers and their identifiers used upon probing. ISA(PNP) | |PNP ID +------->sbcard | +----------------->pcm |func code(ivars) +----------------->midi(mpu/opl) When pcm/midi tries to allocate the resource, sbcard simply passes the pointer to the resource. The interrupt is shared among the child drivers, enabling both audio playing/recording and midi input(not tested well, but at least receives active sensings from my SC-88 :).