Lines Matching refs:korg1212
522 static int snd_korg1212_Send1212Command(struct snd_korg1212 *korg1212, in snd_korg1212_Send1212Command() argument
531 if (!korg1212->outDoorbellPtr) { in snd_korg1212_Send1212Command()
537 doorbellVal, mailBox0Val, stateName[korg1212->cardState]); in snd_korg1212_Send1212Command()
539 writel(mailBox3Val, korg1212->mailbox3Ptr); in snd_korg1212_Send1212Command()
540 writel(mailBox2Val, korg1212->mailbox2Ptr); in snd_korg1212_Send1212Command()
541 writel(mailBox1Val, korg1212->mailbox1Ptr); in snd_korg1212_Send1212Command()
542 writel(mailBox0Val, korg1212->mailbox0Ptr); in snd_korg1212_Send1212Command()
543 writel(doorbellVal, korg1212->outDoorbellPtr); // interrupt the card in snd_korg1212_Send1212Command()
561 mailBox3Lo = readl(korg1212->mailbox3Ptr); in snd_korg1212_Send1212Command()
570 korg1212->cmdRetryCount += retryCount; in snd_korg1212_Send1212Command()
581 static void snd_korg1212_SendStop(struct snd_korg1212 *korg1212) in snd_korg1212_SendStop() argument
583 if (! korg1212->stop_pending_cnt) { in snd_korg1212_SendStop()
584 korg1212->sharedBufferPtr->cardCommand = 0xffffffff; in snd_korg1212_SendStop()
586 korg1212->stop_pending_cnt = HZ; in snd_korg1212_SendStop()
587 mod_timer(&korg1212->timer, jiffies + 1); in snd_korg1212_SendStop()
591 static void snd_korg1212_SendStopAndWait(struct snd_korg1212 *korg1212) in snd_korg1212_SendStopAndWait() argument
594 spin_lock_irqsave(&korg1212->lock, flags); in snd_korg1212_SendStopAndWait()
595 korg1212->dsp_stop_is_processed = 0; in snd_korg1212_SendStopAndWait()
596 snd_korg1212_SendStop(korg1212); in snd_korg1212_SendStopAndWait()
597 spin_unlock_irqrestore(&korg1212->lock, flags); in snd_korg1212_SendStopAndWait()
598 wait_event_timeout(korg1212->wait, korg1212->dsp_stop_is_processed, (HZ * 3) / 2); in snd_korg1212_SendStopAndWait()
604 struct snd_korg1212 *korg1212 = (struct snd_korg1212 *) data; in snd_korg1212_timer_func() local
607 spin_lock_irqsave(&korg1212->lock, flags); in snd_korg1212_timer_func()
608 if (korg1212->sharedBufferPtr->cardCommand == 0) { in snd_korg1212_timer_func()
610 korg1212->stop_pending_cnt = 0; in snd_korg1212_timer_func()
611 korg1212->dsp_stop_is_processed = 1; in snd_korg1212_timer_func()
612 wake_up(&korg1212->wait); in snd_korg1212_timer_func()
614 stateName[korg1212->cardState]); in snd_korg1212_timer_func()
616 if (--korg1212->stop_pending_cnt > 0) { in snd_korg1212_timer_func()
618 mod_timer(&korg1212->timer, jiffies + 1); in snd_korg1212_timer_func()
621 korg1212->sharedBufferPtr->cardCommand = 0; in snd_korg1212_timer_func()
622 korg1212->dsp_stop_is_processed = 1; in snd_korg1212_timer_func()
623 wake_up(&korg1212->wait); in snd_korg1212_timer_func()
625 stateName[korg1212->cardState]); in snd_korg1212_timer_func()
628 spin_unlock_irqrestore(&korg1212->lock, flags); in snd_korg1212_timer_func()
631 static int snd_korg1212_TurnOnIdleMonitor(struct snd_korg1212 *korg1212) in snd_korg1212_TurnOnIdleMonitor() argument
637 spin_lock_irqsave(&korg1212->lock, flags); in snd_korg1212_TurnOnIdleMonitor()
638 korg1212->idleMonitorOn = 1; in snd_korg1212_TurnOnIdleMonitor()
639 rc = snd_korg1212_Send1212Command(korg1212, K1212_DB_SelectPlayMode, in snd_korg1212_TurnOnIdleMonitor()
641 spin_unlock_irqrestore(&korg1212->lock, flags); in snd_korg1212_TurnOnIdleMonitor()
645 static void snd_korg1212_TurnOffIdleMonitor(struct snd_korg1212 *korg1212) in snd_korg1212_TurnOffIdleMonitor() argument
647 if (korg1212->idleMonitorOn) { in snd_korg1212_TurnOffIdleMonitor()
648 snd_korg1212_SendStopAndWait(korg1212); in snd_korg1212_TurnOffIdleMonitor()
649 korg1212->idleMonitorOn = 0; in snd_korg1212_TurnOffIdleMonitor()
653 static inline void snd_korg1212_setCardState(struct snd_korg1212 * korg1212, enum CardState csState) in snd_korg1212_setCardState() argument
655 korg1212->cardState = csState; in snd_korg1212_setCardState()
658 static int snd_korg1212_OpenCard(struct snd_korg1212 * korg1212) in snd_korg1212_OpenCard() argument
661 stateName[korg1212->cardState], korg1212->opencnt); in snd_korg1212_OpenCard()
662 mutex_lock(&korg1212->open_mutex); in snd_korg1212_OpenCard()
663 if (korg1212->opencnt++ == 0) { in snd_korg1212_OpenCard()
664 snd_korg1212_TurnOffIdleMonitor(korg1212); in snd_korg1212_OpenCard()
665 snd_korg1212_setCardState(korg1212, K1212_STATE_OPEN); in snd_korg1212_OpenCard()
668 mutex_unlock(&korg1212->open_mutex); in snd_korg1212_OpenCard()
672 static int snd_korg1212_CloseCard(struct snd_korg1212 * korg1212) in snd_korg1212_CloseCard() argument
675 stateName[korg1212->cardState], korg1212->opencnt); in snd_korg1212_CloseCard()
677 mutex_lock(&korg1212->open_mutex); in snd_korg1212_CloseCard()
678 if (--(korg1212->opencnt)) { in snd_korg1212_CloseCard()
679 mutex_unlock(&korg1212->open_mutex); in snd_korg1212_CloseCard()
683 if (korg1212->cardState == K1212_STATE_SETUP) { in snd_korg1212_CloseCard()
684 int rc = snd_korg1212_Send1212Command(korg1212, K1212_DB_SelectPlayMode, in snd_korg1212_CloseCard()
688 rc, stateName[korg1212->cardState]); in snd_korg1212_CloseCard()
690 mutex_unlock(&korg1212->open_mutex); in snd_korg1212_CloseCard()
693 } else if (korg1212->cardState > K1212_STATE_SETUP) { in snd_korg1212_CloseCard()
694 snd_korg1212_SendStopAndWait(korg1212); in snd_korg1212_CloseCard()
697 if (korg1212->cardState > K1212_STATE_READY) { in snd_korg1212_CloseCard()
698 snd_korg1212_TurnOnIdleMonitor(korg1212); in snd_korg1212_CloseCard()
699 snd_korg1212_setCardState(korg1212, K1212_STATE_READY); in snd_korg1212_CloseCard()
702 mutex_unlock(&korg1212->open_mutex); in snd_korg1212_CloseCard()
707 static int snd_korg1212_SetupForPlay(struct snd_korg1212 * korg1212) in snd_korg1212_SetupForPlay() argument
712 stateName[korg1212->cardState], korg1212->setcnt); in snd_korg1212_SetupForPlay()
714 if (korg1212->setcnt++) in snd_korg1212_SetupForPlay()
717 snd_korg1212_setCardState(korg1212, K1212_STATE_SETUP); in snd_korg1212_SetupForPlay()
718 rc = snd_korg1212_Send1212Command(korg1212, K1212_DB_SelectPlayMode, in snd_korg1212_SetupForPlay()
722 rc, stateName[korg1212->cardState]); in snd_korg1212_SetupForPlay()
730 static int snd_korg1212_TriggerPlay(struct snd_korg1212 * korg1212) in snd_korg1212_TriggerPlay() argument
735 stateName[korg1212->cardState], korg1212->playcnt); in snd_korg1212_TriggerPlay()
737 if (korg1212->playcnt++) in snd_korg1212_TriggerPlay()
740 snd_korg1212_setCardState(korg1212, K1212_STATE_PLAYING); in snd_korg1212_TriggerPlay()
741 rc = snd_korg1212_Send1212Command(korg1212, K1212_DB_TriggerPlay, 0, 0, 0, 0); in snd_korg1212_TriggerPlay()
744 rc, stateName[korg1212->cardState]); in snd_korg1212_TriggerPlay()
752 static int snd_korg1212_StopPlay(struct snd_korg1212 * korg1212) in snd_korg1212_StopPlay() argument
755 stateName[korg1212->cardState], korg1212->playcnt); in snd_korg1212_StopPlay()
757 if (--(korg1212->playcnt)) in snd_korg1212_StopPlay()
760 korg1212->setcnt = 0; in snd_korg1212_StopPlay()
762 if (korg1212->cardState != K1212_STATE_ERRORSTOP) in snd_korg1212_StopPlay()
763 snd_korg1212_SendStop(korg1212); in snd_korg1212_StopPlay()
765 snd_korg1212_setCardState(korg1212, K1212_STATE_OPEN); in snd_korg1212_StopPlay()
769 static void snd_korg1212_EnableCardInterrupts(struct snd_korg1212 * korg1212) in snd_korg1212_EnableCardInterrupts() argument
776 korg1212->statusRegPtr); in snd_korg1212_EnableCardInterrupts()
781 static int snd_korg1212_SetMonitorMode(struct snd_korg1212 *korg1212,
785 stateName[korg1212->cardState]);
789 if (korg1212->cardState != K1212_STATE_MONITOR)
792 snd_korg1212_SendStopAndWait(korg1212);
793 snd_korg1212_setCardState(korg1212, K1212_STATE_OPEN);
798 if (korg1212->cardState != K1212_STATE_OPEN)
802 snd_korg1212_setCardState(korg1212, K1212_STATE_MONITOR);
803 rc = snd_korg1212_Send1212Command(korg1212, K1212_DB_SelectPlayMode,
819 static inline int snd_korg1212_use_is_exclusive(struct snd_korg1212 *korg1212) in snd_korg1212_use_is_exclusive() argument
821 if (korg1212->playback_pid != korg1212->capture_pid && in snd_korg1212_use_is_exclusive()
822 korg1212->playback_pid >= 0 && korg1212->capture_pid >= 0) in snd_korg1212_use_is_exclusive()
828 static int snd_korg1212_SetRate(struct snd_korg1212 *korg1212, int rate) in snd_korg1212_SetRate() argument
842 if (!snd_korg1212_use_is_exclusive (korg1212)) in snd_korg1212_SetRate()
847 parm = s44[korg1212->clkSource]; in snd_korg1212_SetRate()
851 parm = s48[korg1212->clkSource]; in snd_korg1212_SetRate()
858 korg1212->clkSrcRate = parm; in snd_korg1212_SetRate()
859 korg1212->clkRate = rate; in snd_korg1212_SetRate()
862 rc = snd_korg1212_Send1212Command(korg1212, K1212_DB_SetClockSourceRate, in snd_korg1212_SetRate()
863 ClockSourceSelector[korg1212->clkSrcRate], in snd_korg1212_SetRate()
867 rc, stateName[korg1212->cardState]); in snd_korg1212_SetRate()
872 static int snd_korg1212_SetClockSource(struct snd_korg1212 *korg1212, int source) in snd_korg1212_SetClockSource() argument
878 korg1212->clkSource = source; in snd_korg1212_SetClockSource()
880 snd_korg1212_SetRate(korg1212, korg1212->clkRate); in snd_korg1212_SetClockSource()
885 static void snd_korg1212_DisableCardInterrupts(struct snd_korg1212 *korg1212) in snd_korg1212_DisableCardInterrupts() argument
887 writel(0, korg1212->statusRegPtr); in snd_korg1212_DisableCardInterrupts()
890 static int snd_korg1212_WriteADCSensitivity(struct snd_korg1212 *korg1212) in snd_korg1212_WriteADCSensitivity() argument
903 stateName[korg1212->cardState]); in snd_korg1212_WriteADCSensitivity()
915 if (korg1212->cardState == K1212_STATE_MONITOR || korg1212->idleMonitorOn) { in snd_korg1212_WriteADCSensitivity()
917 snd_korg1212_SendStopAndWait(korg1212); in snd_korg1212_WriteADCSensitivity()
921 spin_lock_irqsave(&korg1212->lock, flags); in snd_korg1212_WriteADCSensitivity()
927 writel(0, korg1212->mailbox3Ptr); in snd_korg1212_WriteADCSensitivity()
934 switch (korg1212->clkSrcRate) { in snd_korg1212_WriteADCSensitivity()
954 sensVals.l.v.leftChanVal = korg1212->leftADCInSens; in snd_korg1212_WriteADCSensitivity()
955 sensVals.r.v.rightChanVal = korg1212->rightADCInSens; in snd_korg1212_WriteADCSensitivity()
968 … writew(controlValue, korg1212->sensRegPtr); // load/shift goes low in snd_korg1212_WriteADCSensitivity()
985 … writew(controlValue, korg1212->sensRegPtr); // clock goes low in snd_korg1212_WriteADCSensitivity()
988 … writew(controlValue, korg1212->sensRegPtr); // clock goes high in snd_korg1212_WriteADCSensitivity()
999 … writew(controlValue, korg1212->sensRegPtr); // load shift goes high - clk low in snd_korg1212_WriteADCSensitivity()
1005 writew(controlValue, korg1212->sensRegPtr); // set/clear data bit in snd_korg1212_WriteADCSensitivity()
1008 writew(controlValue, korg1212->sensRegPtr); // clock goes high in snd_korg1212_WriteADCSensitivity()
1011 writew(controlValue, korg1212->sensRegPtr); // clock goes low in snd_korg1212_WriteADCSensitivity()
1023 int rc = snd_korg1212_Send1212Command(korg1212, K1212_DB_SelectPlayMode, in snd_korg1212_WriteADCSensitivity()
1027 rc, stateName[korg1212->cardState]); in snd_korg1212_WriteADCSensitivity()
1030 spin_unlock_irqrestore(&korg1212->lock, flags); in snd_korg1212_WriteADCSensitivity()
1035 static void snd_korg1212_OnDSPDownloadComplete(struct snd_korg1212 *korg1212) in snd_korg1212_OnDSPDownloadComplete() argument
1040 stateName[korg1212->cardState]); in snd_korg1212_OnDSPDownloadComplete()
1045 rc = snd_korg1212_Send1212Command(korg1212, K1212_DB_BootFromDSPPage4, 0, 0, 0, 0); in snd_korg1212_OnDSPDownloadComplete()
1049 rc, stateName[korg1212->cardState]); in snd_korg1212_OnDSPDownloadComplete()
1055 rc = snd_korg1212_Send1212Command(korg1212, in snd_korg1212_OnDSPDownloadComplete()
1057 LowerWordSwap(korg1212->PlayDataPhy), in snd_korg1212_OnDSPDownloadComplete()
1058 LowerWordSwap(korg1212->RecDataPhy), in snd_korg1212_OnDSPDownloadComplete()
1066 rc, stateName[korg1212->cardState]); in snd_korg1212_OnDSPDownloadComplete()
1070 rc = snd_korg1212_Send1212Command(korg1212, in snd_korg1212_OnDSPDownloadComplete()
1072 LowerWordSwap(korg1212->VolumeTablePhy), in snd_korg1212_OnDSPDownloadComplete()
1073 LowerWordSwap(korg1212->RoutingTablePhy), in snd_korg1212_OnDSPDownloadComplete()
1074 LowerWordSwap(korg1212->AdatTimeCodePhy), in snd_korg1212_OnDSPDownloadComplete()
1080 rc, stateName[korg1212->cardState]); in snd_korg1212_OnDSPDownloadComplete()
1088 korg1212->sharedBufferPtr->volumeData[channel] = k1212MaxVolume; in snd_korg1212_OnDSPDownloadComplete()
1090 korg1212->sharedBufferPtr->routeData[channel] = 8 + (channel & 1); in snd_korg1212_OnDSPDownloadComplete()
1093 snd_korg1212_WriteADCSensitivity(korg1212); in snd_korg1212_OnDSPDownloadComplete()
1096 rc = snd_korg1212_Send1212Command(korg1212, K1212_DB_SetClockSourceRate, in snd_korg1212_OnDSPDownloadComplete()
1097 ClockSourceSelector[korg1212->clkSrcRate], in snd_korg1212_OnDSPDownloadComplete()
1101 rc, stateName[korg1212->cardState]); in snd_korg1212_OnDSPDownloadComplete()
1103 rc = snd_korg1212_TurnOnIdleMonitor(korg1212); in snd_korg1212_OnDSPDownloadComplete()
1104 snd_korg1212_setCardState(korg1212, K1212_STATE_READY); in snd_korg1212_OnDSPDownloadComplete()
1108 rc, stateName[korg1212->cardState]); in snd_korg1212_OnDSPDownloadComplete()
1110 snd_korg1212_setCardState(korg1212, K1212_STATE_DSP_COMPLETE); in snd_korg1212_OnDSPDownloadComplete()
1116 struct snd_korg1212 *korg1212 = dev_id; in snd_korg1212_interrupt() local
1118 doorbellValue = readl(korg1212->inDoorbellPtr); in snd_korg1212_interrupt()
1123 spin_lock(&korg1212->lock); in snd_korg1212_interrupt()
1125 writel(doorbellValue, korg1212->inDoorbellPtr); in snd_korg1212_interrupt()
1127 korg1212->irqcount++; in snd_korg1212_interrupt()
1129 korg1212->inIRQ++; in snd_korg1212_interrupt()
1134 korg1212->irqcount, doorbellValue, in snd_korg1212_interrupt()
1135 stateName[korg1212->cardState]); in snd_korg1212_interrupt()
1136 if (korg1212->cardState == K1212_STATE_DSP_IN_PROCESS) { in snd_korg1212_interrupt()
1137 korg1212->dsp_is_loaded = 1; in snd_korg1212_interrupt()
1138 wake_up(&korg1212->wait); in snd_korg1212_interrupt()
1147 korg1212->irqcount, doorbellValue, in snd_korg1212_interrupt()
1148 stateName[korg1212->cardState]); in snd_korg1212_interrupt()
1150 korg1212->errorcnt++; in snd_korg1212_interrupt()
1151 korg1212->totalerrorcnt++; in snd_korg1212_interrupt()
1152 korg1212->sharedBufferPtr->cardCommand = 0; in snd_korg1212_interrupt()
1153 snd_korg1212_setCardState(korg1212, K1212_STATE_ERRORSTOP); in snd_korg1212_interrupt()
1162 korg1212->irqcount, doorbellValue, in snd_korg1212_interrupt()
1163 stateName[korg1212->cardState]); in snd_korg1212_interrupt()
1164 korg1212->sharedBufferPtr->cardCommand = 0; in snd_korg1212_interrupt()
1169 korg1212->irqcount, doorbellValue, in snd_korg1212_interrupt()
1170 korg1212->currentBuffer, stateName[korg1212->cardState]); in snd_korg1212_interrupt()
1171 if ((korg1212->cardState > K1212_STATE_SETUP) || korg1212->idleMonitorOn) { in snd_korg1212_interrupt()
1172 korg1212->currentBuffer++; in snd_korg1212_interrupt()
1174 if (korg1212->currentBuffer >= kNumBuffers) in snd_korg1212_interrupt()
1175 korg1212->currentBuffer = 0; in snd_korg1212_interrupt()
1177 if (!korg1212->running) in snd_korg1212_interrupt()
1180 if (korg1212->capture_substream) { in snd_korg1212_interrupt()
1181 spin_unlock(&korg1212->lock); in snd_korg1212_interrupt()
1182 snd_pcm_period_elapsed(korg1212->capture_substream); in snd_korg1212_interrupt()
1183 spin_lock(&korg1212->lock); in snd_korg1212_interrupt()
1186 if (korg1212->playback_substream) { in snd_korg1212_interrupt()
1187 spin_unlock(&korg1212->lock); in snd_korg1212_interrupt()
1188 snd_pcm_period_elapsed(korg1212->playback_substream); in snd_korg1212_interrupt()
1189 spin_lock(&korg1212->lock); in snd_korg1212_interrupt()
1195 korg1212->inIRQ--; in snd_korg1212_interrupt()
1197 spin_unlock(&korg1212->lock); in snd_korg1212_interrupt()
1202 static int snd_korg1212_downloadDSPCode(struct snd_korg1212 *korg1212) in snd_korg1212_downloadDSPCode() argument
1207 stateName[korg1212->cardState]); in snd_korg1212_downloadDSPCode()
1212 if (korg1212->cardState >= K1212_STATE_DSP_IN_PROCESS) in snd_korg1212_downloadDSPCode()
1215 snd_korg1212_setCardState(korg1212, K1212_STATE_DSP_IN_PROCESS); in snd_korg1212_downloadDSPCode()
1217 rc = snd_korg1212_Send1212Command(korg1212, K1212_DB_StartDSPDownload, in snd_korg1212_downloadDSPCode()
1218 UpperWordSwap(korg1212->dma_dsp.addr), in snd_korg1212_downloadDSPCode()
1222 rc, stateName[korg1212->cardState]); in snd_korg1212_downloadDSPCode()
1224 korg1212->dsp_is_loaded = 0; in snd_korg1212_downloadDSPCode()
1225 wait_event_timeout(korg1212->wait, korg1212->dsp_is_loaded, HZ * CARD_BOOT_TIMEOUT); in snd_korg1212_downloadDSPCode()
1226 if (! korg1212->dsp_is_loaded ) in snd_korg1212_downloadDSPCode()
1229 snd_korg1212_OnDSPDownloadComplete(korg1212); in snd_korg1212_downloadDSPCode()
1276 static int snd_korg1212_silence(struct snd_korg1212 *korg1212, int pos, int count, int offset, int … in snd_korg1212_silence() argument
1278 struct KorgAudioFrame * dst = korg1212->playDataBufsPtr[0].bufferData + pos; in snd_korg1212_silence()
1288 if ( (void *) dst < (void *) korg1212->playDataBufsPtr || in snd_korg1212_silence()
1289 (void *) dst > (void *) korg1212->playDataBufsPtr[8].bufferData ) { in snd_korg1212_silence()
1302 static int snd_korg1212_copy_to(struct snd_korg1212 *korg1212, void __user *dst, int pos, int count… in snd_korg1212_copy_to() argument
1304 struct KorgAudioFrame * src = korg1212->recordDataBufsPtr[0].bufferData + pos; in snd_korg1212_copy_to()
1314 if ( (void *) src < (void *) korg1212->recordDataBufsPtr || in snd_korg1212_copy_to()
1315 (void *) src > (void *) korg1212->recordDataBufsPtr[8].bufferData ) { in snd_korg1212_copy_to()
1332 static int snd_korg1212_copy_from(struct snd_korg1212 *korg1212, void __user *src, int pos, int cou… in snd_korg1212_copy_from() argument
1334 struct KorgAudioFrame * dst = korg1212->playDataBufsPtr[0].bufferData + pos; in snd_korg1212_copy_from()
1345 if ( (void *) dst < (void *) korg1212->playDataBufsPtr || in snd_korg1212_copy_from()
1346 (void *) dst > (void *) korg1212->playDataBufsPtr[8].bufferData ) { in snd_korg1212_copy_from()
1365 struct snd_korg1212 *korg1212 = pcm->private_data; in snd_korg1212_free_pcm() local
1368 stateName[korg1212->cardState]); in snd_korg1212_free_pcm()
1370 korg1212->pcm = NULL; in snd_korg1212_free_pcm()
1376 struct snd_korg1212 *korg1212 = snd_pcm_substream_chip(substream); in snd_korg1212_playback_open() local
1380 stateName[korg1212->cardState]); in snd_korg1212_playback_open()
1382 snd_korg1212_OpenCard(korg1212); in snd_korg1212_playback_open()
1385 snd_pcm_set_runtime_buffer(substream, &korg1212->dma_play); in snd_korg1212_playback_open()
1387 spin_lock_irqsave(&korg1212->lock, flags); in snd_korg1212_playback_open()
1389 korg1212->playback_substream = substream; in snd_korg1212_playback_open()
1390 korg1212->playback_pid = current->pid; in snd_korg1212_playback_open()
1391 korg1212->periodsize = K1212_PERIODS; in snd_korg1212_playback_open()
1392 korg1212->channels = K1212_CHANNELS; in snd_korg1212_playback_open()
1393 korg1212->errorcnt = 0; in snd_korg1212_playback_open()
1395 spin_unlock_irqrestore(&korg1212->lock, flags); in snd_korg1212_playback_open()
1407 struct snd_korg1212 *korg1212 = snd_pcm_substream_chip(substream); in snd_korg1212_capture_open() local
1411 stateName[korg1212->cardState]); in snd_korg1212_capture_open()
1413 snd_korg1212_OpenCard(korg1212); in snd_korg1212_capture_open()
1416 snd_pcm_set_runtime_buffer(substream, &korg1212->dma_rec); in snd_korg1212_capture_open()
1418 spin_lock_irqsave(&korg1212->lock, flags); in snd_korg1212_capture_open()
1420 korg1212->capture_substream = substream; in snd_korg1212_capture_open()
1421 korg1212->capture_pid = current->pid; in snd_korg1212_capture_open()
1422 korg1212->periodsize = K1212_PERIODS; in snd_korg1212_capture_open()
1423 korg1212->channels = K1212_CHANNELS; in snd_korg1212_capture_open()
1425 spin_unlock_irqrestore(&korg1212->lock, flags); in snd_korg1212_capture_open()
1435 struct snd_korg1212 *korg1212 = snd_pcm_substream_chip(substream); in snd_korg1212_playback_close() local
1438 stateName[korg1212->cardState]); in snd_korg1212_playback_close()
1440 snd_korg1212_silence(korg1212, 0, K1212_MAX_SAMPLES, 0, korg1212->channels * 2); in snd_korg1212_playback_close()
1442 spin_lock_irqsave(&korg1212->lock, flags); in snd_korg1212_playback_close()
1444 korg1212->playback_pid = -1; in snd_korg1212_playback_close()
1445 korg1212->playback_substream = NULL; in snd_korg1212_playback_close()
1446 korg1212->periodsize = 0; in snd_korg1212_playback_close()
1448 spin_unlock_irqrestore(&korg1212->lock, flags); in snd_korg1212_playback_close()
1450 snd_korg1212_CloseCard(korg1212); in snd_korg1212_playback_close()
1457 struct snd_korg1212 *korg1212 = snd_pcm_substream_chip(substream); in snd_korg1212_capture_close() local
1460 stateName[korg1212->cardState]); in snd_korg1212_capture_close()
1462 spin_lock_irqsave(&korg1212->lock, flags); in snd_korg1212_capture_close()
1464 korg1212->capture_pid = -1; in snd_korg1212_capture_close()
1465 korg1212->capture_substream = NULL; in snd_korg1212_capture_close()
1466 korg1212->periodsize = 0; in snd_korg1212_capture_close()
1468 spin_unlock_irqrestore(&korg1212->lock, flags); in snd_korg1212_capture_close()
1470 snd_korg1212_CloseCard(korg1212); in snd_korg1212_capture_close()
1495 struct snd_korg1212 *korg1212 = snd_pcm_substream_chip(substream); in snd_korg1212_hw_params() local
1501 stateName[korg1212->cardState]); in snd_korg1212_hw_params()
1503 spin_lock_irqsave(&korg1212->lock, flags); in snd_korg1212_hw_params()
1506 this_pid = korg1212->playback_pid; in snd_korg1212_hw_params()
1507 other_pid = korg1212->capture_pid; in snd_korg1212_hw_params()
1509 this_pid = korg1212->capture_pid; in snd_korg1212_hw_params()
1510 other_pid = korg1212->playback_pid; in snd_korg1212_hw_params()
1520 if ((int)params_rate(params) != korg1212->clkRate) { in snd_korg1212_hw_params()
1521 spin_unlock_irqrestore(&korg1212->lock, flags); in snd_korg1212_hw_params()
1526 spin_unlock_irqrestore(&korg1212->lock, flags); in snd_korg1212_hw_params()
1530 if ((err = snd_korg1212_SetRate(korg1212, params_rate(params))) < 0) { in snd_korg1212_hw_params()
1531 spin_unlock_irqrestore(&korg1212->lock, flags); in snd_korg1212_hw_params()
1535 korg1212->channels = params_channels(params); in snd_korg1212_hw_params()
1536 korg1212->periodsize = K1212_PERIOD_BYTES; in snd_korg1212_hw_params()
1538 spin_unlock_irqrestore(&korg1212->lock, flags); in snd_korg1212_hw_params()
1545 struct snd_korg1212 *korg1212 = snd_pcm_substream_chip(substream); in snd_korg1212_prepare() local
1549 stateName[korg1212->cardState]); in snd_korg1212_prepare()
1551 spin_lock_irq(&korg1212->lock); in snd_korg1212_prepare()
1554 if (korg1212->stop_pending_cnt > 0) { in snd_korg1212_prepare()
1556 stateName[korg1212->cardState]); in snd_korg1212_prepare()
1557 spin_unlock_irq(&korg1212->lock); in snd_korg1212_prepare()
1566 rc = snd_korg1212_SetupForPlay(korg1212); in snd_korg1212_prepare()
1568 korg1212->currentBuffer = 0; in snd_korg1212_prepare()
1570 spin_unlock_irq(&korg1212->lock); in snd_korg1212_prepare()
1578 struct snd_korg1212 *korg1212 = snd_pcm_substream_chip(substream); in snd_korg1212_trigger() local
1582 stateName[korg1212->cardState], cmd); in snd_korg1212_trigger()
1584 spin_lock(&korg1212->lock); in snd_korg1212_trigger()
1593 korg1212->running++; in snd_korg1212_trigger()
1594 rc = snd_korg1212_TriggerPlay(korg1212); in snd_korg1212_trigger()
1604 korg1212->running--; in snd_korg1212_trigger()
1605 rc = snd_korg1212_StopPlay(korg1212); in snd_korg1212_trigger()
1612 spin_unlock(&korg1212->lock); in snd_korg1212_trigger()
1618 struct snd_korg1212 *korg1212 = snd_pcm_substream_chip(substream); in snd_korg1212_playback_pointer() local
1621 pos = korg1212->currentBuffer * kPlayBufferFrames; in snd_korg1212_playback_pointer()
1624 stateName[korg1212->cardState], pos); in snd_korg1212_playback_pointer()
1631 struct snd_korg1212 *korg1212 = snd_pcm_substream_chip(substream); in snd_korg1212_capture_pointer() local
1634 pos = korg1212->currentBuffer * kPlayBufferFrames; in snd_korg1212_capture_pointer()
1637 stateName[korg1212->cardState], pos); in snd_korg1212_capture_pointer()
1648 struct snd_korg1212 *korg1212 = snd_pcm_substream_chip(substream); in snd_korg1212_playback_copy() local
1651 stateName[korg1212->cardState], pos, count); in snd_korg1212_playback_copy()
1653 return snd_korg1212_copy_from(korg1212, src, pos, count, 0, korg1212->channels * 2); in snd_korg1212_playback_copy()
1662 struct snd_korg1212 *korg1212 = snd_pcm_substream_chip(substream); in snd_korg1212_playback_silence() local
1665 stateName[korg1212->cardState]); in snd_korg1212_playback_silence()
1667 return snd_korg1212_silence(korg1212, pos, count, 0, korg1212->channels * 2); in snd_korg1212_playback_silence()
1676 struct snd_korg1212 *korg1212 = snd_pcm_substream_chip(substream); in snd_korg1212_capture_copy() local
1679 stateName[korg1212->cardState], pos, count); in snd_korg1212_capture_copy()
1681 return snd_korg1212_copy_to(korg1212, dst, pos, count, 0, korg1212->channels * 2); in snd_korg1212_capture_copy()
1722 struct snd_korg1212 *korg1212 = snd_kcontrol_chip(kcontrol); in snd_korg1212_control_phase_get() local
1725 spin_lock_irq(&korg1212->lock); in snd_korg1212_control_phase_get()
1727 u->value.integer.value[0] = korg1212->volumePhase[i]; in snd_korg1212_control_phase_get()
1730 u->value.integer.value[1] = korg1212->volumePhase[i+1]; in snd_korg1212_control_phase_get()
1732 spin_unlock_irq(&korg1212->lock); in snd_korg1212_control_phase_get()
1740 struct snd_korg1212 *korg1212 = snd_kcontrol_chip(kcontrol); in snd_korg1212_control_phase_put() local
1744 spin_lock_irq(&korg1212->lock); in snd_korg1212_control_phase_put()
1748 korg1212->volumePhase[i] = !!u->value.integer.value[0]; in snd_korg1212_control_phase_put()
1750 val = korg1212->sharedBufferPtr->volumeData[kcontrol->private_value]; in snd_korg1212_control_phase_put()
1753 val = abs(val) * (korg1212->volumePhase[i] > 0 ? -1 : 1); in snd_korg1212_control_phase_put()
1754 korg1212->sharedBufferPtr->volumeData[i] = val; in snd_korg1212_control_phase_put()
1759 korg1212->volumePhase[i+1] = !!u->value.integer.value[1]; in snd_korg1212_control_phase_put()
1761 val = korg1212->sharedBufferPtr->volumeData[kcontrol->private_value+1]; in snd_korg1212_control_phase_put()
1764 val = abs(val) * (korg1212->volumePhase[i+1] > 0 ? -1 : 1); in snd_korg1212_control_phase_put()
1765 korg1212->sharedBufferPtr->volumeData[i+1] = val; in snd_korg1212_control_phase_put()
1770 spin_unlock_irq(&korg1212->lock); in snd_korg1212_control_phase_put()
1788 struct snd_korg1212 *korg1212 = snd_kcontrol_chip(kcontrol); in snd_korg1212_control_volume_get() local
1791 spin_lock_irq(&korg1212->lock); in snd_korg1212_control_volume_get()
1794 u->value.integer.value[0] = abs(korg1212->sharedBufferPtr->volumeData[i]); in snd_korg1212_control_volume_get()
1797 u->value.integer.value[1] = abs(korg1212->sharedBufferPtr->volumeData[i+1]); in snd_korg1212_control_volume_get()
1799 spin_unlock_irq(&korg1212->lock); in snd_korg1212_control_volume_get()
1807 struct snd_korg1212 *korg1212 = snd_kcontrol_chip(kcontrol); in snd_korg1212_control_volume_put() local
1812 spin_lock_irq(&korg1212->lock); in snd_korg1212_control_volume_put()
1819 abs(korg1212->sharedBufferPtr->volumeData[i])) { in snd_korg1212_control_volume_put()
1820 val = korg1212->volumePhase[i] > 0 ? -1 : 1; in snd_korg1212_control_volume_put()
1822 korg1212->sharedBufferPtr->volumeData[i] = val; in snd_korg1212_control_volume_put()
1830 abs(korg1212->sharedBufferPtr->volumeData[i+1])) { in snd_korg1212_control_volume_put()
1831 val = korg1212->volumePhase[i+1] > 0 ? -1 : 1; in snd_korg1212_control_volume_put()
1833 korg1212->sharedBufferPtr->volumeData[i+1] = val; in snd_korg1212_control_volume_put()
1838 spin_unlock_irq(&korg1212->lock); in snd_korg1212_control_volume_put()
1854 struct snd_korg1212 *korg1212 = snd_kcontrol_chip(kcontrol); in snd_korg1212_control_route_get() local
1857 spin_lock_irq(&korg1212->lock); in snd_korg1212_control_route_get()
1860 u->value.enumerated.item[0] = korg1212->sharedBufferPtr->routeData[i]; in snd_korg1212_control_route_get()
1863 u->value.enumerated.item[1] = korg1212->sharedBufferPtr->routeData[i+1]; in snd_korg1212_control_route_get()
1865 spin_unlock_irq(&korg1212->lock); in snd_korg1212_control_route_get()
1873 struct snd_korg1212 *korg1212 = snd_kcontrol_chip(kcontrol); in snd_korg1212_control_route_put() local
1876 spin_lock_irq(&korg1212->lock); in snd_korg1212_control_route_put()
1882 (unsigned) korg1212->sharedBufferPtr->volumeData[i]) { in snd_korg1212_control_route_put()
1883 korg1212->sharedBufferPtr->routeData[i] = u->value.enumerated.item[0]; in snd_korg1212_control_route_put()
1890 (unsigned) korg1212->sharedBufferPtr->volumeData[i+1]) { in snd_korg1212_control_route_put()
1891 korg1212->sharedBufferPtr->routeData[i+1] = u->value.enumerated.item[1]; in snd_korg1212_control_route_put()
1896 spin_unlock_irq(&korg1212->lock); in snd_korg1212_control_route_put()
1914 struct snd_korg1212 *korg1212 = snd_kcontrol_chip(kcontrol); in snd_korg1212_control_get() local
1916 spin_lock_irq(&korg1212->lock); in snd_korg1212_control_get()
1918 u->value.integer.value[0] = korg1212->leftADCInSens; in snd_korg1212_control_get()
1919 u->value.integer.value[1] = korg1212->rightADCInSens; in snd_korg1212_control_get()
1921 spin_unlock_irq(&korg1212->lock); in snd_korg1212_control_get()
1929 struct snd_korg1212 *korg1212 = snd_kcontrol_chip(kcontrol); in snd_korg1212_control_put() local
1932 spin_lock_irq(&korg1212->lock); in snd_korg1212_control_put()
1936 u->value.integer.value[0] != korg1212->leftADCInSens) { in snd_korg1212_control_put()
1937 korg1212->leftADCInSens = u->value.integer.value[0]; in snd_korg1212_control_put()
1942 u->value.integer.value[1] != korg1212->rightADCInSens) { in snd_korg1212_control_put()
1943 korg1212->rightADCInSens = u->value.integer.value[1]; in snd_korg1212_control_put()
1947 spin_unlock_irq(&korg1212->lock); in snd_korg1212_control_put()
1950 snd_korg1212_WriteADCSensitivity(korg1212); in snd_korg1212_control_put()
1964 struct snd_korg1212 *korg1212 = snd_kcontrol_chip(kcontrol); in snd_korg1212_control_sync_get() local
1966 spin_lock_irq(&korg1212->lock); in snd_korg1212_control_sync_get()
1968 ucontrol->value.enumerated.item[0] = korg1212->clkSource; in snd_korg1212_control_sync_get()
1970 spin_unlock_irq(&korg1212->lock); in snd_korg1212_control_sync_get()
1977 struct snd_korg1212 *korg1212 = snd_kcontrol_chip(kcontrol); in snd_korg1212_control_sync_put() local
1982 spin_lock_irq(&korg1212->lock); in snd_korg1212_control_sync_put()
1983 change = val != korg1212->clkSource; in snd_korg1212_control_sync_put()
1984 snd_korg1212_SetClockSource(korg1212, val); in snd_korg1212_control_sync_put()
1985 spin_unlock_irq(&korg1212->lock); in snd_korg1212_control_sync_put()
2049 struct snd_korg1212 *korg1212 = entry->private_data; in snd_korg1212_proc_read() local
2051 snd_iprintf(buffer, korg1212->card->longname); in snd_korg1212_proc_read()
2052 snd_iprintf(buffer, " (index #%d)\n", korg1212->card->number + 1); in snd_korg1212_proc_read()
2055 snd_iprintf(buffer, " clock mode: %s\n", clockSourceName[korg1212->clkSrcRate] ); in snd_korg1212_proc_read()
2056 snd_iprintf(buffer, " left ADC Sens: %d\n", korg1212->leftADCInSens ); in snd_korg1212_proc_read()
2057 snd_iprintf(buffer, " right ADC Sens: %d\n", korg1212->rightADCInSens ); in snd_korg1212_proc_read()
2062 channelName[korg1212->sharedBufferPtr->routeData[n]], in snd_korg1212_proc_read()
2063 korg1212->sharedBufferPtr->volumeData[n]); in snd_korg1212_proc_read()
2065 snd_iprintf(buffer, " ADAT Time Code: %d\n", korg1212->sharedBufferPtr->AdatTimeCode); in snd_korg1212_proc_read()
2066 snd_iprintf(buffer, " Card State: %s\n", stateName[korg1212->cardState]); in snd_korg1212_proc_read()
2067 snd_iprintf(buffer, "Idle mon. State: %d\n", korg1212->idleMonitorOn); in snd_korg1212_proc_read()
2068 snd_iprintf(buffer, "Cmd retry count: %d\n", korg1212->cmdRetryCount); in snd_korg1212_proc_read()
2069 snd_iprintf(buffer, " Irq count: %ld\n", korg1212->irqcount); in snd_korg1212_proc_read()
2070 snd_iprintf(buffer, " Error count: %ld\n", korg1212->totalerrorcnt); in snd_korg1212_proc_read()
2073 static void snd_korg1212_proc_init(struct snd_korg1212 *korg1212) in snd_korg1212_proc_init() argument
2077 if (! snd_card_proc_new(korg1212->card, "korg1212", &entry)) in snd_korg1212_proc_init()
2078 snd_info_set_text_ops(entry, korg1212, snd_korg1212_proc_read); in snd_korg1212_proc_init()
2082 snd_korg1212_free(struct snd_korg1212 *korg1212) in snd_korg1212_free() argument
2084 snd_korg1212_TurnOffIdleMonitor(korg1212); in snd_korg1212_free()
2086 if (korg1212->irq >= 0) { in snd_korg1212_free()
2087 snd_korg1212_DisableCardInterrupts(korg1212); in snd_korg1212_free()
2088 free_irq(korg1212->irq, korg1212); in snd_korg1212_free()
2089 korg1212->irq = -1; in snd_korg1212_free()
2092 if (korg1212->iobase != NULL) { in snd_korg1212_free()
2093 iounmap(korg1212->iobase); in snd_korg1212_free()
2094 korg1212->iobase = NULL; in snd_korg1212_free()
2097 pci_release_regions(korg1212->pci); in snd_korg1212_free()
2102 if (korg1212->dma_dsp.area) { in snd_korg1212_free()
2103 snd_dma_free_pages(&korg1212->dma_dsp); in snd_korg1212_free()
2104 korg1212->dma_dsp.area = NULL; in snd_korg1212_free()
2112 if (korg1212->dma_play.area) { in snd_korg1212_free()
2113 snd_dma_free_pages(&korg1212->dma_play); in snd_korg1212_free()
2114 korg1212->dma_play.area = NULL; in snd_korg1212_free()
2117 if (korg1212->dma_rec.area) { in snd_korg1212_free()
2118 snd_dma_free_pages(&korg1212->dma_rec); in snd_korg1212_free()
2119 korg1212->dma_rec.area = NULL; in snd_korg1212_free()
2127 if (korg1212->dma_shared.area) { in snd_korg1212_free()
2128 snd_dma_free_pages(&korg1212->dma_shared); in snd_korg1212_free()
2129 korg1212->dma_shared.area = NULL; in snd_korg1212_free()
2132 pci_disable_device(korg1212->pci); in snd_korg1212_free()
2133 kfree(korg1212); in snd_korg1212_free()
2139 struct snd_korg1212 *korg1212 = device->device_data; in snd_korg1212_dev_free() local
2141 return snd_korg1212_free(korg1212); in snd_korg1212_dev_free()
2151 struct snd_korg1212 * korg1212; in snd_korg1212_create() local
2162 korg1212 = kzalloc(sizeof(*korg1212), GFP_KERNEL); in snd_korg1212_create()
2163 if (korg1212 == NULL) { in snd_korg1212_create()
2168 korg1212->card = card; in snd_korg1212_create()
2169 korg1212->pci = pci; in snd_korg1212_create()
2171 init_waitqueue_head(&korg1212->wait); in snd_korg1212_create()
2172 spin_lock_init(&korg1212->lock); in snd_korg1212_create()
2173 mutex_init(&korg1212->open_mutex); in snd_korg1212_create()
2174 setup_timer(&korg1212->timer, snd_korg1212_timer_func, in snd_korg1212_create()
2175 (unsigned long)korg1212); in snd_korg1212_create()
2177 korg1212->irq = -1; in snd_korg1212_create()
2178 korg1212->clkSource = K1212_CLKIDX_Local; in snd_korg1212_create()
2179 korg1212->clkRate = 44100; in snd_korg1212_create()
2180 korg1212->inIRQ = 0; in snd_korg1212_create()
2181 korg1212->running = 0; in snd_korg1212_create()
2182 korg1212->opencnt = 0; in snd_korg1212_create()
2183 korg1212->playcnt = 0; in snd_korg1212_create()
2184 korg1212->setcnt = 0; in snd_korg1212_create()
2185 korg1212->totalerrorcnt = 0; in snd_korg1212_create()
2186 korg1212->playback_pid = -1; in snd_korg1212_create()
2187 korg1212->capture_pid = -1; in snd_korg1212_create()
2188 snd_korg1212_setCardState(korg1212, K1212_STATE_UNINITIALIZED); in snd_korg1212_create()
2189 korg1212->idleMonitorOn = 0; in snd_korg1212_create()
2190 korg1212->clkSrcRate = K1212_CLKIDX_LocalAt44_1K; in snd_korg1212_create()
2191 korg1212->leftADCInSens = k1212MaxADCSens; in snd_korg1212_create()
2192 korg1212->rightADCInSens = k1212MaxADCSens; in snd_korg1212_create()
2195 korg1212->volumePhase[i] = 0; in snd_korg1212_create()
2198 kfree(korg1212); in snd_korg1212_create()
2203 korg1212->iomem = pci_resource_start(korg1212->pci, 0); in snd_korg1212_create()
2204 korg1212->ioport = pci_resource_start(korg1212->pci, 1); in snd_korg1212_create()
2205 korg1212->iomem2 = pci_resource_start(korg1212->pci, 2); in snd_korg1212_create()
2207 iomem_size = pci_resource_len(korg1212->pci, 0); in snd_korg1212_create()
2208 ioport_size = pci_resource_len(korg1212->pci, 1); in snd_korg1212_create()
2209 iomem2_size = pci_resource_len(korg1212->pci, 2); in snd_korg1212_create()
2216 korg1212->iomem, iomem_size, in snd_korg1212_create()
2217 korg1212->ioport, ioport_size, in snd_korg1212_create()
2218 korg1212->iomem2, iomem2_size, in snd_korg1212_create()
2219 stateName[korg1212->cardState]); in snd_korg1212_create()
2221 if ((korg1212->iobase = ioremap(korg1212->iomem, iomem_size)) == NULL) { in snd_korg1212_create()
2222 snd_printk(KERN_ERR "korg1212: unable to remap memory region 0x%lx-0x%lx\n", korg1212->iomem, in snd_korg1212_create()
2223 korg1212->iomem + iomem_size - 1); in snd_korg1212_create()
2224 snd_korg1212_free(korg1212); in snd_korg1212_create()
2230 KBUILD_MODNAME, korg1212); in snd_korg1212_create()
2234 snd_korg1212_free(korg1212); in snd_korg1212_create()
2238 korg1212->irq = pci->irq; in snd_korg1212_create()
2240 pci_set_master(korg1212->pci); in snd_korg1212_create()
2242 korg1212->statusRegPtr = (u32 __iomem *) (korg1212->iobase + STATUS_REG_OFFSET); in snd_korg1212_create()
2243 korg1212->outDoorbellPtr = (u32 __iomem *) (korg1212->iobase + OUT_DOORBELL_OFFSET); in snd_korg1212_create()
2244 korg1212->inDoorbellPtr = (u32 __iomem *) (korg1212->iobase + IN_DOORBELL_OFFSET); in snd_korg1212_create()
2245 korg1212->mailbox0Ptr = (u32 __iomem *) (korg1212->iobase + MAILBOX0_OFFSET); in snd_korg1212_create()
2246 korg1212->mailbox1Ptr = (u32 __iomem *) (korg1212->iobase + MAILBOX1_OFFSET); in snd_korg1212_create()
2247 korg1212->mailbox2Ptr = (u32 __iomem *) (korg1212->iobase + MAILBOX2_OFFSET); in snd_korg1212_create()
2248 korg1212->mailbox3Ptr = (u32 __iomem *) (korg1212->iobase + MAILBOX3_OFFSET); in snd_korg1212_create()
2249 korg1212->controlRegPtr = (u32 __iomem *) (korg1212->iobase + PCI_CONTROL_OFFSET); in snd_korg1212_create()
2250 korg1212->sensRegPtr = (u16 __iomem *) (korg1212->iobase + SENS_CONTROL_OFFSET); in snd_korg1212_create()
2251 korg1212->idRegPtr = (u32 __iomem *) (korg1212->iobase + DEV_VEND_ID_OFFSET); in snd_korg1212_create()
2265 korg1212->statusRegPtr, in snd_korg1212_create()
2266 korg1212->outDoorbellPtr, in snd_korg1212_create()
2267 korg1212->inDoorbellPtr, in snd_korg1212_create()
2268 korg1212->mailbox0Ptr, in snd_korg1212_create()
2269 korg1212->mailbox1Ptr, in snd_korg1212_create()
2270 korg1212->mailbox2Ptr, in snd_korg1212_create()
2271 korg1212->mailbox3Ptr, in snd_korg1212_create()
2272 korg1212->controlRegPtr, in snd_korg1212_create()
2273 korg1212->sensRegPtr, in snd_korg1212_create()
2274 korg1212->idRegPtr, in snd_korg1212_create()
2275 stateName[korg1212->cardState]); in snd_korg1212_create()
2278 sizeof(struct KorgSharedBuffer), &korg1212->dma_shared) < 0) { in snd_korg1212_create()
2280 snd_korg1212_free(korg1212); in snd_korg1212_create()
2283 korg1212->sharedBufferPtr = (struct KorgSharedBuffer *)korg1212->dma_shared.area; in snd_korg1212_create()
2284 korg1212->sharedBufferPhy = korg1212->dma_shared.addr; in snd_korg1212_create()
2286 …2_DEBUG: Shared Buffer Area = 0x%p (0x%08lx), %d bytes\n", korg1212->sharedBufferPtr, korg1212->sh… in snd_korg1212_create()
2290 korg1212->DataBufsSize = sizeof(struct KorgAudioBuffer) * kNumBuffers; in snd_korg1212_create()
2293 korg1212->DataBufsSize, &korg1212->dma_play) < 0) { in snd_korg1212_create()
2294 …snd_printk(KERN_ERR "korg1212: can not allocate play data buffer memory (%d bytes)\n", korg1212->D… in snd_korg1212_create()
2295 snd_korg1212_free(korg1212); in snd_korg1212_create()
2298 korg1212->playDataBufsPtr = (struct KorgAudioBuffer *)korg1212->dma_play.area; in snd_korg1212_create()
2299 korg1212->PlayDataPhy = korg1212->dma_play.addr; in snd_korg1212_create()
2302 korg1212->playDataBufsPtr, korg1212->PlayDataPhy, korg1212->DataBufsSize); in snd_korg1212_create()
2305 korg1212->DataBufsSize, &korg1212->dma_rec) < 0) { in snd_korg1212_create()
2306 …snd_printk(KERN_ERR "korg1212: can not allocate record data buffer memory (%d bytes)\n", korg1212-… in snd_korg1212_create()
2307 snd_korg1212_free(korg1212); in snd_korg1212_create()
2310 korg1212->recordDataBufsPtr = (struct KorgAudioBuffer *)korg1212->dma_rec.area; in snd_korg1212_create()
2311 korg1212->RecDataPhy = korg1212->dma_rec.addr; in snd_korg1212_create()
2314 korg1212->recordDataBufsPtr, korg1212->RecDataPhy, korg1212->DataBufsSize); in snd_korg1212_create()
2318 korg1212->recordDataBufsPtr = korg1212->sharedBufferPtr->recordDataBufs; in snd_korg1212_create()
2319 korg1212->playDataBufsPtr = korg1212->sharedBufferPtr->playDataBufs; in snd_korg1212_create()
2320 …korg1212->PlayDataPhy = (u32) &((struct KorgSharedBuffer *) korg1212->sharedBufferPhy)->playDataBu… in snd_korg1212_create()
2321 …korg1212->RecDataPhy = (u32) &((struct KorgSharedBuffer *) korg1212->sharedBufferPhy)->recordData… in snd_korg1212_create()
2325 korg1212->VolumeTablePhy = korg1212->sharedBufferPhy + in snd_korg1212_create()
2327 korg1212->RoutingTablePhy = korg1212->sharedBufferPhy + in snd_korg1212_create()
2329 korg1212->AdatTimeCodePhy = korg1212->sharedBufferPhy + in snd_korg1212_create()
2336 snd_korg1212_free(korg1212); in snd_korg1212_create()
2341 dsp_code->size, &korg1212->dma_dsp) < 0) { in snd_korg1212_create()
2343 snd_korg1212_free(korg1212); in snd_korg1212_create()
2349 korg1212->dma_dsp.area, korg1212->dma_dsp.addr, dsp_code->size, in snd_korg1212_create()
2350 stateName[korg1212->cardState]); in snd_korg1212_create()
2352 memcpy(korg1212->dma_dsp.area, dsp_code->data, dsp_code->size); in snd_korg1212_create()
2356 rc = snd_korg1212_Send1212Command(korg1212, K1212_DB_RebootCard, 0, 0, 0, 0); in snd_korg1212_create()
2359 …K1212_DEBUG_PRINTK("K1212_DEBUG: Reboot Card - RC = %d [%s]\n", rc, stateName[korg1212->cardState]… in snd_korg1212_create()
2361 if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, korg1212, &ops)) < 0) { in snd_korg1212_create()
2362 snd_korg1212_free(korg1212); in snd_korg1212_create()
2366 snd_korg1212_EnableCardInterrupts(korg1212); in snd_korg1212_create()
2370 if (snd_korg1212_downloadDSPCode(korg1212)) in snd_korg1212_create()
2379 (int)korg1212->dma_dsp.addr, UpperWordSwap(korg1212->dma_dsp.addr), in snd_korg1212_create()
2380 korg1212->PlayDataPhy, LowerWordSwap(korg1212->PlayDataPhy), in snd_korg1212_create()
2381 korg1212->RecDataPhy, LowerWordSwap(korg1212->RecDataPhy), in snd_korg1212_create()
2382 korg1212->VolumeTablePhy, LowerWordSwap(korg1212->VolumeTablePhy), in snd_korg1212_create()
2383 korg1212->RoutingTablePhy, LowerWordSwap(korg1212->RoutingTablePhy), in snd_korg1212_create()
2384 korg1212->AdatTimeCodePhy, LowerWordSwap(korg1212->AdatTimeCodePhy)); in snd_korg1212_create()
2386 if ((err = snd_pcm_new(korg1212->card, "korg1212", 0, 1, 1, &korg1212->pcm)) < 0) in snd_korg1212_create()
2389 korg1212->pcm->private_data = korg1212; in snd_korg1212_create()
2390 korg1212->pcm->private_free = snd_korg1212_free_pcm; in snd_korg1212_create()
2391 strcpy(korg1212->pcm->name, "korg1212"); in snd_korg1212_create()
2393 snd_pcm_set_ops(korg1212->pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_korg1212_playback_ops); in snd_korg1212_create()
2395 snd_pcm_set_ops(korg1212->pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_korg1212_capture_ops); in snd_korg1212_create()
2397 korg1212->pcm->info_flags = SNDRV_PCM_INFO_JOINT_DUPLEX; in snd_korg1212_create()
2400 … err = snd_ctl_add(korg1212->card, snd_ctl_new1(&snd_korg1212_controls[i], korg1212)); in snd_korg1212_create()
2405 snd_korg1212_proc_init(korg1212); in snd_korg1212_create()
2407 * rchip = korg1212; in snd_korg1212_create()
2421 struct snd_korg1212 *korg1212; in snd_korg1212_probe() local
2437 if ((err = snd_korg1212_create(card, pci, &korg1212)) < 0) { in snd_korg1212_probe()
2445 korg1212->iomem, korg1212->irq); in snd_korg1212_probe()