rme32 241 sound/pci/rme32.c #define RME32_ISWORKING(rme32) ((rme32)->wcreg & RME32_WCR_START) rme32 242 sound/pci/rme32.c #define RME32_PRO_WITH_8414(rme32) ((rme32)->pci->device == PCI_DEVICE_ID_RME_DIGI32_PRO && (rme32)->rev == RME32_PRO_REVISION_WITH_8414) rme32 256 sound/pci/rme32.c return (readl(rme32->iobase + RME32_IO_GET_POS) rme32 265 sound/pci/rme32.c struct rme32 *rme32 = snd_pcm_substream_chip(substream); rme32 266 sound/pci/rme32.c count <<= rme32->playback_frlog; rme32 267 sound/pci/rme32.c pos <<= rme32->playback_frlog; rme32 268 sound/pci/rme32.c memset_io(rme32->iobase + RME32_IO_DATA_BUFFER + pos, 0, count); rme32 277 sound/pci/rme32.c struct rme32 *rme32 = snd_pcm_substream_chip(substream); rme32 278 sound/pci/rme32.c count <<= rme32->playback_frlog; rme32 279 sound/pci/rme32.c pos <<= rme32->playback_frlog; rme32 280 sound/pci/rme32.c if (copy_from_user_toio(rme32->iobase + RME32_IO_DATA_BUFFER + pos, rme32 291 sound/pci/rme32.c struct rme32 *rme32 = snd_pcm_substream_chip(substream); rme32 292 sound/pci/rme32.c count <<= rme32->capture_frlog; rme32 293 sound/pci/rme32.c pos <<= rme32->capture_frlog; rme32 295 sound/pci/rme32.c rme32->iobase + RME32_IO_DATA_BUFFER + pos, rme32 405 sound/pci/rme32.c writel(rme32->wcreg | RME32_WCR_PD, rme32 406 sound/pci/rme32.c rme32->iobase + RME32_IO_CONTROL_REGISTER); rme32 407 sound/pci/rme32.c writel(rme32->wcreg, rme32->iobase + RME32_IO_CONTROL_REGISTER); rme32 414 sound/pci/rme32.c rate = ((rme32->wcreg >> RME32_WCR_BITPOS_FREQ_0) & 1) + rme32 415 sound/pci/rme32.c (((rme32->wcreg >> RME32_WCR_BITPOS_FREQ_1) & 1) << 1); rme32 429 sound/pci/rme32.c return (rme32->wcreg & RME32_WCR_DS_BM) ? rate << 1 : rate; rme32 437 sound/pci/rme32.c if (rme32->rcreg & RME32_RCR_LOCK) { rme32 441 sound/pci/rme32.c if (rme32->rcreg & RME32_RCR_ERF) { rme32 446 sound/pci/rme32.c n = ((rme32->rcreg >> RME32_RCR_BITPOS_F0) & 1) + rme32 447 sound/pci/rme32.c (((rme32->rcreg >> RME32_RCR_BITPOS_F1) & 1) << 1) + rme32 448 sound/pci/rme32.c (((rme32->rcreg >> RME32_RCR_BITPOS_F2) & 1) << 2); rme32 450 sound/pci/rme32.c if (RME32_PRO_WITH_8414(rme32)) rme32 498 sound/pci/rme32.c ds = rme32->wcreg & RME32_WCR_DS_BM; rme32 501 sound/pci/rme32.c rme32->wcreg &= ~RME32_WCR_DS_BM; rme32 502 sound/pci/rme32.c rme32->wcreg = (rme32->wcreg | RME32_WCR_FREQ_0) & rme32 506 sound/pci/rme32.c rme32->wcreg &= ~RME32_WCR_DS_BM; rme32 507 sound/pci/rme32.c rme32->wcreg = (rme32->wcreg | RME32_WCR_FREQ_1) & rme32 511 sound/pci/rme32.c rme32->wcreg &= ~RME32_WCR_DS_BM; rme32 512 sound/pci/rme32.c rme32->wcreg = (rme32->wcreg | RME32_WCR_FREQ_0) | rme32 516 sound/pci/rme32.c if (rme32->pci->device != PCI_DEVICE_ID_RME_DIGI32_PRO) rme32 518 sound/pci/rme32.c rme32->wcreg |= RME32_WCR_DS_BM; rme32 519 sound/pci/rme32.c rme32->wcreg = (rme32->wcreg | RME32_WCR_FREQ_0) & rme32 523 sound/pci/rme32.c if (rme32->pci->device != PCI_DEVICE_ID_RME_DIGI32_PRO) rme32 525 sound/pci/rme32.c rme32->wcreg |= RME32_WCR_DS_BM; rme32 526 sound/pci/rme32.c rme32->wcreg = (rme32->wcreg | RME32_WCR_FREQ_1) & rme32 530 sound/pci/rme32.c if (rme32->pci->device != PCI_DEVICE_ID_RME_DIGI32_PRO) rme32 532 sound/pci/rme32.c rme32->wcreg |= RME32_WCR_DS_BM; rme32 533 sound/pci/rme32.c rme32->wcreg = (rme32->wcreg | RME32_WCR_FREQ_0) | rme32 539 sound/pci/rme32.c if ((!ds && rme32->wcreg & RME32_WCR_DS_BM) || rme32 540 sound/pci/rme32.c (ds && !(rme32->wcreg & RME32_WCR_DS_BM))) rme32 543 sound/pci/rme32.c snd_rme32_reset_dac(rme32); rme32 545 sound/pci/rme32.c writel(rme32->wcreg, rme32->iobase + RME32_IO_CONTROL_REGISTER); rme32 555 sound/pci/rme32.c rme32->wcreg = (rme32->wcreg & ~RME32_WCR_FREQ_0) & rme32 560 sound/pci/rme32.c rme32->wcreg = (rme32->wcreg | RME32_WCR_FREQ_0) & rme32 565 sound/pci/rme32.c rme32->wcreg = (rme32->wcreg & ~RME32_WCR_FREQ_0) | rme32 570 sound/pci/rme32.c rme32->wcreg = (rme32->wcreg | RME32_WCR_FREQ_0) | rme32 576 sound/pci/rme32.c writel(rme32->wcreg, rme32->iobase + RME32_IO_CONTROL_REGISTER); rme32 582 sound/pci/rme32.c return ((rme32->wcreg >> RME32_WCR_BITPOS_FREQ_0) & 1) + rme32 583 sound/pci/rme32.c (((rme32->wcreg >> RME32_WCR_BITPOS_FREQ_1) & 1) << 1); rme32 590 sound/pci/rme32.c rme32->wcreg = (rme32->wcreg & ~RME32_WCR_INP_0) & rme32 594 sound/pci/rme32.c rme32->wcreg = (rme32->wcreg | RME32_WCR_INP_0) & rme32 598 sound/pci/rme32.c rme32->wcreg = (rme32->wcreg & ~RME32_WCR_INP_0) | rme32 602 sound/pci/rme32.c rme32->wcreg = (rme32->wcreg | RME32_WCR_INP_0) | rme32 608 sound/pci/rme32.c writel(rme32->wcreg, rme32->iobase + RME32_IO_CONTROL_REGISTER); rme32 614 sound/pci/rme32.c return ((rme32->wcreg >> RME32_WCR_BITPOS_INP_0) & 1) + rme32 615 sound/pci/rme32.c (((rme32->wcreg >> RME32_WCR_BITPOS_INP_1) & 1) << 1); rme32 630 sound/pci/rme32.c frlog += (rme32->wcreg & RME32_WCR_MODE24) ? 2 : 1; rme32 631 sound/pci/rme32.c rme32->playback_frlog = frlog; rme32 633 sound/pci/rme32.c frlog += (rme32->wcreg & RME32_WCR_MODE24) ? 2 : 1; rme32 634 sound/pci/rme32.c rme32->capture_frlog = frlog; rme32 642 sound/pci/rme32.c rme32->wcreg &= ~RME32_WCR_MODE24; rme32 645 sound/pci/rme32.c rme32->wcreg |= RME32_WCR_MODE24; rme32 650 sound/pci/rme32.c writel(rme32->wcreg, rme32->iobase + RME32_IO_CONTROL_REGISTER); rme32 659 sound/pci/rme32.c struct rme32 *rme32 = snd_pcm_substream_chip(substream); rme32 662 sound/pci/rme32.c if (rme32->fullduplex_mode) { rme32 667 sound/pci/rme32.c runtime->dma_area = (void __force *)(rme32->iobase + rme32 669 sound/pci/rme32.c runtime->dma_addr = rme32->port + RME32_IO_DATA_BUFFER; rme32 673 sound/pci/rme32.c spin_lock_irq(&rme32->lock); rme32 674 sound/pci/rme32.c if ((rme32->rcreg & RME32_RCR_KMODE) && rme32 675 sound/pci/rme32.c (rate = snd_rme32_capture_getrate(rme32, &dummy)) > 0) { rme32 678 sound/pci/rme32.c spin_unlock_irq(&rme32->lock); rme32 681 sound/pci/rme32.c } else if ((err = snd_rme32_playback_setrate(rme32, params_rate(params))) < 0) { rme32 682 sound/pci/rme32.c spin_unlock_irq(&rme32->lock); rme32 685 sound/pci/rme32.c if ((err = snd_rme32_setformat(rme32, params_format(params))) < 0) { rme32 686 sound/pci/rme32.c spin_unlock_irq(&rme32->lock); rme32 690 sound/pci/rme32.c snd_rme32_setframelog(rme32, params_channels(params), 1); rme32 691 sound/pci/rme32.c if (rme32->capture_periodsize != 0) { rme32 692 sound/pci/rme32.c if (params_period_size(params) << rme32->playback_frlog != rme32->capture_periodsize) { rme32 693 sound/pci/rme32.c spin_unlock_irq(&rme32->lock); rme32 697 sound/pci/rme32.c rme32->playback_periodsize = params_period_size(params) << rme32->playback_frlog; rme32 699 sound/pci/rme32.c if ((rme32->wcreg & RME32_WCR_ADAT) == 0) { rme32 700 sound/pci/rme32.c rme32->wcreg &= ~(RME32_WCR_PRO | RME32_WCR_EMP); rme32 701 sound/pci/rme32.c rme32->wcreg |= rme32->wcreg_spdif_stream; rme32 702 sound/pci/rme32.c writel(rme32->wcreg, rme32->iobase + RME32_IO_CONTROL_REGISTER); rme32 704 sound/pci/rme32.c spin_unlock_irq(&rme32->lock); rme32 714 sound/pci/rme32.c struct rme32 *rme32 = snd_pcm_substream_chip(substream); rme32 717 sound/pci/rme32.c if (rme32->fullduplex_mode) { rme32 722 sound/pci/rme32.c runtime->dma_area = (void __force *)rme32->iobase + rme32 724 sound/pci/rme32.c runtime->dma_addr = rme32->port + RME32_IO_DATA_BUFFER; rme32 728 sound/pci/rme32.c spin_lock_irq(&rme32->lock); rme32 730 sound/pci/rme32.c rme32->wcreg |= RME32_WCR_AUTOSYNC; rme32 731 sound/pci/rme32.c writel(rme32->wcreg, rme32->iobase + RME32_IO_CONTROL_REGISTER); rme32 733 sound/pci/rme32.c if ((err = snd_rme32_setformat(rme32, params_format(params))) < 0) { rme32 734 sound/pci/rme32.c spin_unlock_irq(&rme32->lock); rme32 737 sound/pci/rme32.c if ((err = snd_rme32_playback_setrate(rme32, params_rate(params))) < 0) { rme32 738 sound/pci/rme32.c spin_unlock_irq(&rme32->lock); rme32 741 sound/pci/rme32.c if ((rate = snd_rme32_capture_getrate(rme32, &isadat)) > 0) { rme32 743 sound/pci/rme32.c spin_unlock_irq(&rme32->lock); rme32 748 sound/pci/rme32.c spin_unlock_irq(&rme32->lock); rme32 753 sound/pci/rme32.c rme32->wcreg &= ~RME32_WCR_AUTOSYNC; rme32 754 sound/pci/rme32.c writel(rme32->wcreg, rme32->iobase + RME32_IO_CONTROL_REGISTER); rme32 756 sound/pci/rme32.c snd_rme32_setframelog(rme32, params_channels(params), 0); rme32 757 sound/pci/rme32.c if (rme32->playback_periodsize != 0) { rme32 758 sound/pci/rme32.c if (params_period_size(params) << rme32->capture_frlog != rme32 759 sound/pci/rme32.c rme32->playback_periodsize) { rme32 760 sound/pci/rme32.c spin_unlock_irq(&rme32->lock); rme32 764 sound/pci/rme32.c rme32->capture_periodsize = rme32 765 sound/pci/rme32.c params_period_size(params) << rme32->capture_frlog; rme32 766 sound/pci/rme32.c spin_unlock_irq(&rme32->lock); rme32 773 sound/pci/rme32.c struct rme32 *rme32 = snd_pcm_substream_chip(substream); rme32 774 sound/pci/rme32.c if (! rme32->fullduplex_mode) rme32 782 sound/pci/rme32.c writel(0, rme32->iobase + RME32_IO_RESET_POS); rme32 785 sound/pci/rme32.c rme32->wcreg |= RME32_WCR_START; rme32 786 sound/pci/rme32.c writel(rme32->wcreg, rme32->iobase + RME32_IO_CONTROL_REGISTER); rme32 795 sound/pci/rme32.c rme32->rcreg = readl(rme32->iobase + RME32_IO_CONTROL_REGISTER); rme32 796 sound/pci/rme32.c if (rme32->rcreg & RME32_RCR_IRQ) { rme32 797 sound/pci/rme32.c writel(0, rme32->iobase + RME32_IO_CONFIRM_ACTION_IRQ); rme32 799 sound/pci/rme32.c rme32->wcreg &= ~RME32_WCR_START; rme32 800 sound/pci/rme32.c if (rme32->wcreg & RME32_WCR_SEL) rme32 801 sound/pci/rme32.c rme32->wcreg |= RME32_WCR_MUTE; rme32 802 sound/pci/rme32.c writel(rme32->wcreg, rme32->iobase + RME32_IO_CONTROL_REGISTER); rme32 804 sound/pci/rme32.c writel(0, rme32->iobase + RME32_IO_RESET_POS); rme32 809 sound/pci/rme32.c struct rme32 *rme32 = (struct rme32 *) dev_id; rme32 811 sound/pci/rme32.c rme32->rcreg = readl(rme32->iobase + RME32_IO_CONTROL_REGISTER); rme32 812 sound/pci/rme32.c if (!(rme32->rcreg & RME32_RCR_IRQ)) { rme32 815 sound/pci/rme32.c if (rme32->capture_substream) { rme32 816 sound/pci/rme32.c snd_pcm_period_elapsed(rme32->capture_substream); rme32 818 sound/pci/rme32.c if (rme32->playback_substream) { rme32 819 sound/pci/rme32.c snd_pcm_period_elapsed(rme32->playback_substream); rme32 821 sound/pci/rme32.c writel(0, rme32->iobase + RME32_IO_CONFIRM_ACTION_IRQ); rme32 837 sound/pci/rme32.c if (! rme32->fullduplex_mode) { rme32 850 sound/pci/rme32.c struct rme32 *rme32 = snd_pcm_substream_chip(substream); rme32 855 sound/pci/rme32.c spin_lock_irq(&rme32->lock); rme32 856 sound/pci/rme32.c if (rme32->playback_substream != NULL) { rme32 857 sound/pci/rme32.c spin_unlock_irq(&rme32->lock); rme32 860 sound/pci/rme32.c rme32->wcreg &= ~RME32_WCR_ADAT; rme32 861 sound/pci/rme32.c writel(rme32->wcreg, rme32->iobase + RME32_IO_CONTROL_REGISTER); rme32 862 sound/pci/rme32.c rme32->playback_substream = substream; rme32 863 sound/pci/rme32.c spin_unlock_irq(&rme32->lock); rme32 865 sound/pci/rme32.c if (rme32->fullduplex_mode) rme32 869 sound/pci/rme32.c if (rme32->pci->device == PCI_DEVICE_ID_RME_DIGI32_PRO) { rme32 873 sound/pci/rme32.c if ((rme32->rcreg & RME32_RCR_KMODE) && rme32 874 sound/pci/rme32.c (rate = snd_rme32_capture_getrate(rme32, &dummy)) > 0) { rme32 881 sound/pci/rme32.c snd_rme32_set_buffer_constraint(rme32, runtime); rme32 883 sound/pci/rme32.c rme32->wcreg_spdif_stream = rme32->wcreg_spdif; rme32 884 sound/pci/rme32.c rme32->spdif_ctl->vd[0].access &= ~SNDRV_CTL_ELEM_ACCESS_INACTIVE; rme32 885 sound/pci/rme32.c snd_ctl_notify(rme32->card, SNDRV_CTL_EVENT_MASK_VALUE | rme32 886 sound/pci/rme32.c SNDRV_CTL_EVENT_MASK_INFO, &rme32->spdif_ctl->id); rme32 893 sound/pci/rme32.c struct rme32 *rme32 = snd_pcm_substream_chip(substream); rme32 898 sound/pci/rme32.c spin_lock_irq(&rme32->lock); rme32 899 sound/pci/rme32.c if (rme32->capture_substream != NULL) { rme32 900 sound/pci/rme32.c spin_unlock_irq(&rme32->lock); rme32 903 sound/pci/rme32.c rme32->capture_substream = substream; rme32 904 sound/pci/rme32.c spin_unlock_irq(&rme32->lock); rme32 906 sound/pci/rme32.c if (rme32->fullduplex_mode) rme32 910 sound/pci/rme32.c if (RME32_PRO_WITH_8414(rme32)) { rme32 914 sound/pci/rme32.c if ((rate = snd_rme32_capture_getrate(rme32, &isadat)) > 0) { rme32 923 sound/pci/rme32.c snd_rme32_set_buffer_constraint(rme32, runtime); rme32 932 sound/pci/rme32.c struct rme32 *rme32 = snd_pcm_substream_chip(substream); rme32 937 sound/pci/rme32.c spin_lock_irq(&rme32->lock); rme32 938 sound/pci/rme32.c if (rme32->playback_substream != NULL) { rme32 939 sound/pci/rme32.c spin_unlock_irq(&rme32->lock); rme32 942 sound/pci/rme32.c rme32->wcreg |= RME32_WCR_ADAT; rme32 943 sound/pci/rme32.c writel(rme32->wcreg, rme32->iobase + RME32_IO_CONTROL_REGISTER); rme32 944 sound/pci/rme32.c rme32->playback_substream = substream; rme32 945 sound/pci/rme32.c spin_unlock_irq(&rme32->lock); rme32 947 sound/pci/rme32.c if (rme32->fullduplex_mode) rme32 951 sound/pci/rme32.c if ((rme32->rcreg & RME32_RCR_KMODE) && rme32 952 sound/pci/rme32.c (rate = snd_rme32_capture_getrate(rme32, &dummy)) > 0) { rme32 959 sound/pci/rme32.c snd_rme32_set_buffer_constraint(rme32, runtime); rme32 967 sound/pci/rme32.c struct rme32 *rme32 = snd_pcm_substream_chip(substream); rme32 970 sound/pci/rme32.c if (rme32->fullduplex_mode) rme32 974 sound/pci/rme32.c if ((rate = snd_rme32_capture_getrate(rme32, &isadat)) > 0) { rme32 985 sound/pci/rme32.c spin_lock_irq(&rme32->lock); rme32 986 sound/pci/rme32.c if (rme32->capture_substream != NULL) { rme32 987 sound/pci/rme32.c spin_unlock_irq(&rme32->lock); rme32 990 sound/pci/rme32.c rme32->capture_substream = substream; rme32 991 sound/pci/rme32.c spin_unlock_irq(&rme32->lock); rme32 993 sound/pci/rme32.c snd_rme32_set_buffer_constraint(rme32, runtime); rme32 999 sound/pci/rme32.c struct rme32 *rme32 = snd_pcm_substream_chip(substream); rme32 1002 sound/pci/rme32.c spin_lock_irq(&rme32->lock); rme32 1003 sound/pci/rme32.c rme32->playback_substream = NULL; rme32 1004 sound/pci/rme32.c rme32->playback_periodsize = 0; rme32 1005 sound/pci/rme32.c spdif = (rme32->wcreg & RME32_WCR_ADAT) == 0; rme32 1006 sound/pci/rme32.c spin_unlock_irq(&rme32->lock); rme32 1008 sound/pci/rme32.c rme32->spdif_ctl->vd[0].access |= SNDRV_CTL_ELEM_ACCESS_INACTIVE; rme32 1009 sound/pci/rme32.c snd_ctl_notify(rme32->card, SNDRV_CTL_EVENT_MASK_VALUE | rme32 1011 sound/pci/rme32.c &rme32->spdif_ctl->id); rme32 1018 sound/pci/rme32.c struct rme32 *rme32 = snd_pcm_substream_chip(substream); rme32 1020 sound/pci/rme32.c spin_lock_irq(&rme32->lock); rme32 1021 sound/pci/rme32.c rme32->capture_substream = NULL; rme32 1022 sound/pci/rme32.c rme32->capture_periodsize = 0; rme32 1023 sound/pci/rme32.c spin_unlock(&rme32->lock); rme32 1029 sound/pci/rme32.c struct rme32 *rme32 = snd_pcm_substream_chip(substream); rme32 1031 sound/pci/rme32.c spin_lock_irq(&rme32->lock); rme32 1032 sound/pci/rme32.c if (rme32->fullduplex_mode) { rme32 1033 sound/pci/rme32.c memset(&rme32->playback_pcm, 0, sizeof(rme32->playback_pcm)); rme32 1034 sound/pci/rme32.c rme32->playback_pcm.hw_buffer_size = RME32_BUFFER_SIZE; rme32 1035 sound/pci/rme32.c rme32->playback_pcm.sw_buffer_size = snd_pcm_lib_buffer_bytes(substream); rme32 1037 sound/pci/rme32.c writel(0, rme32->iobase + RME32_IO_RESET_POS); rme32 1039 sound/pci/rme32.c if (rme32->wcreg & RME32_WCR_SEL) rme32 1040 sound/pci/rme32.c rme32->wcreg &= ~RME32_WCR_MUTE; rme32 1041 sound/pci/rme32.c writel(rme32->wcreg, rme32->iobase + RME32_IO_CONTROL_REGISTER); rme32 1042 sound/pci/rme32.c spin_unlock_irq(&rme32->lock); rme32 1048 sound/pci/rme32.c struct rme32 *rme32 = snd_pcm_substream_chip(substream); rme32 1050 sound/pci/rme32.c spin_lock_irq(&rme32->lock); rme32 1051 sound/pci/rme32.c if (rme32->fullduplex_mode) { rme32 1052 sound/pci/rme32.c memset(&rme32->capture_pcm, 0, sizeof(rme32->capture_pcm)); rme32 1053 sound/pci/rme32.c rme32->capture_pcm.hw_buffer_size = RME32_BUFFER_SIZE; rme32 1054 sound/pci/rme32.c rme32->capture_pcm.hw_queue_size = RME32_BUFFER_SIZE / 2; rme32 1055 sound/pci/rme32.c rme32->capture_pcm.sw_buffer_size = snd_pcm_lib_buffer_bytes(substream); rme32 1057 sound/pci/rme32.c writel(0, rme32->iobase + RME32_IO_RESET_POS); rme32 1059 sound/pci/rme32.c spin_unlock_irq(&rme32->lock); rme32 1066 sound/pci/rme32.c struct rme32 *rme32 = snd_pcm_substream_chip(substream); rme32 1069 sound/pci/rme32.c spin_lock(&rme32->lock); rme32 1071 sound/pci/rme32.c if (s != rme32->playback_substream && rme32 1072 sound/pci/rme32.c s != rme32->capture_substream) rme32 1076 sound/pci/rme32.c rme32->running |= (1 << s->stream); rme32 1077 sound/pci/rme32.c if (rme32->fullduplex_mode) { rme32 1079 sound/pci/rme32.c if (s == rme32->playback_substream) { rme32 1080 sound/pci/rme32.c rme32->playback_pcm.hw_io = rme32 1081 sound/pci/rme32.c rme32->playback_pcm.hw_data = snd_rme32_pcm_byteptr(rme32); rme32 1083 sound/pci/rme32.c rme32->capture_pcm.hw_io = rme32 1084 sound/pci/rme32.c rme32->capture_pcm.hw_data = snd_rme32_pcm_byteptr(rme32); rme32 1089 sound/pci/rme32.c rme32->running &= ~(1 << s->stream); rme32 1096 sound/pci/rme32.c if (cmd == SNDRV_PCM_TRIGGER_START && rme32->fullduplex_mode) { rme32 1098 sound/pci/rme32.c if (s == rme32->playback_substream) { rme32 1107 sound/pci/rme32.c if (rme32->running && ! RME32_ISWORKING(rme32)) rme32 1108 sound/pci/rme32.c snd_rme32_pcm_start(rme32, 0); rme32 1111 sound/pci/rme32.c if (! rme32->running && RME32_ISWORKING(rme32)) rme32 1112 sound/pci/rme32.c snd_rme32_pcm_stop(rme32, 0); rme32 1115 sound/pci/rme32.c if (rme32->running && RME32_ISWORKING(rme32)) rme32 1116 sound/pci/rme32.c snd_rme32_pcm_stop(rme32, 1); rme32 1119 sound/pci/rme32.c if (rme32->running && ! RME32_ISWORKING(rme32)) rme32 1120 sound/pci/rme32.c snd_rme32_pcm_start(rme32, 1); rme32 1123 sound/pci/rme32.c spin_unlock(&rme32->lock); rme32 1131 sound/pci/rme32.c struct rme32 *rme32 = snd_pcm_substream_chip(substream); rme32 1132 sound/pci/rme32.c return snd_rme32_pcm_byteptr(rme32) >> rme32->playback_frlog; rme32 1138 sound/pci/rme32.c struct rme32 *rme32 = snd_pcm_substream_chip(substream); rme32 1139 sound/pci/rme32.c return snd_rme32_pcm_byteptr(rme32) >> rme32->capture_frlog; rme32 1147 sound/pci/rme32.c struct rme32 *rme32 = snd_pcm_substream_chip(substream); rme32 1148 sound/pci/rme32.c memcpy_toio(rme32->iobase + RME32_IO_DATA_BUFFER + rec->hw_data, rme32 1154 sound/pci/rme32.c struct rme32 *rme32 = snd_pcm_substream_chip(substream); rme32 1157 sound/pci/rme32.c rec = &rme32->playback_pcm; rme32 1158 sound/pci/rme32.c cprec = &rme32->capture_pcm; rme32 1159 sound/pci/rme32.c spin_lock(&rme32->lock); rme32 1161 sound/pci/rme32.c if (rme32->running & (1 << SNDRV_PCM_STREAM_CAPTURE)) rme32 1163 sound/pci/rme32.c spin_unlock(&rme32->lock); rme32 1172 sound/pci/rme32.c struct rme32 *rme32 = snd_pcm_substream_chip(substream); rme32 1174 sound/pci/rme32.c rme32->iobase + RME32_IO_DATA_BUFFER + rec->hw_data, rme32 1180 sound/pci/rme32.c struct rme32 *rme32 = snd_pcm_substream_chip(substream); rme32 1181 sound/pci/rme32.c snd_pcm_indirect_capture_transfer(substream, &rme32->capture_pcm, rme32 1189 sound/pci/rme32.c struct rme32 *rme32 = snd_pcm_substream_chip(substream); rme32 1190 sound/pci/rme32.c return snd_pcm_indirect_playback_pointer(substream, &rme32->playback_pcm, rme32 1191 sound/pci/rme32.c snd_rme32_pcm_byteptr(rme32)); rme32 1197 sound/pci/rme32.c struct rme32 *rme32 = snd_pcm_substream_chip(substream); rme32 1198 sound/pci/rme32.c return snd_pcm_indirect_capture_pointer(substream, &rme32->capture_pcm, rme32 1199 sound/pci/rme32.c snd_rme32_pcm_byteptr(rme32)); rme32 1304 sound/pci/rme32.c struct rme32 *rme32 = (struct rme32 *) private_data; rme32 1306 sound/pci/rme32.c if (rme32 == NULL) { rme32 1309 sound/pci/rme32.c if (rme32->irq >= 0) { rme32 1310 sound/pci/rme32.c snd_rme32_pcm_stop(rme32, 0); rme32 1311 sound/pci/rme32.c free_irq(rme32->irq, (void *) rme32); rme32 1312 sound/pci/rme32.c rme32->irq = -1; rme32 1314 sound/pci/rme32.c if (rme32->iobase) { rme32 1315 sound/pci/rme32.c iounmap(rme32->iobase); rme32 1316 sound/pci/rme32.c rme32->iobase = NULL; rme32 1318 sound/pci/rme32.c if (rme32->port) { rme32 1319 sound/pci/rme32.c pci_release_regions(rme32->pci); rme32 1320 sound/pci/rme32.c rme32->port = 0; rme32 1322 sound/pci/rme32.c pci_disable_device(rme32->pci); rme32 1327 sound/pci/rme32.c struct rme32 *rme32 = (struct rme32 *) pcm->private_data; rme32 1328 sound/pci/rme32.c rme32->spdif_pcm = NULL; rme32 1334 sound/pci/rme32.c struct rme32 *rme32 = (struct rme32 *) pcm->private_data; rme32 1335 sound/pci/rme32.c rme32->adat_pcm = NULL; rme32 1340 sound/pci/rme32.c struct pci_dev *pci = rme32->pci; rme32 1343 sound/pci/rme32.c rme32->irq = -1; rme32 1344 sound/pci/rme32.c spin_lock_init(&rme32->lock); rme32 1351 sound/pci/rme32.c rme32->port = pci_resource_start(rme32->pci, 0); rme32 1353 sound/pci/rme32.c rme32->iobase = ioremap_nocache(rme32->port, RME32_IO_SIZE); rme32 1354 sound/pci/rme32.c if (!rme32->iobase) { rme32 1356 sound/pci/rme32.c rme32->port, rme32->port + RME32_IO_SIZE - 1); rme32 1361 sound/pci/rme32.c "RME32", rme32)) { rme32 1365 sound/pci/rme32.c rme32->irq = pci->irq; rme32 1368 sound/pci/rme32.c pci_read_config_byte(pci, 8, &rme32->rev); rme32 1371 sound/pci/rme32.c if ((err = snd_pcm_new(rme32->card, "Digi32 IEC958", 0, 1, 1, &rme32->spdif_pcm)) < 0) { rme32 1374 sound/pci/rme32.c rme32->spdif_pcm->private_data = rme32; rme32 1375 sound/pci/rme32.c rme32->spdif_pcm->private_free = snd_rme32_free_spdif_pcm; rme32 1376 sound/pci/rme32.c strcpy(rme32->spdif_pcm->name, "Digi32 IEC958"); rme32 1377 sound/pci/rme32.c if (rme32->fullduplex_mode) { rme32 1378 sound/pci/rme32.c snd_pcm_set_ops(rme32->spdif_pcm, SNDRV_PCM_STREAM_PLAYBACK, rme32 1380 sound/pci/rme32.c snd_pcm_set_ops(rme32->spdif_pcm, SNDRV_PCM_STREAM_CAPTURE, rme32 1382 sound/pci/rme32.c snd_pcm_lib_preallocate_pages_for_all(rme32->spdif_pcm, SNDRV_DMA_TYPE_CONTINUOUS, rme32 1385 sound/pci/rme32.c rme32->spdif_pcm->info_flags = SNDRV_PCM_INFO_JOINT_DUPLEX; rme32 1387 sound/pci/rme32.c snd_pcm_set_ops(rme32->spdif_pcm, SNDRV_PCM_STREAM_PLAYBACK, rme32 1389 sound/pci/rme32.c snd_pcm_set_ops(rme32->spdif_pcm, SNDRV_PCM_STREAM_CAPTURE, rme32 1391 sound/pci/rme32.c rme32->spdif_pcm->info_flags = SNDRV_PCM_INFO_HALF_DUPLEX; rme32 1398 sound/pci/rme32.c rme32->adat_pcm = NULL; rme32 1401 sound/pci/rme32.c if ((err = snd_pcm_new(rme32->card, "Digi32 ADAT", 1, rme32 1402 sound/pci/rme32.c 1, 1, &rme32->adat_pcm)) < 0) rme32 1406 sound/pci/rme32.c rme32->adat_pcm->private_data = rme32; rme32 1407 sound/pci/rme32.c rme32->adat_pcm->private_free = snd_rme32_free_adat_pcm; rme32 1408 sound/pci/rme32.c strcpy(rme32->adat_pcm->name, "Digi32 ADAT"); rme32 1409 sound/pci/rme32.c if (rme32->fullduplex_mode) { rme32 1410 sound/pci/rme32.c snd_pcm_set_ops(rme32->adat_pcm, SNDRV_PCM_STREAM_PLAYBACK, rme32 1412 sound/pci/rme32.c snd_pcm_set_ops(rme32->adat_pcm, SNDRV_PCM_STREAM_CAPTURE, rme32 1414 sound/pci/rme32.c snd_pcm_lib_preallocate_pages_for_all(rme32->adat_pcm, SNDRV_DMA_TYPE_CONTINUOUS, rme32 1417 sound/pci/rme32.c rme32->adat_pcm->info_flags = SNDRV_PCM_INFO_JOINT_DUPLEX; rme32 1419 sound/pci/rme32.c snd_pcm_set_ops(rme32->adat_pcm, SNDRV_PCM_STREAM_PLAYBACK, rme32 1421 sound/pci/rme32.c snd_pcm_set_ops(rme32->adat_pcm, SNDRV_PCM_STREAM_CAPTURE, rme32 1423 sound/pci/rme32.c rme32->adat_pcm->info_flags = SNDRV_PCM_INFO_HALF_DUPLEX; rme32 1428 sound/pci/rme32.c rme32->playback_periodsize = 0; rme32 1429 sound/pci/rme32.c rme32->capture_periodsize = 0; rme32 1432 sound/pci/rme32.c snd_rme32_pcm_stop(rme32, 0); rme32 1435 sound/pci/rme32.c snd_rme32_reset_dac(rme32); rme32 1438 sound/pci/rme32.c writel(0, rme32->iobase + RME32_IO_RESET_POS); rme32 1441 sound/pci/rme32.c rme32->wcreg = RME32_WCR_SEL | /* normal playback */ rme32 1444 sound/pci/rme32.c writel(rme32->wcreg, rme32->iobase + RME32_IO_CONTROL_REGISTER); rme32 1448 sound/pci/rme32.c if ((err = snd_rme32_create_switches(rme32->card, rme32)) < 0) { rme32 1453 sound/pci/rme32.c snd_rme32_proc_init(rme32); rme32 1455 sound/pci/rme32.c rme32->capture_substream = NULL; rme32 1456 sound/pci/rme32.c rme32->playback_substream = NULL; rme32 1469 sound/pci/rme32.c struct rme32 *rme32 = (struct rme32 *) entry->private_data; rme32 1471 sound/pci/rme32.c rme32->rcreg = readl(rme32->iobase + RME32_IO_CONTROL_REGISTER); rme32 1473 sound/pci/rme32.c snd_iprintf(buffer, rme32->card->longname); rme32 1474 sound/pci/rme32.c snd_iprintf(buffer, " (index #%d)\n", rme32->card->number + 1); rme32 1477 sound/pci/rme32.c if (rme32->fullduplex_mode) rme32 1481 sound/pci/rme32.c if (RME32_PRO_WITH_8414(rme32)) { rme32 1486 sound/pci/rme32.c if (rme32->wcreg & RME32_WCR_MODE24) { rme32 1491 sound/pci/rme32.c if (rme32->wcreg & RME32_WCR_MONO) { rme32 1498 sound/pci/rme32.c switch (snd_rme32_getinputtype(rme32)) { rme32 1512 sound/pci/rme32.c if (snd_rme32_capture_getrate(rme32, &n) < 0) { rme32 1521 sound/pci/rme32.c snd_rme32_capture_getrate(rme32, &n)); rme32 1525 sound/pci/rme32.c if (rme32->wcreg & RME32_WCR_SEL) { rme32 1530 sound/pci/rme32.c if (rme32->wcreg & RME32_WCR_MUTE) { rme32 1538 sound/pci/rme32.c ((!(rme32->wcreg & RME32_WCR_FREQ_0)) rme32 1539 sound/pci/rme32.c && (!(rme32->wcreg & RME32_WCR_FREQ_1)))) { rme32 1541 sound/pci/rme32.c snd_rme32_playback_getrate(rme32)); rme32 1543 sound/pci/rme32.c if (rme32->rcreg & RME32_RCR_KMODE) { rme32 1548 sound/pci/rme32.c if (rme32->wcreg & RME32_WCR_PRO) { rme32 1553 sound/pci/rme32.c if (rme32->wcreg & RME32_WCR_EMP) { rme32 1564 sound/pci/rme32.c if (! snd_card_proc_new(rme32->card, "rme32", &entry)) rme32 1565 sound/pci/rme32.c snd_info_set_text_ops(entry, rme32, snd_rme32_proc_read); rme32 1578 sound/pci/rme32.c struct rme32 *rme32 = snd_kcontrol_chip(kcontrol); rme32 1580 sound/pci/rme32.c spin_lock_irq(&rme32->lock); rme32 1582 sound/pci/rme32.c rme32->wcreg & RME32_WCR_SEL ? 0 : 1; rme32 1583 sound/pci/rme32.c spin_unlock_irq(&rme32->lock); rme32 1590 sound/pci/rme32.c struct rme32 *rme32 = snd_kcontrol_chip(kcontrol); rme32 1595 sound/pci/rme32.c spin_lock_irq(&rme32->lock); rme32 1596 sound/pci/rme32.c val = (rme32->wcreg & ~RME32_WCR_SEL) | val; rme32 1597 sound/pci/rme32.c change = val != rme32->wcreg; rme32 1602 sound/pci/rme32.c rme32->wcreg = val; rme32 1603 sound/pci/rme32.c writel(val, rme32->iobase + RME32_IO_CONTROL_REGISTER); rme32 1604 sound/pci/rme32.c spin_unlock_irq(&rme32->lock); rme32 1612 sound/pci/rme32.c struct rme32 *rme32 = snd_kcontrol_chip(kcontrol); rme32 1617 sound/pci/rme32.c switch (rme32->pci->device) { rme32 1642 sound/pci/rme32.c struct rme32 *rme32 = snd_kcontrol_chip(kcontrol); rme32 1645 sound/pci/rme32.c spin_lock_irq(&rme32->lock); rme32 1646 sound/pci/rme32.c ucontrol->value.enumerated.item[0] = snd_rme32_getinputtype(rme32); rme32 1648 sound/pci/rme32.c switch (rme32->pci->device) { rme32 1664 sound/pci/rme32.c spin_unlock_irq(&rme32->lock); rme32 1671 sound/pci/rme32.c struct rme32 *rme32 = snd_kcontrol_chip(kcontrol); rme32 1675 sound/pci/rme32.c switch (rme32->pci->device) { rme32 1689 sound/pci/rme32.c spin_lock_irq(&rme32->lock); rme32 1690 sound/pci/rme32.c change = val != (unsigned int)snd_rme32_getinputtype(rme32); rme32 1691 sound/pci/rme32.c snd_rme32_setinputtype(rme32, val); rme32 1692 sound/pci/rme32.c spin_unlock_irq(&rme32->lock); rme32 1719 sound/pci/rme32.c struct rme32 *rme32 = snd_kcontrol_chip(kcontrol); rme32 1721 sound/pci/rme32.c spin_lock_irq(&rme32->lock); rme32 1722 sound/pci/rme32.c ucontrol->value.enumerated.item[0] = snd_rme32_getclockmode(rme32); rme32 1723 sound/pci/rme32.c spin_unlock_irq(&rme32->lock); rme32 1730 sound/pci/rme32.c struct rme32 *rme32 = snd_kcontrol_chip(kcontrol); rme32 1735 sound/pci/rme32.c spin_lock_irq(&rme32->lock); rme32 1736 sound/pci/rme32.c change = val != (unsigned int)snd_rme32_getclockmode(rme32); rme32 1737 sound/pci/rme32.c snd_rme32_setclockmode(rme32, val); rme32 1738 sound/pci/rme32.c spin_unlock_irq(&rme32->lock); rme32 1773 sound/pci/rme32.c struct rme32 *rme32 = snd_kcontrol_chip(kcontrol); rme32 1776 sound/pci/rme32.c rme32->wcreg_spdif); rme32 1783 sound/pci/rme32.c struct rme32 *rme32 = snd_kcontrol_chip(kcontrol); rme32 1788 sound/pci/rme32.c spin_lock_irq(&rme32->lock); rme32 1789 sound/pci/rme32.c change = val != rme32->wcreg_spdif; rme32 1790 sound/pci/rme32.c rme32->wcreg_spdif = val; rme32 1791 sound/pci/rme32.c spin_unlock_irq(&rme32->lock); rme32 1807 sound/pci/rme32.c struct rme32 *rme32 = snd_kcontrol_chip(kcontrol); rme32 1810 sound/pci/rme32.c rme32->wcreg_spdif_stream); rme32 1818 sound/pci/rme32.c struct rme32 *rme32 = snd_kcontrol_chip(kcontrol); rme32 1823 sound/pci/rme32.c spin_lock_irq(&rme32->lock); rme32 1824 sound/pci/rme32.c change = val != rme32->wcreg_spdif_stream; rme32 1825 sound/pci/rme32.c rme32->wcreg_spdif_stream = val; rme32 1826 sound/pci/rme32.c rme32->wcreg &= ~(RME32_WCR_PRO | RME32_WCR_EMP); rme32 1827 sound/pci/rme32.c rme32->wcreg |= val; rme32 1828 sound/pci/rme32.c writel(rme32->wcreg, rme32->iobase + RME32_IO_CONTROL_REGISTER); rme32 1829 sound/pci/rme32.c spin_unlock_irq(&rme32->lock); rme32 1910 sound/pci/rme32.c if ((err = snd_ctl_add(card, kctl = snd_ctl_new1(&snd_rme32_controls[idx], rme32))) < 0) rme32 1913 sound/pci/rme32.c rme32->spdif_ctl = kctl; rme32 1932 sound/pci/rme32.c struct rme32 *rme32; rme32 1945 sound/pci/rme32.c sizeof(struct rme32))) == NULL) rme32 1948 sound/pci/rme32.c rme32 = (struct rme32 *) card->private_data; rme32 1949 sound/pci/rme32.c rme32->card = card; rme32 1950 sound/pci/rme32.c rme32->pci = pci; rme32 1953 sound/pci/rme32.c rme32->fullduplex_mode = 1; rme32 1954 sound/pci/rme32.c if ((err = snd_rme32_create(rme32)) < 0) { rme32 1960 sound/pci/rme32.c switch (rme32->pci->device) { rme32 1972 sound/pci/rme32.c card->shortname, rme32->rev, rme32->port, rme32->irq);