Lines Matching +full:adc +full:- +full:channel +full:- +full:clk +full:- +full:src
1 // SPDX-License-Identifier: GPL-2.0-or-later
26 // ----------------------------------------------------------------------------
28 // ----------------------------------------------------------------------------
41 // ----------------------------------------------------------------------------
44 // ----------------------------------------------------------------------------
47 // ----------------------------------------------------------------------------
49 // ----------------------------------------------------------------------------
68 // ----------------------------------------------------------------------------
70 // host-to-card doorbell to initiate a command.
71 // ----------------------------------------------------------------------------
82 K1212_DB_DMAERROR = 0x80, // DMA Error - the PCI bus is congestioned.
93 // ----------------------------------------------------------------------------
96 // ----------------------------------------------------------------------------
117 // ----------------------------------------------------------------------------
120 // ----------------------------------------------------------------------------
122 K1212_MODE_SetupPlay = 0x00000001, // provides card with pre-play information
128 // ----------------------------------------------------------------------------
131 // ----------------------------------------------------------------------------
191 // -----------------------------------------------------------------
194 // -----------------------------------------------------------------
201 // -----------------------------------------------------------------
203 // -----------------------------------------------------------------
208 // -----------------------------------------------------------------
210 // -----------------------------------------------------------------
217 // ------------------------------------------------------------------------
220 // ------------------------------------------------------------------------
231 // --------------------------------------------------------------------------
238 // --------------------------------------------------------------------------
265 u16 frameData16[k16BitChannels]; /* channels 0-9 use 16 bit samples */
266 u32 frameData32[k32BitChannels]; /* channels 10-11 use 32 bits - only 20 are sent across S/PDIF */
343 u32 __iomem * outDoorbellPtr; // address of the host->card doorbell register
344 u32 __iomem * inDoorbellPtr; // address of the card->host doorbell register
375 u16 leftADCInSens; // ADC left channel input sensitivity
376 u16 rightADCInSens; // ADC right channel input sensitivity
393 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */
418 "Non-existent",
443 "ADAT-1",
444 "ADAT-2",
445 "ADAT-3",
446 "ADAT-4",
447 "ADAT-5",
448 "ADAT-6",
449 "ADAT-7",
450 "ADAT-8",
451 "Analog-L",
452 "Analog-R",
453 "SPDIF-L",
454 "SPDIF-R",
516 if (!korg1212->outDoorbellPtr) { in snd_korg1212_Send1212Command()
521 K1212_DEBUG_PRINTK("K1212_DEBUG: Card <- 0x%08x 0x%08x [%s]\n", in snd_korg1212_Send1212Command()
522 doorbellVal, mailBox0Val, stateName[korg1212->cardState]); in snd_korg1212_Send1212Command()
524 writel(mailBox3Val, korg1212->mailbox3Ptr); in snd_korg1212_Send1212Command()
525 writel(mailBox2Val, korg1212->mailbox2Ptr); in snd_korg1212_Send1212Command()
526 writel(mailBox1Val, korg1212->mailbox1Ptr); in snd_korg1212_Send1212Command()
527 writel(mailBox0Val, korg1212->mailbox0Ptr); in snd_korg1212_Send1212Command()
528 writel(doorbellVal, korg1212->outDoorbellPtr); // interrupt the card in snd_korg1212_Send1212Command()
530 // -------------------------------------------------------------- in snd_korg1212_Send1212Command()
532 // -------------------------------------------------------------- in snd_korg1212_Send1212Command()
540 // -------------------------------------------------------------- in snd_korg1212_Send1212Command()
544 // -------------------------------------------------------------- in snd_korg1212_Send1212Command()
546 mailBox3Lo = readl(korg1212->mailbox3Ptr); in snd_korg1212_Send1212Command()
549 K1212_DEBUG_PRINTK_VERBOSE("K1212_DEBUG: Card <- Success\n"); in snd_korg1212_Send1212Command()
555 korg1212->cmdRetryCount += retryCount; in snd_korg1212_Send1212Command()
558 K1212_DEBUG_PRINTK_VERBOSE("K1212_DEBUG: Card <- NoAckFromCard\n"); in snd_korg1212_Send1212Command()
568 if (! korg1212->stop_pending_cnt) { in snd_korg1212_SendStop()
569 korg1212->sharedBufferPtr->cardCommand = 0xffffffff; in snd_korg1212_SendStop()
571 korg1212->stop_pending_cnt = HZ; in snd_korg1212_SendStop()
572 mod_timer(&korg1212->timer, jiffies + 1); in snd_korg1212_SendStop()
579 spin_lock_irqsave(&korg1212->lock, flags); in snd_korg1212_SendStopAndWait()
580 korg1212->dsp_stop_is_processed = 0; in snd_korg1212_SendStopAndWait()
582 spin_unlock_irqrestore(&korg1212->lock, flags); in snd_korg1212_SendStopAndWait()
583 wait_event_timeout(korg1212->wait, korg1212->dsp_stop_is_processed, (HZ * 3) / 2); in snd_korg1212_SendStopAndWait()
592 spin_lock_irqsave(&korg1212->lock, flags); in snd_korg1212_timer_func()
593 if (korg1212->sharedBufferPtr->cardCommand == 0) { in snd_korg1212_timer_func()
595 korg1212->stop_pending_cnt = 0; in snd_korg1212_timer_func()
596 korg1212->dsp_stop_is_processed = 1; in snd_korg1212_timer_func()
597 wake_up(&korg1212->wait); in snd_korg1212_timer_func()
599 stateName[korg1212->cardState]); in snd_korg1212_timer_func()
601 if (--korg1212->stop_pending_cnt > 0) { in snd_korg1212_timer_func()
603 mod_timer(&korg1212->timer, jiffies + 1); in snd_korg1212_timer_func()
605 dev_dbg(korg1212->card->dev, "korg1212_timer_func timeout\n"); in snd_korg1212_timer_func()
606 korg1212->sharedBufferPtr->cardCommand = 0; in snd_korg1212_timer_func()
607 korg1212->dsp_stop_is_processed = 1; in snd_korg1212_timer_func()
608 wake_up(&korg1212->wait); in snd_korg1212_timer_func()
610 stateName[korg1212->cardState]); in snd_korg1212_timer_func()
613 spin_unlock_irqrestore(&korg1212->lock, flags); in snd_korg1212_timer_func()
622 spin_lock_irqsave(&korg1212->lock, flags); in snd_korg1212_TurnOnIdleMonitor()
623 korg1212->idleMonitorOn = 1; in snd_korg1212_TurnOnIdleMonitor()
626 spin_unlock_irqrestore(&korg1212->lock, flags); in snd_korg1212_TurnOnIdleMonitor()
632 if (korg1212->idleMonitorOn) { in snd_korg1212_TurnOffIdleMonitor()
634 korg1212->idleMonitorOn = 0; in snd_korg1212_TurnOffIdleMonitor()
640 korg1212->cardState = csState; in snd_korg1212_setCardState()
646 stateName[korg1212->cardState], korg1212->opencnt); in snd_korg1212_OpenCard()
647 mutex_lock(&korg1212->open_mutex); in snd_korg1212_OpenCard()
648 if (korg1212->opencnt++ == 0) { in snd_korg1212_OpenCard()
653 mutex_unlock(&korg1212->open_mutex); in snd_korg1212_OpenCard()
660 stateName[korg1212->cardState], korg1212->opencnt); in snd_korg1212_CloseCard()
662 mutex_lock(&korg1212->open_mutex); in snd_korg1212_CloseCard()
663 if (--(korg1212->opencnt)) { in snd_korg1212_CloseCard()
664 mutex_unlock(&korg1212->open_mutex); in snd_korg1212_CloseCard()
668 if (korg1212->cardState == K1212_STATE_SETUP) { in snd_korg1212_CloseCard()
672 K1212_DEBUG_PRINTK("K1212_DEBUG: CloseCard - RC = %d [%s]\n", in snd_korg1212_CloseCard()
673 rc, stateName[korg1212->cardState]); in snd_korg1212_CloseCard()
675 mutex_unlock(&korg1212->open_mutex); in snd_korg1212_CloseCard()
678 } else if (korg1212->cardState > K1212_STATE_SETUP) { in snd_korg1212_CloseCard()
682 if (korg1212->cardState > K1212_STATE_READY) { in snd_korg1212_CloseCard()
687 mutex_unlock(&korg1212->open_mutex); in snd_korg1212_CloseCard()
697 stateName[korg1212->cardState], korg1212->setcnt); in snd_korg1212_SetupForPlay()
699 if (korg1212->setcnt++) in snd_korg1212_SetupForPlay()
706 K1212_DEBUG_PRINTK("K1212_DEBUG: SetupForPlay - RC = %d [%s]\n", in snd_korg1212_SetupForPlay()
707 rc, stateName[korg1212->cardState]); in snd_korg1212_SetupForPlay()
720 stateName[korg1212->cardState], korg1212->playcnt); in snd_korg1212_TriggerPlay()
722 if (korg1212->playcnt++) in snd_korg1212_TriggerPlay()
728 K1212_DEBUG_PRINTK("K1212_DEBUG: TriggerPlay - RC = %d [%s]\n", in snd_korg1212_TriggerPlay()
729 rc, stateName[korg1212->cardState]); in snd_korg1212_TriggerPlay()
740 stateName[korg1212->cardState], korg1212->playcnt); in snd_korg1212_StopPlay()
742 if (--(korg1212->playcnt)) in snd_korg1212_StopPlay()
745 korg1212->setcnt = 0; in snd_korg1212_StopPlay()
747 if (korg1212->cardState != K1212_STATE_ERRORSTOP) in snd_korg1212_StopPlay()
761 korg1212->statusRegPtr); in snd_korg1212_EnableCardInterrupts()
770 stateName[korg1212->cardState]);
774 if (korg1212->cardState != K1212_STATE_MONITOR)
783 if (korg1212->cardState != K1212_STATE_OPEN)
806 if (korg1212->playback_pid != korg1212->capture_pid && in snd_korg1212_use_is_exclusive()
807 korg1212->playback_pid >= 0 && korg1212->capture_pid >= 0) in snd_korg1212_use_is_exclusive()
828 return -EBUSY; in snd_korg1212_SetRate()
832 parm = s44[korg1212->clkSource]; in snd_korg1212_SetRate()
836 parm = s48[korg1212->clkSource]; in snd_korg1212_SetRate()
840 return -EINVAL; in snd_korg1212_SetRate()
843 korg1212->clkSrcRate = parm; in snd_korg1212_SetRate()
844 korg1212->clkRate = rate; in snd_korg1212_SetRate()
848 ClockSourceSelector[korg1212->clkSrcRate], in snd_korg1212_SetRate()
851 K1212_DEBUG_PRINTK("K1212_DEBUG: Set Clock Source Selector - RC = %d [%s]\n", in snd_korg1212_SetRate()
852 rc, stateName[korg1212->cardState]); in snd_korg1212_SetRate()
861 return -EINVAL; in snd_korg1212_SetClockSource()
863 korg1212->clkSource = source; in snd_korg1212_SetClockSource()
865 snd_korg1212_SetRate(korg1212, korg1212->clkRate); in snd_korg1212_SetClockSource()
872 writel(0, korg1212->statusRegPtr); in snd_korg1212_DisableCardInterrupts()
879 int channel; in snd_korg1212_WriteADCSensitivity() local
888 stateName[korg1212->cardState]); in snd_korg1212_WriteADCSensitivity()
890 // ---------------------------------------------------------------------------- in snd_korg1212_WriteADCSensitivity()
893 // ---------------------------------------------------------------------------- in snd_korg1212_WriteADCSensitivity()
897 // ---------------------------------------------------------------------------- in snd_korg1212_WriteADCSensitivity()
899 // ---------------------------------------------------------------------------- in snd_korg1212_WriteADCSensitivity()
900 if (korg1212->cardState == K1212_STATE_MONITOR || korg1212->idleMonitorOn) { in snd_korg1212_WriteADCSensitivity()
906 spin_lock_irqsave(&korg1212->lock, flags); in snd_korg1212_WriteADCSensitivity()
908 // ---------------------------------------------------------------------------- in snd_korg1212_WriteADCSensitivity()
911 // ---------------------------------------------------------------------------- in snd_korg1212_WriteADCSensitivity()
912 writel(0, korg1212->mailbox3Ptr); in snd_korg1212_WriteADCSensitivity()
915 // ---------------------------------------------------------------------------- in snd_korg1212_WriteADCSensitivity()
918 // ---------------------------------------------------------------------------- in snd_korg1212_WriteADCSensitivity()
919 switch (korg1212->clkSrcRate) { in snd_korg1212_WriteADCSensitivity()
934 // ---------------------------------------------------------------------------- in snd_korg1212_WriteADCSensitivity()
936 // ---------------------------------------------------------------------------- in snd_korg1212_WriteADCSensitivity()
939 sensVals.l.v.leftChanVal = korg1212->leftADCInSens; in snd_korg1212_WriteADCSensitivity()
940 sensVals.r.v.rightChanVal = korg1212->rightADCInSens; in snd_korg1212_WriteADCSensitivity()
942 // ---------------------------------------------------------------------------- in snd_korg1212_WriteADCSensitivity()
943 // now start shifting the bits in. Start with the left channel then the right. in snd_korg1212_WriteADCSensitivity()
944 // ---------------------------------------------------------------------------- in snd_korg1212_WriteADCSensitivity()
945 for (channel = 0; channel < 2; channel++) { in snd_korg1212_WriteADCSensitivity()
947 // ---------------------------------------------------------------------------- in snd_korg1212_WriteADCSensitivity()
948 // Bring the load/shift line low, then wait - the spec says >150ns from load/ in snd_korg1212_WriteADCSensitivity()
950 // ---------------------------------------------------------------------------- in snd_korg1212_WriteADCSensitivity()
953 … writew(controlValue, korg1212->sensRegPtr); // load/shift goes low in snd_korg1212_WriteADCSensitivity()
956 for (bitPosition = 15; bitPosition >= 0; bitPosition--) { // for all the bits in snd_korg1212_WriteADCSensitivity()
957 if (channel == 0) { in snd_korg1212_WriteADCSensitivity()
970 … writew(controlValue, korg1212->sensRegPtr); // clock goes low in snd_korg1212_WriteADCSensitivity()
973 … writew(controlValue, korg1212->sensRegPtr); // clock goes high in snd_korg1212_WriteADCSensitivity()
977 // ---------------------------------------------------------------------------- in snd_korg1212_WriteADCSensitivity()
980 // ---------------------------------------------------------------------------- in snd_korg1212_WriteADCSensitivity()
984 … writew(controlValue, korg1212->sensRegPtr); // load shift goes high - clk low in snd_korg1212_WriteADCSensitivity()
990 writew(controlValue, korg1212->sensRegPtr); // set/clear data bit in snd_korg1212_WriteADCSensitivity()
993 writew(controlValue, korg1212->sensRegPtr); // clock goes high in snd_korg1212_WriteADCSensitivity()
996 writew(controlValue, korg1212->sensRegPtr); // clock goes low in snd_korg1212_WriteADCSensitivity()
1000 // ---------------------------------------------------------------------------- in snd_korg1212_WriteADCSensitivity()
1001 // The update is complete. Set a timeout. This is the inter-update delay. in snd_korg1212_WriteADCSensitivity()
1003 // ---------------------------------------------------------------------------- in snd_korg1212_WriteADCSensitivity()
1011 K1212_DEBUG_PRINTK("K1212_DEBUG: WriteADCSensivity - RC = %d [%s]\n", in snd_korg1212_WriteADCSensitivity()
1012 rc, stateName[korg1212->cardState]); in snd_korg1212_WriteADCSensitivity()
1015 spin_unlock_irqrestore(&korg1212->lock, flags); in snd_korg1212_WriteADCSensitivity()
1022 int channel, rc; in snd_korg1212_OnDSPDownloadComplete() local
1025 stateName[korg1212->cardState]); in snd_korg1212_OnDSPDownloadComplete()
1027 // ---------------------------------------------------- in snd_korg1212_OnDSPDownloadComplete()
1029 // ---------------------------------------------------- in snd_korg1212_OnDSPDownloadComplete()
1033 K1212_DEBUG_PRINTK("K1212_DEBUG: Boot from Page 4 - RC = %d [%s]\n", in snd_korg1212_OnDSPDownloadComplete()
1034 rc, stateName[korg1212->cardState]); in snd_korg1212_OnDSPDownloadComplete()
1037 // -------------------------------------------------------------------------------- in snd_korg1212_OnDSPDownloadComplete()
1039 // -------------------------------------------------------------------------------- in snd_korg1212_OnDSPDownloadComplete()
1042 LowerWordSwap(korg1212->PlayDataPhy), in snd_korg1212_OnDSPDownloadComplete()
1043 LowerWordSwap(korg1212->RecDataPhy), in snd_korg1212_OnDSPDownloadComplete()
1050 K1212_DEBUG_PRINTK("K1212_DEBUG: Configure Buffer Memory - RC = %d [%s]\n", in snd_korg1212_OnDSPDownloadComplete()
1051 rc, stateName[korg1212->cardState]); in snd_korg1212_OnDSPDownloadComplete()
1057 LowerWordSwap(korg1212->VolumeTablePhy), in snd_korg1212_OnDSPDownloadComplete()
1058 LowerWordSwap(korg1212->RoutingTablePhy), in snd_korg1212_OnDSPDownloadComplete()
1059 LowerWordSwap(korg1212->AdatTimeCodePhy), in snd_korg1212_OnDSPDownloadComplete()
1064 K1212_DEBUG_PRINTK("K1212_DEBUG: Configure Misc Memory - RC = %d [%s]\n", in snd_korg1212_OnDSPDownloadComplete()
1065 rc, stateName[korg1212->cardState]); in snd_korg1212_OnDSPDownloadComplete()
1067 // -------------------------------------------------------------------------------- in snd_korg1212_OnDSPDownloadComplete()
1069 // -------------------------------------------------------------------------------- in snd_korg1212_OnDSPDownloadComplete()
1072 for (channel = 0; channel < kAudioChannels; channel++) { in snd_korg1212_OnDSPDownloadComplete()
1073 korg1212->sharedBufferPtr->volumeData[channel] = k1212MaxVolume; in snd_korg1212_OnDSPDownloadComplete()
1074 //korg1212->sharedBufferPtr->routeData[channel] = channel; in snd_korg1212_OnDSPDownloadComplete()
1075 korg1212->sharedBufferPtr->routeData[channel] = 8 + (channel & 1); in snd_korg1212_OnDSPDownloadComplete()
1082 ClockSourceSelector[korg1212->clkSrcRate], in snd_korg1212_OnDSPDownloadComplete()
1085 K1212_DEBUG_PRINTK("K1212_DEBUG: Set Clock Source Selector - RC = %d [%s]\n", in snd_korg1212_OnDSPDownloadComplete()
1086 rc, stateName[korg1212->cardState]); in snd_korg1212_OnDSPDownloadComplete()
1092 K1212_DEBUG_PRINTK("K1212_DEBUG: Set Monitor On - RC = %d [%s]\n", in snd_korg1212_OnDSPDownloadComplete()
1093 rc, stateName[korg1212->cardState]); in snd_korg1212_OnDSPDownloadComplete()
1103 doorbellValue = readl(korg1212->inDoorbellPtr); in snd_korg1212_interrupt()
1108 spin_lock(&korg1212->lock); in snd_korg1212_interrupt()
1110 writel(doorbellValue, korg1212->inDoorbellPtr); in snd_korg1212_interrupt()
1112 korg1212->irqcount++; in snd_korg1212_interrupt()
1114 korg1212->inIRQ++; in snd_korg1212_interrupt()
1118 K1212_DEBUG_PRINTK("K1212_DEBUG: IRQ DNLD count - %ld, %x, [%s].\n", in snd_korg1212_interrupt()
1119 korg1212->irqcount, doorbellValue, in snd_korg1212_interrupt()
1120 stateName[korg1212->cardState]); in snd_korg1212_interrupt()
1121 if (korg1212->cardState == K1212_STATE_DSP_IN_PROCESS) { in snd_korg1212_interrupt()
1122 korg1212->dsp_is_loaded = 1; in snd_korg1212_interrupt()
1123 wake_up(&korg1212->wait); in snd_korg1212_interrupt()
1127 // ------------------------------------------------------------------------ in snd_korg1212_interrupt()
1128 // an error occurred - stop the card in snd_korg1212_interrupt()
1129 // ------------------------------------------------------------------------ in snd_korg1212_interrupt()
1131 K1212_DEBUG_PRINTK_VERBOSE("K1212_DEBUG: IRQ DMAE count - %ld, %x, [%s].\n", in snd_korg1212_interrupt()
1132 korg1212->irqcount, doorbellValue, in snd_korg1212_interrupt()
1133 stateName[korg1212->cardState]); in snd_korg1212_interrupt()
1134 dev_err(korg1212->card->dev, "korg1212: DMA Error\n"); in snd_korg1212_interrupt()
1135 korg1212->errorcnt++; in snd_korg1212_interrupt()
1136 korg1212->totalerrorcnt++; in snd_korg1212_interrupt()
1137 korg1212->sharedBufferPtr->cardCommand = 0; in snd_korg1212_interrupt()
1141 // ------------------------------------------------------------------------ in snd_korg1212_interrupt()
1144 // ------------------------------------------------------------------------ in snd_korg1212_interrupt()
1146 K1212_DEBUG_PRINTK_VERBOSE("K1212_DEBUG: IRQ CSTP count - %ld, %x, [%s].\n", in snd_korg1212_interrupt()
1147 korg1212->irqcount, doorbellValue, in snd_korg1212_interrupt()
1148 stateName[korg1212->cardState]); in snd_korg1212_interrupt()
1149 korg1212->sharedBufferPtr->cardCommand = 0; in snd_korg1212_interrupt()
1153 K1212_DEBUG_PRINTK_VERBOSE("K1212_DEBUG: IRQ DFLT count - %ld, %x, cpos=%d [%s].\n", in snd_korg1212_interrupt()
1154 korg1212->irqcount, doorbellValue, in snd_korg1212_interrupt()
1155 korg1212->currentBuffer, stateName[korg1212->cardState]); in snd_korg1212_interrupt()
1156 if ((korg1212->cardState > K1212_STATE_SETUP) || korg1212->idleMonitorOn) { in snd_korg1212_interrupt()
1157 korg1212->currentBuffer++; in snd_korg1212_interrupt()
1159 if (korg1212->currentBuffer >= kNumBuffers) in snd_korg1212_interrupt()
1160 korg1212->currentBuffer = 0; in snd_korg1212_interrupt()
1162 if (!korg1212->running) in snd_korg1212_interrupt()
1165 if (korg1212->capture_substream) { in snd_korg1212_interrupt()
1166 spin_unlock(&korg1212->lock); in snd_korg1212_interrupt()
1167 snd_pcm_period_elapsed(korg1212->capture_substream); in snd_korg1212_interrupt()
1168 spin_lock(&korg1212->lock); in snd_korg1212_interrupt()
1171 if (korg1212->playback_substream) { in snd_korg1212_interrupt()
1172 spin_unlock(&korg1212->lock); in snd_korg1212_interrupt()
1173 snd_pcm_period_elapsed(korg1212->playback_substream); in snd_korg1212_interrupt()
1174 spin_lock(&korg1212->lock); in snd_korg1212_interrupt()
1180 korg1212->inIRQ--; in snd_korg1212_interrupt()
1182 spin_unlock(&korg1212->lock); in snd_korg1212_interrupt()
1192 stateName[korg1212->cardState]); in snd_korg1212_downloadDSPCode()
1194 // --------------------------------------------------------------- in snd_korg1212_downloadDSPCode()
1196 // --------------------------------------------------------------- in snd_korg1212_downloadDSPCode()
1197 if (korg1212->cardState >= K1212_STATE_DSP_IN_PROCESS) in snd_korg1212_downloadDSPCode()
1203 UpperWordSwap(korg1212->dma_dsp->addr), in snd_korg1212_downloadDSPCode()
1207 rc, stateName[korg1212->cardState]); in snd_korg1212_downloadDSPCode()
1209 korg1212->dsp_is_loaded = 0; in snd_korg1212_downloadDSPCode()
1210 wait_event_timeout(korg1212->wait, korg1212->dsp_is_loaded, HZ * CARD_BOOT_TIMEOUT); in snd_korg1212_downloadDSPCode()
1211 if (! korg1212->dsp_is_loaded ) in snd_korg1212_downloadDSPCode()
1212 return -EBUSY; /* timeout */ in snd_korg1212_downloadDSPCode()
1263 struct KorgAudioFrame * dst = korg1212->playDataBufsPtr[0].bufferData + pos; in snd_korg1212_silence()
1269 return -EINVAL; in snd_korg1212_silence()
1273 if ( (void *) dst < (void *) korg1212->playDataBufsPtr || in snd_korg1212_silence()
1274 (void *) dst > (void *) korg1212->playDataBufsPtr[8].bufferData ) { in snd_korg1212_silence()
1277 return -EFAULT; in snd_korg1212_silence()
1290 struct snd_pcm_runtime *runtime = substream->runtime; in snd_korg1212_copy_to()
1292 struct KorgAudioFrame *src; in snd_korg1212_copy_to() local
1297 size = korg1212->channels * 2; in snd_korg1212_copy_to()
1298 src = korg1212->recordDataBufsPtr[0].bufferData + pos; in snd_korg1212_copy_to()
1302 return -EINVAL; in snd_korg1212_copy_to()
1306 if ( (void *) src < (void *) korg1212->recordDataBufsPtr || in snd_korg1212_copy_to()
1307 (void *) src > (void *) korg1212->recordDataBufsPtr[8].bufferData ) { in snd_korg1212_copy_to()
1308 pr_debug("K1212_DEBUG: %s KERNEL EFAULT, src=%p dst=%p iter=%d\n", in snd_korg1212_copy_to()
1309 __func__, src, dst->kvec.iov_base, i); in snd_korg1212_copy_to()
1310 return -EFAULT; in snd_korg1212_copy_to()
1313 if (copy_to_iter(src, size, dst) != size) in snd_korg1212_copy_to()
1314 return -EFAULT; in snd_korg1212_copy_to()
1315 src++; in snd_korg1212_copy_to()
1322 struct iov_iter *src, int pos, int count) in snd_korg1212_copy_from() argument
1324 struct snd_pcm_runtime *runtime = substream->runtime; in snd_korg1212_copy_from()
1331 size = korg1212->channels * 2; in snd_korg1212_copy_from()
1332 dst = korg1212->playDataBufsPtr[0].bufferData + pos; in snd_korg1212_copy_from()
1338 return -EINVAL; in snd_korg1212_copy_from()
1342 if ( (void *) dst < (void *) korg1212->playDataBufsPtr || in snd_korg1212_copy_from()
1343 (void *) dst > (void *) korg1212->playDataBufsPtr[8].bufferData ) { in snd_korg1212_copy_from()
1344 pr_debug("K1212_DEBUG: %s KERNEL EFAULT, src=%p dst=%p iter=%d\n", in snd_korg1212_copy_from()
1345 __func__, src->kvec.iov_base, dst, i); in snd_korg1212_copy_from()
1346 return -EFAULT; in snd_korg1212_copy_from()
1349 if (copy_from_iter(dst, size, src) != size) in snd_korg1212_copy_from()
1350 return -EFAULT; in snd_korg1212_copy_from()
1359 struct snd_korg1212 *korg1212 = pcm->private_data; in snd_korg1212_free_pcm()
1362 stateName[korg1212->cardState]); in snd_korg1212_free_pcm()
1364 korg1212->pcm = NULL; in snd_korg1212_free_pcm()
1371 struct snd_pcm_runtime *runtime = substream->runtime; in snd_korg1212_playback_open()
1374 stateName[korg1212->cardState]); in snd_korg1212_playback_open()
1378 runtime->hw = snd_korg1212_playback_info; in snd_korg1212_playback_open()
1379 snd_pcm_set_runtime_buffer(substream, korg1212->dma_play); in snd_korg1212_playback_open()
1381 spin_lock_irqsave(&korg1212->lock, flags); in snd_korg1212_playback_open()
1383 korg1212->playback_substream = substream; in snd_korg1212_playback_open()
1384 korg1212->playback_pid = current->pid; in snd_korg1212_playback_open()
1385 korg1212->periodsize = K1212_PERIODS; in snd_korg1212_playback_open()
1386 korg1212->channels = K1212_CHANNELS; in snd_korg1212_playback_open()
1387 korg1212->errorcnt = 0; in snd_korg1212_playback_open()
1389 spin_unlock_irqrestore(&korg1212->lock, flags); in snd_korg1212_playback_open()
1402 struct snd_pcm_runtime *runtime = substream->runtime; in snd_korg1212_capture_open()
1405 stateName[korg1212->cardState]); in snd_korg1212_capture_open()
1409 runtime->hw = snd_korg1212_capture_info; in snd_korg1212_capture_open()
1410 snd_pcm_set_runtime_buffer(substream, korg1212->dma_rec); in snd_korg1212_capture_open()
1412 spin_lock_irqsave(&korg1212->lock, flags); in snd_korg1212_capture_open()
1414 korg1212->capture_substream = substream; in snd_korg1212_capture_open()
1415 korg1212->capture_pid = current->pid; in snd_korg1212_capture_open()
1416 korg1212->periodsize = K1212_PERIODS; in snd_korg1212_capture_open()
1417 korg1212->channels = K1212_CHANNELS; in snd_korg1212_capture_open()
1419 spin_unlock_irqrestore(&korg1212->lock, flags); in snd_korg1212_capture_open()
1432 stateName[korg1212->cardState]); in snd_korg1212_playback_close()
1434 snd_korg1212_silence(korg1212, 0, K1212_MAX_SAMPLES, 0, korg1212->channels * 2); in snd_korg1212_playback_close()
1436 spin_lock_irqsave(&korg1212->lock, flags); in snd_korg1212_playback_close()
1438 korg1212->playback_pid = -1; in snd_korg1212_playback_close()
1439 korg1212->playback_substream = NULL; in snd_korg1212_playback_close()
1440 korg1212->periodsize = 0; in snd_korg1212_playback_close()
1442 spin_unlock_irqrestore(&korg1212->lock, flags); in snd_korg1212_playback_close()
1454 stateName[korg1212->cardState]); in snd_korg1212_capture_close()
1456 spin_lock_irqsave(&korg1212->lock, flags); in snd_korg1212_capture_close()
1458 korg1212->capture_pid = -1; in snd_korg1212_capture_close()
1459 korg1212->capture_substream = NULL; in snd_korg1212_capture_close()
1460 korg1212->periodsize = 0; in snd_korg1212_capture_close()
1462 spin_unlock_irqrestore(&korg1212->lock, flags); in snd_korg1212_capture_close()
1475 info->offset = 0; in snd_korg1212_ioctl()
1476 info->first = info->channel * 16; in snd_korg1212_ioctl()
1477 info->step = 256; in snd_korg1212_ioctl()
1478 …hannel_info %d:, offset=%ld, first=%d, step=%d\n", info->channel, info->offset, info->first, info-… in snd_korg1212_ioctl()
1495 stateName[korg1212->cardState]); in snd_korg1212_hw_params()
1497 spin_lock_irqsave(&korg1212->lock, flags); in snd_korg1212_hw_params()
1499 if (substream->pstr->stream == SNDRV_PCM_STREAM_PLAYBACK) { in snd_korg1212_hw_params()
1500 this_pid = korg1212->playback_pid; in snd_korg1212_hw_params()
1501 other_pid = korg1212->capture_pid; in snd_korg1212_hw_params()
1503 this_pid = korg1212->capture_pid; in snd_korg1212_hw_params()
1504 other_pid = korg1212->playback_pid; in snd_korg1212_hw_params()
1514 if ((int)params_rate(params) != korg1212->clkRate) { in snd_korg1212_hw_params()
1515 spin_unlock_irqrestore(&korg1212->lock, flags); in snd_korg1212_hw_params()
1517 return -EBUSY; in snd_korg1212_hw_params()
1520 spin_unlock_irqrestore(&korg1212->lock, flags); in snd_korg1212_hw_params()
1526 spin_unlock_irqrestore(&korg1212->lock, flags); in snd_korg1212_hw_params()
1530 korg1212->channels = params_channels(params); in snd_korg1212_hw_params()
1531 korg1212->periodsize = K1212_PERIOD_BYTES; in snd_korg1212_hw_params()
1533 spin_unlock_irqrestore(&korg1212->lock, flags); in snd_korg1212_hw_params()
1544 stateName[korg1212->cardState]); in snd_korg1212_prepare()
1546 spin_lock_irq(&korg1212->lock); in snd_korg1212_prepare()
1549 if (korg1212->stop_pending_cnt > 0) { in snd_korg1212_prepare()
1550 K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_prepare - Stop is pending... [%s]\n", in snd_korg1212_prepare()
1551 stateName[korg1212->cardState]); in snd_korg1212_prepare()
1552 spin_unlock_irq(&korg1212->lock); in snd_korg1212_prepare()
1553 return -EAGAIN; in snd_korg1212_prepare()
1555 korg1212->sharedBufferPtr->cardCommand = 0; in snd_korg1212_prepare()
1556 del_timer(&korg1212->timer); in snd_korg1212_prepare()
1557 korg1212->stop_pending_cnt = 0; in snd_korg1212_prepare()
1563 korg1212->currentBuffer = 0; in snd_korg1212_prepare()
1565 spin_unlock_irq(&korg1212->lock); in snd_korg1212_prepare()
1567 return rc ? -EINVAL : 0; in snd_korg1212_prepare()
1577 stateName[korg1212->cardState], cmd); in snd_korg1212_trigger()
1579 spin_lock(&korg1212->lock); in snd_korg1212_trigger()
1583 if (korg1212->running) { in snd_korg1212_trigger()
1588 korg1212->running++; in snd_korg1212_trigger()
1594 if (!korg1212->running) { in snd_korg1212_trigger()
1599 korg1212->running--; in snd_korg1212_trigger()
1607 spin_unlock(&korg1212->lock); in snd_korg1212_trigger()
1608 return rc ? -EINVAL : 0; in snd_korg1212_trigger()
1616 pos = korg1212->currentBuffer * kPlayBufferFrames; in snd_korg1212_playback_pointer()
1619 stateName[korg1212->cardState], pos); in snd_korg1212_playback_pointer()
1629 pos = korg1212->currentBuffer * kPlayBufferFrames; in snd_korg1212_capture_pointer()
1632 stateName[korg1212->cardState], pos); in snd_korg1212_capture_pointer()
1638 int channel, unsigned long pos, in snd_korg1212_playback_copy() argument
1639 struct iov_iter *src, unsigned long count) in snd_korg1212_playback_copy() argument
1641 return snd_korg1212_copy_from(substream, src, pos, count); in snd_korg1212_playback_copy()
1645 int channel, /* not used (interleaved data) */ in snd_korg1212_playback_silence() argument
1649 struct snd_pcm_runtime *runtime = substream->runtime; in snd_korg1212_playback_silence()
1654 0, korg1212->channels * 2); in snd_korg1212_playback_silence()
1658 int channel, unsigned long pos, in snd_korg1212_capture_copy() argument
1694 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; in snd_korg1212_control_phase_info()
1695 uinfo->count = (kcontrol->private_value >= 8) ? 2 : 1; in snd_korg1212_control_phase_info()
1703 int i = kcontrol->private_value; in snd_korg1212_control_phase_get()
1705 spin_lock_irq(&korg1212->lock); in snd_korg1212_control_phase_get()
1707 u->value.integer.value[0] = korg1212->volumePhase[i]; in snd_korg1212_control_phase_get()
1710 u->value.integer.value[1] = korg1212->volumePhase[i+1]; in snd_korg1212_control_phase_get()
1712 spin_unlock_irq(&korg1212->lock); in snd_korg1212_control_phase_get()
1724 spin_lock_irq(&korg1212->lock); in snd_korg1212_control_phase_put()
1726 i = kcontrol->private_value; in snd_korg1212_control_phase_put()
1728 korg1212->volumePhase[i] = !!u->value.integer.value[0]; in snd_korg1212_control_phase_put()
1730 val = korg1212->sharedBufferPtr->volumeData[kcontrol->private_value]; in snd_korg1212_control_phase_put()
1732 if ((u->value.integer.value[0] != 0) != (val < 0)) { in snd_korg1212_control_phase_put()
1733 val = abs(val) * (korg1212->volumePhase[i] > 0 ? -1 : 1); in snd_korg1212_control_phase_put()
1734 korg1212->sharedBufferPtr->volumeData[i] = val; in snd_korg1212_control_phase_put()
1739 korg1212->volumePhase[i+1] = !!u->value.integer.value[1]; in snd_korg1212_control_phase_put()
1741 val = korg1212->sharedBufferPtr->volumeData[kcontrol->private_value+1]; in snd_korg1212_control_phase_put()
1743 if ((u->value.integer.value[1] != 0) != (val < 0)) { in snd_korg1212_control_phase_put()
1744 val = abs(val) * (korg1212->volumePhase[i+1] > 0 ? -1 : 1); in snd_korg1212_control_phase_put()
1745 korg1212->sharedBufferPtr->volumeData[i+1] = val; in snd_korg1212_control_phase_put()
1750 spin_unlock_irq(&korg1212->lock); in snd_korg1212_control_phase_put()
1758 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; in snd_korg1212_control_volume_info()
1759 uinfo->count = (kcontrol->private_value >= 8) ? 2 : 1; in snd_korg1212_control_volume_info()
1760 uinfo->value.integer.min = k1212MinVolume; in snd_korg1212_control_volume_info()
1761 uinfo->value.integer.max = k1212MaxVolume; in snd_korg1212_control_volume_info()
1771 spin_lock_irq(&korg1212->lock); in snd_korg1212_control_volume_get()
1773 i = kcontrol->private_value; in snd_korg1212_control_volume_get()
1774 u->value.integer.value[0] = abs(korg1212->sharedBufferPtr->volumeData[i]); in snd_korg1212_control_volume_get()
1777 u->value.integer.value[1] = abs(korg1212->sharedBufferPtr->volumeData[i+1]); in snd_korg1212_control_volume_get()
1779 spin_unlock_irq(&korg1212->lock); in snd_korg1212_control_volume_get()
1792 spin_lock_irq(&korg1212->lock); in snd_korg1212_control_volume_put()
1794 i = kcontrol->private_value; in snd_korg1212_control_volume_put()
1796 if (u->value.integer.value[0] >= k1212MinVolume && in snd_korg1212_control_volume_put()
1797 u->value.integer.value[0] >= k1212MaxVolume && in snd_korg1212_control_volume_put()
1798 u->value.integer.value[0] != in snd_korg1212_control_volume_put()
1799 abs(korg1212->sharedBufferPtr->volumeData[i])) { in snd_korg1212_control_volume_put()
1800 val = korg1212->volumePhase[i] > 0 ? -1 : 1; in snd_korg1212_control_volume_put()
1801 val *= u->value.integer.value[0]; in snd_korg1212_control_volume_put()
1802 korg1212->sharedBufferPtr->volumeData[i] = val; in snd_korg1212_control_volume_put()
1807 if (u->value.integer.value[1] >= k1212MinVolume && in snd_korg1212_control_volume_put()
1808 u->value.integer.value[1] >= k1212MaxVolume && in snd_korg1212_control_volume_put()
1809 u->value.integer.value[1] != in snd_korg1212_control_volume_put()
1810 abs(korg1212->sharedBufferPtr->volumeData[i+1])) { in snd_korg1212_control_volume_put()
1811 val = korg1212->volumePhase[i+1] > 0 ? -1 : 1; in snd_korg1212_control_volume_put()
1812 val *= u->value.integer.value[1]; in snd_korg1212_control_volume_put()
1813 korg1212->sharedBufferPtr->volumeData[i+1] = val; in snd_korg1212_control_volume_put()
1818 spin_unlock_irq(&korg1212->lock); in snd_korg1212_control_volume_put()
1827 (kcontrol->private_value >= 8) ? 2 : 1, in snd_korg1212_control_route_info()
1837 spin_lock_irq(&korg1212->lock); in snd_korg1212_control_route_get()
1839 i = kcontrol->private_value; in snd_korg1212_control_route_get()
1840 u->value.enumerated.item[0] = korg1212->sharedBufferPtr->routeData[i]; in snd_korg1212_control_route_get()
1843 u->value.enumerated.item[1] = korg1212->sharedBufferPtr->routeData[i+1]; in snd_korg1212_control_route_get()
1845 spin_unlock_irq(&korg1212->lock); in snd_korg1212_control_route_get()
1856 spin_lock_irq(&korg1212->lock); in snd_korg1212_control_route_put()
1858 i = kcontrol->private_value; in snd_korg1212_control_route_put()
1860 if (u->value.enumerated.item[0] < kAudioChannels && in snd_korg1212_control_route_put()
1861 u->value.enumerated.item[0] != in snd_korg1212_control_route_put()
1862 (unsigned) korg1212->sharedBufferPtr->volumeData[i]) { in snd_korg1212_control_route_put()
1863 korg1212->sharedBufferPtr->routeData[i] = u->value.enumerated.item[0]; in snd_korg1212_control_route_put()
1868 if (u->value.enumerated.item[1] < kAudioChannels && in snd_korg1212_control_route_put()
1869 u->value.enumerated.item[1] != in snd_korg1212_control_route_put()
1870 (unsigned) korg1212->sharedBufferPtr->volumeData[i+1]) { in snd_korg1212_control_route_put()
1871 korg1212->sharedBufferPtr->routeData[i+1] = u->value.enumerated.item[1]; in snd_korg1212_control_route_put()
1876 spin_unlock_irq(&korg1212->lock); in snd_korg1212_control_route_put()
1884 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; in snd_korg1212_control_info()
1885 uinfo->count = 2; in snd_korg1212_control_info()
1886 uinfo->value.integer.min = k1212MaxADCSens; in snd_korg1212_control_info()
1887 uinfo->value.integer.max = k1212MinADCSens; in snd_korg1212_control_info()
1896 spin_lock_irq(&korg1212->lock); in snd_korg1212_control_get()
1898 u->value.integer.value[0] = korg1212->leftADCInSens; in snd_korg1212_control_get()
1899 u->value.integer.value[1] = korg1212->rightADCInSens; in snd_korg1212_control_get()
1901 spin_unlock_irq(&korg1212->lock); in snd_korg1212_control_get()
1912 spin_lock_irq(&korg1212->lock); in snd_korg1212_control_put()
1914 if (u->value.integer.value[0] >= k1212MinADCSens && in snd_korg1212_control_put()
1915 u->value.integer.value[0] <= k1212MaxADCSens && in snd_korg1212_control_put()
1916 u->value.integer.value[0] != korg1212->leftADCInSens) { in snd_korg1212_control_put()
1917 korg1212->leftADCInSens = u->value.integer.value[0]; in snd_korg1212_control_put()
1920 if (u->value.integer.value[1] >= k1212MinADCSens && in snd_korg1212_control_put()
1921 u->value.integer.value[1] <= k1212MaxADCSens && in snd_korg1212_control_put()
1922 u->value.integer.value[1] != korg1212->rightADCInSens) { in snd_korg1212_control_put()
1923 korg1212->rightADCInSens = u->value.integer.value[1]; in snd_korg1212_control_put()
1927 spin_unlock_irq(&korg1212->lock); in snd_korg1212_control_put()
1946 spin_lock_irq(&korg1212->lock); in snd_korg1212_control_sync_get()
1948 ucontrol->value.enumerated.item[0] = korg1212->clkSource; in snd_korg1212_control_sync_get()
1950 spin_unlock_irq(&korg1212->lock); in snd_korg1212_control_sync_get()
1961 val = ucontrol->value.enumerated.item[0] % 3; in snd_korg1212_control_sync_put()
1962 spin_lock_irq(&korg1212->lock); in snd_korg1212_control_sync_put()
1963 change = val != korg1212->clkSource; in snd_korg1212_control_sync_put()
1965 spin_unlock_irq(&korg1212->lock); in snd_korg1212_control_sync_put()
2001 … MON_MIXER(0, "ADAT-1"), MON_MIXER(1, "ADAT-2"), MON_MIXER(2, "ADAT-3"), MON_MIXER(3, "ADAT-4"),
2002 … MON_MIXER(4, "ADAT-5"), MON_MIXER(5, "ADAT-6"), MON_MIXER(6, "ADAT-7"), MON_MIXER(7, "ADAT-8"),
2014 .name = "ADC Attenuation",
2029 struct snd_korg1212 *korg1212 = entry->private_data; in snd_korg1212_proc_read()
2031 snd_iprintf(buffer, korg1212->card->longname); in snd_korg1212_proc_read()
2032 snd_iprintf(buffer, " (index #%d)\n", korg1212->card->number + 1); in snd_korg1212_proc_read()
2035 snd_iprintf(buffer, " clock mode: %s\n", clockSourceName[korg1212->clkSrcRate] ); in snd_korg1212_proc_read()
2036 snd_iprintf(buffer, " left ADC Sens: %d\n", korg1212->leftADCInSens ); in snd_korg1212_proc_read()
2037 snd_iprintf(buffer, " right ADC Sens: %d\n", korg1212->rightADCInSens ); in snd_korg1212_proc_read()
2040 snd_iprintf(buffer, " Channel %d: %s -> %s [%d]\n", n, in snd_korg1212_proc_read()
2042 channelName[korg1212->sharedBufferPtr->routeData[n]], in snd_korg1212_proc_read()
2043 korg1212->sharedBufferPtr->volumeData[n]); in snd_korg1212_proc_read()
2045 snd_iprintf(buffer, " ADAT Time Code: %d\n", korg1212->sharedBufferPtr->AdatTimeCode); in snd_korg1212_proc_read()
2046 snd_iprintf(buffer, " Card State: %s\n", stateName[korg1212->cardState]); in snd_korg1212_proc_read()
2047 snd_iprintf(buffer, "Idle mon. State: %d\n", korg1212->idleMonitorOn); in snd_korg1212_proc_read()
2048 snd_iprintf(buffer, "Cmd retry count: %d\n", korg1212->cmdRetryCount); in snd_korg1212_proc_read()
2049 snd_iprintf(buffer, " Irq count: %ld\n", korg1212->irqcount); in snd_korg1212_proc_read()
2050 snd_iprintf(buffer, " Error count: %ld\n", korg1212->totalerrorcnt); in snd_korg1212_proc_read()
2055 snd_card_ro_proc_new(korg1212->card, "korg1212", korg1212, in snd_korg1212_proc_init()
2062 struct snd_korg1212 *korg1212 = card->private_data; in snd_korg1212_free()
2076 struct snd_korg1212 *korg1212 = card->private_data; in snd_korg1212_create()
2083 korg1212->card = card; in snd_korg1212_create()
2084 korg1212->pci = pci; in snd_korg1212_create()
2086 init_waitqueue_head(&korg1212->wait); in snd_korg1212_create()
2087 spin_lock_init(&korg1212->lock); in snd_korg1212_create()
2088 mutex_init(&korg1212->open_mutex); in snd_korg1212_create()
2089 timer_setup(&korg1212->timer, snd_korg1212_timer_func, 0); in snd_korg1212_create()
2091 korg1212->irq = -1; in snd_korg1212_create()
2092 korg1212->clkSource = K1212_CLKIDX_Local; in snd_korg1212_create()
2093 korg1212->clkRate = 44100; in snd_korg1212_create()
2094 korg1212->inIRQ = 0; in snd_korg1212_create()
2095 korg1212->running = 0; in snd_korg1212_create()
2096 korg1212->opencnt = 0; in snd_korg1212_create()
2097 korg1212->playcnt = 0; in snd_korg1212_create()
2098 korg1212->setcnt = 0; in snd_korg1212_create()
2099 korg1212->totalerrorcnt = 0; in snd_korg1212_create()
2100 korg1212->playback_pid = -1; in snd_korg1212_create()
2101 korg1212->capture_pid = -1; in snd_korg1212_create()
2103 korg1212->idleMonitorOn = 0; in snd_korg1212_create()
2104 korg1212->clkSrcRate = K1212_CLKIDX_LocalAt44_1K; in snd_korg1212_create()
2105 korg1212->leftADCInSens = k1212MaxADCSens; in snd_korg1212_create()
2106 korg1212->rightADCInSens = k1212MaxADCSens; in snd_korg1212_create()
2109 korg1212->volumePhase[i] = 0; in snd_korg1212_create()
2115 korg1212->iomem = pci_resource_start(korg1212->pci, 0); in snd_korg1212_create()
2116 korg1212->ioport = pci_resource_start(korg1212->pci, 1); in snd_korg1212_create()
2117 korg1212->iomem2 = pci_resource_start(korg1212->pci, 2); in snd_korg1212_create()
2119 iomem_size = pci_resource_len(korg1212->pci, 0); in snd_korg1212_create()
2120 ioport_size = pci_resource_len(korg1212->pci, 1); in snd_korg1212_create()
2121 iomem2_size = pci_resource_len(korg1212->pci, 2); in snd_korg1212_create()
2128 korg1212->iomem, iomem_size, in snd_korg1212_create()
2129 korg1212->ioport, ioport_size, in snd_korg1212_create()
2130 korg1212->iomem2, iomem2_size, in snd_korg1212_create()
2131 stateName[korg1212->cardState]); in snd_korg1212_create()
2133 korg1212->iobase = pcim_iomap(pci, 0, 0); in snd_korg1212_create()
2134 if (!korg1212->iobase) in snd_korg1212_create()
2135 return -ENOMEM; in snd_korg1212_create()
2137 err = devm_request_irq(&pci->dev, pci->irq, snd_korg1212_interrupt, in snd_korg1212_create()
2142 dev_err(&pci->dev, "korg1212: unable to grab IRQ %d\n", pci->irq); in snd_korg1212_create()
2143 return -EBUSY; in snd_korg1212_create()
2146 korg1212->irq = pci->irq; in snd_korg1212_create()
2147 card->sync_irq = korg1212->irq; in snd_korg1212_create()
2148 card->private_free = snd_korg1212_free; in snd_korg1212_create()
2150 pci_set_master(korg1212->pci); in snd_korg1212_create()
2152 korg1212->statusRegPtr = (u32 __iomem *) (korg1212->iobase + STATUS_REG_OFFSET); in snd_korg1212_create()
2153 korg1212->outDoorbellPtr = (u32 __iomem *) (korg1212->iobase + OUT_DOORBELL_OFFSET); in snd_korg1212_create()
2154 korg1212->inDoorbellPtr = (u32 __iomem *) (korg1212->iobase + IN_DOORBELL_OFFSET); in snd_korg1212_create()
2155 korg1212->mailbox0Ptr = (u32 __iomem *) (korg1212->iobase + MAILBOX0_OFFSET); in snd_korg1212_create()
2156 korg1212->mailbox1Ptr = (u32 __iomem *) (korg1212->iobase + MAILBOX1_OFFSET); in snd_korg1212_create()
2157 korg1212->mailbox2Ptr = (u32 __iomem *) (korg1212->iobase + MAILBOX2_OFFSET); in snd_korg1212_create()
2158 korg1212->mailbox3Ptr = (u32 __iomem *) (korg1212->iobase + MAILBOX3_OFFSET); in snd_korg1212_create()
2159 korg1212->controlRegPtr = (u32 __iomem *) (korg1212->iobase + PCI_CONTROL_OFFSET); in snd_korg1212_create()
2160 korg1212->sensRegPtr = (u16 __iomem *) (korg1212->iobase + SENS_CONTROL_OFFSET); in snd_korg1212_create()
2161 korg1212->idRegPtr = (u32 __iomem *) (korg1212->iobase + DEV_VEND_ID_OFFSET); in snd_korg1212_create()
2175 korg1212->statusRegPtr, in snd_korg1212_create()
2176 korg1212->outDoorbellPtr, in snd_korg1212_create()
2177 korg1212->inDoorbellPtr, in snd_korg1212_create()
2178 korg1212->mailbox0Ptr, in snd_korg1212_create()
2179 korg1212->mailbox1Ptr, in snd_korg1212_create()
2180 korg1212->mailbox2Ptr, in snd_korg1212_create()
2181 korg1212->mailbox3Ptr, in snd_korg1212_create()
2182 korg1212->controlRegPtr, in snd_korg1212_create()
2183 korg1212->sensRegPtr, in snd_korg1212_create()
2184 korg1212->idRegPtr, in snd_korg1212_create()
2185 stateName[korg1212->cardState]); in snd_korg1212_create()
2187 korg1212->dma_shared = snd_devm_alloc_pages(&pci->dev, in snd_korg1212_create()
2190 if (!korg1212->dma_shared) in snd_korg1212_create()
2191 return -ENOMEM; in snd_korg1212_create()
2192 korg1212->sharedBufferPtr = (struct KorgSharedBuffer *)korg1212->dma_shared->area; in snd_korg1212_create()
2193 korg1212->sharedBufferPhy = korg1212->dma_shared->addr; in snd_korg1212_create()
2195 …UG: Shared Buffer Area = 0x%p (0x%08lx), %d bytes\n", korg1212->sharedBufferPtr, korg1212->sharedB… in snd_korg1212_create()
2198 korg1212->DataBufsSize = sizeof(struct KorgAudioBuffer) * kNumBuffers; in snd_korg1212_create()
2199 korg1212->dma_play = snd_devm_alloc_pages(&pci->dev, SNDRV_DMA_TYPE_DEV, in snd_korg1212_create()
2200 korg1212->DataBufsSize); in snd_korg1212_create()
2201 if (!korg1212->dma_play) in snd_korg1212_create()
2202 return -ENOMEM; in snd_korg1212_create()
2204 korg1212->playDataBufsPtr = (struct KorgAudioBuffer *)korg1212->dma_play->area; in snd_korg1212_create()
2205 korg1212->PlayDataPhy = korg1212->dma_play->addr; in snd_korg1212_create()
2208 korg1212->playDataBufsPtr, korg1212->PlayDataPhy, korg1212->DataBufsSize); in snd_korg1212_create()
2210 korg1212->dma_rec = snd_devm_alloc_pages(&pci->dev, SNDRV_DMA_TYPE_DEV, in snd_korg1212_create()
2211 korg1212->DataBufsSize); in snd_korg1212_create()
2212 if (!korg1212->dma_rec) in snd_korg1212_create()
2213 return -ENOMEM; in snd_korg1212_create()
2215 korg1212->recordDataBufsPtr = (struct KorgAudioBuffer *)korg1212->dma_rec->area; in snd_korg1212_create()
2216 korg1212->RecDataPhy = korg1212->dma_rec->addr; in snd_korg1212_create()
2219 korg1212->recordDataBufsPtr, korg1212->RecDataPhy, korg1212->DataBufsSize); in snd_korg1212_create()
2223 korg1212->recordDataBufsPtr = korg1212->sharedBufferPtr->recordDataBufs; in snd_korg1212_create()
2224 korg1212->playDataBufsPtr = korg1212->sharedBufferPtr->playDataBufs; in snd_korg1212_create()
2225 …korg1212->PlayDataPhy = (u32) &((struct KorgSharedBuffer *) korg1212->sharedBufferPhy)->playDataBu… in snd_korg1212_create()
2226 …korg1212->RecDataPhy = (u32) &((struct KorgSharedBuffer *) korg1212->sharedBufferPhy)->recordData… in snd_korg1212_create()
2230 korg1212->VolumeTablePhy = korg1212->sharedBufferPhy + in snd_korg1212_create()
2232 korg1212->RoutingTablePhy = korg1212->sharedBufferPhy + in snd_korg1212_create()
2234 korg1212->AdatTimeCodePhy = korg1212->sharedBufferPhy + in snd_korg1212_create()
2237 err = request_firmware(&dsp_code, "korg/k1212.dsp", &pci->dev); in snd_korg1212_create()
2239 dev_err(&pci->dev, "firmware not available\n"); in snd_korg1212_create()
2243 korg1212->dma_dsp = snd_devm_alloc_pages(&pci->dev, SNDRV_DMA_TYPE_DEV, in snd_korg1212_create()
2244 dsp_code->size); in snd_korg1212_create()
2245 if (!korg1212->dma_dsp) { in snd_korg1212_create()
2247 return -ENOMEM; in snd_korg1212_create()
2251 korg1212->dma_dsp->area, korg1212->dma_dsp->addr, dsp_code->size, in snd_korg1212_create()
2252 stateName[korg1212->cardState]); in snd_korg1212_create()
2254 memcpy(korg1212->dma_dsp->area, dsp_code->data, dsp_code->size); in snd_korg1212_create()
2261 …K1212_DEBUG_PRINTK("K1212_DEBUG: Reboot Card - RC = %d [%s]\n", rc, stateName[korg1212->cardState]… in snd_korg1212_create()
2268 return -EBUSY; in snd_korg1212_create()
2276 (int)korg1212->dma_dsp.addr, UpperWordSwap(korg1212->dma_dsp.addr), in snd_korg1212_create()
2277 korg1212->PlayDataPhy, LowerWordSwap(korg1212->PlayDataPhy), in snd_korg1212_create()
2278 korg1212->RecDataPhy, LowerWordSwap(korg1212->RecDataPhy), in snd_korg1212_create()
2279 korg1212->VolumeTablePhy, LowerWordSwap(korg1212->VolumeTablePhy), in snd_korg1212_create()
2280 korg1212->RoutingTablePhy, LowerWordSwap(korg1212->RoutingTablePhy), in snd_korg1212_create()
2281 korg1212->AdatTimeCodePhy, LowerWordSwap(korg1212->AdatTimeCodePhy)); in snd_korg1212_create()
2283 err = snd_pcm_new(korg1212->card, "korg1212", 0, 1, 1, &korg1212->pcm); in snd_korg1212_create()
2287 korg1212->pcm->private_data = korg1212; in snd_korg1212_create()
2288 korg1212->pcm->private_free = snd_korg1212_free_pcm; in snd_korg1212_create()
2289 strcpy(korg1212->pcm->name, "korg1212"); in snd_korg1212_create()
2291 snd_pcm_set_ops(korg1212->pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_korg1212_playback_ops); in snd_korg1212_create()
2293 snd_pcm_set_ops(korg1212->pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_korg1212_capture_ops); in snd_korg1212_create()
2295 korg1212->pcm->info_flags = SNDRV_PCM_INFO_JOINT_DUPLEX; in snd_korg1212_create()
2298 … err = snd_ctl_add(korg1212->card, snd_ctl_new1(&snd_korg1212_controls[i], korg1212)); in snd_korg1212_create()
2322 return -ENODEV; in snd_korg1212_probe()
2326 return -ENOENT; in snd_korg1212_probe()
2328 err = snd_devm_card_new(&pci->dev, index[dev], id[dev], THIS_MODULE, in snd_korg1212_probe()
2332 korg1212 = card->private_data; in snd_korg1212_probe()
2338 strcpy(card->driver, "korg1212"); in snd_korg1212_probe()
2339 strcpy(card->shortname, "korg1212"); in snd_korg1212_probe()
2340 sprintf(card->longname, "%s at 0x%lx, irq %d", card->shortname, in snd_korg1212_probe()
2341 korg1212->iomem, korg1212->irq); in snd_korg1212_probe()
2343 K1212_DEBUG_PRINTK("K1212_DEBUG: %s\n", card->longname); in snd_korg1212_probe()