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);