• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/sound/pci/

Lines Matching defs:sis

286 	struct sis7019 *sis = dev;
287 unsigned long io = sis->ioport;
306 sis_voice_irq(status, sis->voices);
312 sis_voice_irq(status, &sis->voices[32]);
318 voice = &sis->capture_voice;
357 static void __sis_map_silence(struct sis7019 *sis)
359 /* Helper function: must hold sis->voice_lock on entry */
360 if (!sis->silence_users)
361 sis->silence_dma_addr = pci_map_single(sis->pci,
362 sis->suspend_state[0],
364 sis->silence_users++;
367 static void __sis_unmap_silence(struct sis7019 *sis)
369 /* Helper function: must hold sis->voice_lock on entry */
370 sis->silence_users--;
371 if (!sis->silence_users)
372 pci_unmap_single(sis->pci, sis->silence_dma_addr, 4096,
376 static void sis_free_voice(struct sis7019 *sis, struct voice *voice)
380 spin_lock_irqsave(&sis->voice_lock, flags);
382 __sis_unmap_silence(sis);
388 spin_unlock_irqrestore(&sis->voice_lock, flags);
391 static struct voice *__sis_alloc_playback_voice(struct sis7019 *sis)
398 voice = &sis->voices[i];
410 static struct voice *sis_alloc_playback_voice(struct sis7019 *sis)
415 spin_lock_irqsave(&sis->voice_lock, flags);
416 voice = __sis_alloc_playback_voice(sis);
417 spin_unlock_irqrestore(&sis->voice_lock, flags);
425 struct sis7019 *sis = snd_pcm_substream_chip(substream);
442 spin_lock_irqsave(&sis->voice_lock, flags);
443 voice->timing = __sis_alloc_playback_voice(sis);
445 __sis_map_silence(sis);
446 spin_unlock_irqrestore(&sis->voice_lock, flags);
451 sis_free_voice(sis, voice);
460 struct sis7019 *sis = snd_pcm_substream_chip(substream);
464 voice = sis_alloc_playback_voice(sis);
481 struct sis7019 *sis = snd_pcm_substream_chip(substream);
485 sis_free_voice(sis, voice);
569 struct sis7019 *sis = snd_pcm_substream_chip(substream);
570 unsigned long io = sis->ioport;
600 if (chip != sis)
649 struct sis7019 *sis = snd_pcm_substream_chip(substream);
651 struct voice *voice = &sis->capture_voice;
654 spin_lock_irqsave(&sis->voice_lock, flags);
659 spin_unlock_irqrestore(&sis->voice_lock, flags);
667 runtime->hw.rates = sis->ac97[0]->rates[AC97_RATES_ADC];
680 struct sis7019 *sis = snd_pcm_substream_chip(substream);
683 rc = snd_ac97_set_rate(sis->ac97[0], AC97_PCM_LR_ADC_RATE,
702 struct sis7019 *sis = snd_pcm_substream_chip(substream);
787 writel(sis->silence_dma_addr, play_base + SIS_PLAY_DMA_BASE);
869 static int __devinit sis_pcm_create(struct sis7019 *sis)
877 rc = snd_pcm_new(sis->card, "SiS7019", 0, 64, 1, &pcm);
881 pcm->private_data = sis;
883 sis->pcm = pcm;
892 snd_dma_pci_data(sis->pci), 64*1024, 128*1024);
897 static unsigned short sis_ac97_rw(struct sis7019 *sis, int codec, u32 cmd)
899 unsigned long io = sis->ioport;
916 mutex_lock(&sis->ac97_mutex);
955 mutex_unlock(&sis->ac97_mutex);
988 static int __devinit sis_mixer_create(struct sis7019 *sis)
999 ac97.private_data = sis;
1001 rc = snd_ac97_bus(sis->card, 0, &ops, NULL, &bus);
1002 if (!rc && sis->codecs_present & SIS_PRIMARY_CODEC_PRESENT)
1003 rc = snd_ac97_mixer(bus, &ac97, &sis->ac97[0]);
1005 if (!rc && (sis->codecs_present & SIS_SECONDARY_CODEC_PRESENT))
1006 rc = snd_ac97_mixer(bus, &ac97, &sis->ac97[1]);
1008 if (!rc && (sis->codecs_present & SIS_TERTIARY_CODEC_PRESENT))
1009 rc = snd_ac97_mixer(bus, &ac97, &sis->ac97[2]);
1017 static void sis_free_suspend(struct sis7019 *sis)
1022 kfree(sis->suspend_state[i]);
1025 static int sis_chip_free(struct sis7019 *sis)
1029 outl(SIS_GCR_SOFTWARE_RESET, sis->ioport + SIS_GCR);
1031 outl(0, sis->ioport + SIS_GCR);
1032 outl(0, sis->ioport + SIS_GIER);
1036 if (sis->irq >= 0)
1037 free_irq(sis->irq, sis);
1039 if (sis->ioaddr)
1040 iounmap(sis->ioaddr);
1042 pci_release_regions(sis->pci);
1043 pci_disable_device(sis->pci);
1045 sis_free_suspend(sis);
1051 struct sis7019 *sis = dev->device_data;
1052 return sis_chip_free(sis);
1055 static int sis_chip_init(struct sis7019 *sis)
1057 unsigned long io = sis->ioport;
1058 void __iomem *ioaddr = sis->ioaddr;
1089 sis->codecs_present |= SIS_PRIMARY_CODEC_PRESENT;
1091 sis->codecs_present |= SIS_SECONDARY_CODEC_PRESENT;
1093 sis->codecs_present |= SIS_TERTIARY_CODEC_PRESENT;
1098 if (!sis->codecs_present || !count)
1157 struct sis7019 *sis = card->private_data;
1158 void __iomem *ioaddr = sis->ioaddr;
1162 snd_pcm_suspend_all(sis->pcm);
1163 if (sis->codecs_present & SIS_PRIMARY_CODEC_PRESENT)
1164 snd_ac97_suspend(sis->ac97[0]);
1165 if (sis->codecs_present & SIS_SECONDARY_CODEC_PRESENT)
1166 snd_ac97_suspend(sis->ac97[1]);
1167 if (sis->codecs_present & SIS_TERTIARY_CODEC_PRESENT)
1168 snd_ac97_suspend(sis->ac97[2]);
1172 if (sis->irq >= 0) {
1173 free_irq(sis->irq, sis);
1174 sis->irq = -1;
1180 memcpy_fromio(sis->suspend_state[i], ioaddr, 4096);
1193 struct sis7019 *sis = card->private_data;
1194 void __iomem *ioaddr = sis->ioaddr;
1205 if (sis_chip_init(sis)) {
1211 card->shortname, sis)) {
1220 memcpy_toio(ioaddr, sis->suspend_state[i], 4096);
1224 memset(sis->suspend_state[0], 0, 4096);
1226 sis->irq = pci->irq;
1229 if (sis->codecs_present & SIS_PRIMARY_CODEC_PRESENT)
1230 snd_ac97_resume(sis->ac97[0]);
1231 if (sis->codecs_present & SIS_SECONDARY_CODEC_PRESENT)
1232 snd_ac97_resume(sis->ac97[1]);
1233 if (sis->codecs_present & SIS_TERTIARY_CODEC_PRESENT)
1234 snd_ac97_resume(sis->ac97[2]);
1245 static int sis_alloc_suspend(struct sis7019 *sis)
1255 sis->suspend_state[i] = kmalloc(4096, GFP_KERNEL);
1256 if (!sis->suspend_state[i])
1259 memset(sis->suspend_state[0], 0, 4096);
1267 struct sis7019 *sis = card->private_data;
1285 memset(sis, 0, sizeof(*sis));
1286 mutex_init(&sis->ac97_mutex);
1287 spin_lock_init(&sis->voice_lock);
1288 sis->card = card;
1289 sis->pci = pci;
1290 sis->irq = -1;
1291 sis->ioport = pci_resource_start(pci, 0);
1300 sis->ioaddr = ioremap_nocache(pci_resource_start(pci, 1), 0x4000);
1301 if (!sis->ioaddr) {
1306 rc = sis_alloc_suspend(sis);
1312 rc = sis_chip_init(sis);
1317 card->shortname, sis)) {
1318 printk(KERN_ERR "unable to allocate irq %d\n", sis->irq);
1322 sis->irq = pci->irq;
1326 voice = &sis->voices[i];
1328 voice->ctrl_base = SIS_PLAY_DMA_ADDR(sis->ioaddr, i);
1329 voice->wave_base = SIS_WAVE_ADDR(sis->ioaddr, i);
1332 voice = &sis->capture_voice;
1335 voice->ctrl_base = SIS_CAPTURE_DMA_ADDR(sis->ioaddr, voice->num);
1337 rc = snd_device_new(card, SNDRV_DEV_LOWLEVEL, sis, &ops);
1346 sis_chip_free(sis);
1359 struct sis7019 *sis;
1366 rc = snd_card_create(index, id, THIS_MODULE, sizeof(*sis), &card);
1376 sis = card->private_data;
1378 rc = sis_mixer_create(sis);
1382 rc = sis_pcm_create(sis);
1388 card->shortname, snd_ac97_get_short_name(sis->ac97[0]),
1389 sis->ioport, sis->irq);