Lines Matching +full:mem +full:- +full:io
1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
9 * Copyright (c) 1996-1998 Crystal Semiconductor Corp.
192 subcard = card->cards; in csa_findsubcard()
211 device_set_desc(dev, card->name); in csa_probe()
229 scp->dev = dev; in csa_attach()
234 resp = &scp->res; in csa_attach()
235 scp->card = csa_findsubcard(dev); in csa_attach()
236 scp->binfo.card = scp->card; in csa_attach()
237 printf("csa: card is %s\n", scp->card->name); in csa_attach()
238 resp->io_rid = PCIR_BAR(0); in csa_attach()
239 resp->io = bus_alloc_resource_any(dev, SYS_RES_MEMORY, in csa_attach()
240 &resp->io_rid, RF_ACTIVE); in csa_attach()
241 if (resp->io == NULL) in csa_attach()
243 resp->mem_rid = PCIR_BAR(1); in csa_attach()
244 resp->mem = bus_alloc_resource_any(dev, SYS_RES_MEMORY, in csa_attach()
245 &resp->mem_rid, RF_ACTIVE); in csa_attach()
246 if (resp->mem == NULL) in csa_attach()
248 resp->irq_rid = 0; in csa_attach()
249 resp->irq = bus_alloc_resource_any(dev, SYS_RES_IRQ, in csa_attach()
250 &resp->irq_rid, RF_ACTIVE | RF_SHAREABLE); in csa_attach()
251 if (resp->irq == NULL) in csa_attach()
255 if (snd_setup_intr(dev, resp->irq, 0, csa_intr, scp, &scp->ih)) in csa_attach()
277 func->varinfo = &scp->binfo; in csa_attach()
278 func->func = SCF_PCM; in csa_attach()
279 scp->pcm = device_add_child(dev, "pcm", DEVICE_UNIT_ANY); in csa_attach()
280 device_set_ivars(scp->pcm, func); in csa_attach()
284 func->varinfo = &scp->binfo; in csa_attach()
285 func->func = SCF_MIDI; in csa_attach()
286 scp->midi = device_add_child(dev, "midi", DEVICE_UNIT_ANY); in csa_attach()
287 device_set_ivars(scp->midi, func); in csa_attach()
294 bus_teardown_intr(dev, resp->irq, scp->ih); in csa_attach()
296 bus_release_resource(dev, SYS_RES_IRQ, resp->irq_rid, resp->irq); in csa_attach()
298 bus_release_resource(dev, SYS_RES_MEMORY, resp->mem_rid, resp->mem); in csa_attach()
300 bus_release_resource(dev, SYS_RES_MEMORY, resp->io_rid, resp->io); in csa_attach()
318 resp = &scp->res; in csa_detach()
324 bus_teardown_intr(dev, resp->irq, scp->ih); in csa_detach()
325 bus_release_resource(dev, SYS_RES_IRQ, resp->irq_rid, resp->irq); in csa_detach()
326 bus_release_resource(dev, SYS_RES_MEMORY, resp->mem_rid, resp->mem); in csa_detach()
327 bus_release_resource(dev, SYS_RES_MEMORY, resp->io_rid, resp->io); in csa_detach()
339 resp = &scp->res; in csa_resume()
364 resp = &scp->res; in csa_alloc_resource()
369 res = resp->irq; in csa_alloc_resource()
374 res = resp->io; in csa_alloc_resource()
377 res = resp->mem; in csa_alloc_resource()
416 printf("ata-csa.c: we cannot use a filter here\n"); in csa_setup_intr()
420 resp = &scp->res; in csa_setup_intr()
427 if (func == NULL || irq != resp->irq) in csa_setup_intr()
430 switch (func->func) { in csa_setup_intr()
432 scp->pcmintr = intr; in csa_setup_intr()
433 scp->pcmintr_arg = arg; in csa_setup_intr()
437 scp->midiintr = intr; in csa_setup_intr()
438 scp->midiintr_arg = arg; in csa_setup_intr()
460 resp = &scp->res; in csa_teardown_intr()
467 if (func == NULL || irq != resp->irq || cookie != scp) in csa_teardown_intr()
470 switch (func->func) { in csa_teardown_intr()
472 scp->pcmintr = NULL; in csa_teardown_intr()
473 scp->pcmintr_arg = NULL; in csa_teardown_intr()
477 scp->midiintr = NULL; in csa_teardown_intr()
478 scp->midiintr_arg = NULL; in csa_teardown_intr()
496 resp = &scp->res; in csa_intr()
510 scp->binfo.hisr = hisr; in csa_intr()
513 if ((hisr & (HISR_VC0 | HISR_VC1)) != 0 && scp->pcmintr != NULL) { in csa_intr()
514 scp->pcmintr(scp->pcmintr_arg); in csa_intr()
517 if ((hisr & HISR_MIDI) != 0 && scp->midiintr != NULL) { in csa_intr()
518 scp->midiintr(scp->midiintr_arg); in csa_intr()
533 resp = &scp->res; in csa_initialize()
545 * AC-link. Otherwise, we won't be able to bring up the link. in csa_initialize()
664 * the codec is pumping ADC data across the AC-link. in csa_initialize()
870 * set DCV - will clear when process completed in csa_readcodec()
871 * set CRW - Read command in csa_readcodec()
872 * set VFRM - valid frame enabled in csa_readcodec()
873 * set ESYN - ASYNC generation enabled in csa_readcodec()
874 * set RSTN - ARST# inactive, AC97 codec not reset in csa_readcodec()
880 csa_writeio(resp, BA0_ACCAD, offset - BA0_AC97_RESET); in csa_readcodec()
921 * VSTS - Valid Status in csa_readcodec()
958 * set DCV - will clear when process completed in csa_writecodec()
959 * set VFRM - valid frame enabled in csa_writecodec()
960 * set ESYN - ASYNC generation enabled in csa_writecodec()
961 * set RSTN - ARST# inactive, AC97 codec not reset in csa_writecodec()
967 csa_writeio(resp, BA0_ACCAD, offset - BA0_AC97_RESET); in csa_writecodec()
1005 …return bus_space_read_4(rman_get_bustag(resp->io), rman_get_bushandle(resp->io), offset) & 0xfffff… in csa_readio()
1017 bus_space_write_4(rman_get_bustag(resp->io), rman_get_bushandle(resp->io), offset, data); in csa_writeio()
1025 return bus_space_read_4(rman_get_bustag(resp->mem), rman_get_bushandle(resp->mem), offset); in csa_readmem()
1031 bus_space_write_4(rman_get_bustag(resp->mem), rman_get_bushandle(resp->mem), offset, data); in csa_writemem()