32#include <machine/bus.h>
39#ifdef HAVE_KERNEL_OPTION_HEADERS
66#define MPU_STATMASK 0xc0
67#define MPU_OUTPUTBUSY 0x40
68#define MPU_INPUTBUSY 0x80
90 return bus_space_read_4(rman_get_bustag(scp->
io), rman_get_bushandle(scp->
io),
offset) & 0xffffffff;
99 bus_space_write_4(rman_get_bustag(scp->
io), rman_get_bushandle(scp->
io),
offset,
data);
116 unsigned int uart_stat;
132 printf(
"csamidi_mread: unknown register %d\n",
reg);
169 printf(
"csamidi_mwrite: unknown register %d\n",
reg);
181 mtx_unlock(&scp->
mtx);
197 device_set_desc(
dev,
"CS461x MIDI");
208 scp = device_get_softc(
dev);
216 scp->
io = bus_alloc_resource_any(
dev, SYS_RES_MEMORY,
224 if (scp->
mpu == NULL) {
229 mtx_init(&scp->
mtx, device_get_nameunit(
dev),
"csamidi softc",
240 bus_release_resource(
dev, SYS_RES_MEMORY, scp->
io_rid, scp->
io);
252 scp = device_get_softc(
dev);
256 if (scp->
io != NULL) {
257 bus_release_resource(
dev, SYS_RES_MEMORY, scp->
io_rid,
261 mtx_destroy(&scp->
mtx);
static kobj_method_t csamidi_mpu_methods[]
static devclass_t midicsa_devclass
static void csamidi_midi_intr(void *arg)
MODULE_VERSION(snd_csa_midi, 1)
static void csamidi_mwrite(struct mpu401 *arg __unused, void *cookie, int reg, unsigned char b)
static u_int32_t csamidi_readio(struct csa_midi_softc *scp, u_long offset)
static int midicsa_detach(device_t dev)
static device_method_t midicsa_methods[]
static int midicsa_probe(device_t dev)
SND_DECLARE_FILE("$FreeBSD$")
static DEFINE_CLASS(csamidi_mpu, csamidi_mpu_methods, 0)
static int midicsa_attach(device_t dev)
static int csamidi_muninit(struct mpu401 *arg __unused, void *cookie)
DRIVER_MODULE(snd_csa_midi, csa, midicsa_driver, midicsa_devclass, 0, 0)
static struct kobj_class csamidi_mpu_class
static driver_t midicsa_driver
static void csamidi_writeio(struct csa_midi_softc *scp, u_long offset, u_int32_t data)
static unsigned char csamidi_mread(struct mpu401 *arg __unused, void *cookie, int reg)
MODULE_DEPEND(snd_csa_midi, snd_csa, 1, 1, 1)
int mpu401_uninit(struct mpu401 *m)
struct mpu401 * mpu401_init(kobj_class_t cls, void *cookie, driver_intr_t softintr, mpu401_intr_t **cb)
int mpu401_intr_t(struct mpu401 *_obj)