Lines Matching refs:chip

41 static inline int oxygen_uart_input_ready(struct oxygen *chip)  in oxygen_uart_input_ready()  argument
43 return !(oxygen_read8(chip, OXYGEN_MPU401 + 1) & MPU401_RX_EMPTY); in oxygen_uart_input_ready()
46 static void oxygen_read_uart(struct oxygen *chip) in oxygen_read_uart() argument
48 if (unlikely(!oxygen_uart_input_ready(chip))) { in oxygen_read_uart()
50 oxygen_read8(chip, OXYGEN_MPU401); in oxygen_read_uart()
54 u8 data = oxygen_read8(chip, OXYGEN_MPU401); in oxygen_read_uart()
57 if (chip->uart_input_count >= ARRAY_SIZE(chip->uart_input)) in oxygen_read_uart()
58 chip->uart_input_count = 0; in oxygen_read_uart()
59 chip->uart_input[chip->uart_input_count++] = data; in oxygen_read_uart()
60 } while (oxygen_uart_input_ready(chip)); in oxygen_read_uart()
61 if (chip->model.uart_input) in oxygen_read_uart()
62 chip->model.uart_input(chip); in oxygen_read_uart()
67 struct oxygen *chip = dev_id; in oxygen_interrupt() local
70 status = oxygen_read16(chip, OXYGEN_INTERRUPT_STATUS); in oxygen_interrupt()
74 spin_lock(&chip->reg_lock); in oxygen_interrupt()
87 chip->interrupt_mask &= ~OXYGEN_INT_SPDIF_IN_DETECT; in oxygen_interrupt()
88 oxygen_write16(chip, OXYGEN_INTERRUPT_MASK, in oxygen_interrupt()
89 chip->interrupt_mask & ~clear); in oxygen_interrupt()
90 oxygen_write16(chip, OXYGEN_INTERRUPT_MASK, in oxygen_interrupt()
91 chip->interrupt_mask); in oxygen_interrupt()
94 elapsed_streams = status & chip->pcm_running; in oxygen_interrupt()
96 spin_unlock(&chip->reg_lock); in oxygen_interrupt()
99 if ((elapsed_streams & (1 << i)) && chip->streams[i]) in oxygen_interrupt()
100 snd_pcm_period_elapsed(chip->streams[i]); in oxygen_interrupt()
103 spin_lock(&chip->reg_lock); in oxygen_interrupt()
104 i = oxygen_read32(chip, OXYGEN_SPDIF_CONTROL); in oxygen_interrupt()
108 oxygen_write32(chip, OXYGEN_SPDIF_CONTROL, i); in oxygen_interrupt()
109 schedule_work(&chip->spdif_input_bits_work); in oxygen_interrupt()
111 spin_unlock(&chip->reg_lock); in oxygen_interrupt()
115 schedule_work(&chip->gpio_work); in oxygen_interrupt()
118 if (chip->midi) in oxygen_interrupt()
119 snd_mpu401_uart_interrupt(0, chip->midi->private_data); in oxygen_interrupt()
121 oxygen_read_uart(chip); in oxygen_interrupt()
125 wake_up(&chip->ac97_waitqueue); in oxygen_interrupt()
132 struct oxygen *chip = container_of(work, struct oxygen, in oxygen_spdif_input_bits_changed() local
142 spin_lock_irq(&chip->reg_lock); in oxygen_spdif_input_bits_changed()
143 reg = oxygen_read32(chip, OXYGEN_SPDIF_CONTROL); in oxygen_spdif_input_bits_changed()
152 oxygen_write32(chip, OXYGEN_SPDIF_CONTROL, reg); in oxygen_spdif_input_bits_changed()
153 spin_unlock_irq(&chip->reg_lock); in oxygen_spdif_input_bits_changed()
155 spin_lock_irq(&chip->reg_lock); in oxygen_spdif_input_bits_changed()
156 reg = oxygen_read32(chip, OXYGEN_SPDIF_CONTROL); in oxygen_spdif_input_bits_changed()
169 oxygen_write32(chip, OXYGEN_SPDIF_CONTROL, reg); in oxygen_spdif_input_bits_changed()
173 spin_unlock_irq(&chip->reg_lock); in oxygen_spdif_input_bits_changed()
175 if (chip->controls[CONTROL_SPDIF_INPUT_BITS]) { in oxygen_spdif_input_bits_changed()
176 spin_lock_irq(&chip->reg_lock); in oxygen_spdif_input_bits_changed()
177 chip->interrupt_mask |= OXYGEN_INT_SPDIF_IN_DETECT; in oxygen_spdif_input_bits_changed()
178 oxygen_write16(chip, OXYGEN_INTERRUPT_MASK, in oxygen_spdif_input_bits_changed()
179 chip->interrupt_mask); in oxygen_spdif_input_bits_changed()
180 spin_unlock_irq(&chip->reg_lock); in oxygen_spdif_input_bits_changed()
186 snd_ctl_notify(chip->card, SNDRV_CTL_EVENT_MASK_VALUE, in oxygen_spdif_input_bits_changed()
187 &chip->controls[CONTROL_SPDIF_INPUT_BITS]->id); in oxygen_spdif_input_bits_changed()
193 struct oxygen *chip = container_of(work, struct oxygen, gpio_work); in oxygen_gpio_changed() local
195 if (chip->model.gpio_changed) in oxygen_gpio_changed()
196 chip->model.gpio_changed(chip); in oxygen_gpio_changed()
203 struct oxygen *chip = entry->private_data; in oxygen_proc_read() local
206 switch (oxygen_read8(chip, OXYGEN_REVISION) & OXYGEN_PACKAGE_ID_MASK) { in oxygen_proc_read()
216 snd_iprintf(buffer, " %02x", oxygen_read8(chip, i + j)); in oxygen_proc_read()
219 if (mutex_lock_interruptible(&chip->mutex) < 0) in oxygen_proc_read()
221 if (chip->has_ac97_0) { in oxygen_proc_read()
227 oxygen_read_ac97(chip, 0, i + j)); in oxygen_proc_read()
231 if (chip->has_ac97_1) { in oxygen_proc_read()
237 oxygen_read_ac97(chip, 1, i + j)); in oxygen_proc_read()
241 mutex_unlock(&chip->mutex); in oxygen_proc_read()
242 if (chip->model.dump_registers) in oxygen_proc_read()
243 chip->model.dump_registers(chip, buffer); in oxygen_proc_read()
246 static void oxygen_proc_init(struct oxygen *chip) in oxygen_proc_init() argument
250 if (!snd_card_proc_new(chip->card, "oxygen", &entry)) in oxygen_proc_init()
251 snd_info_set_text_ops(entry, chip, oxygen_proc_read); in oxygen_proc_init()
254 #define oxygen_proc_init(chip) argument
258 oxygen_search_pci_id(struct oxygen *chip, const struct pci_device_id ids[]) in oxygen_search_pci_id() argument
266 oxygen_clear_bits8(chip, OXYGEN_FUNCTION, in oxygen_search_pci_id()
272 subdevice = oxygen_read_eeprom(chip, 2); in oxygen_search_pci_id()
274 if (subdevice == 0xffff && oxygen_read_eeprom(chip, 1) == 0xffff) in oxygen_search_pci_id()
288 static void oxygen_restore_eeprom(struct oxygen *chip, in oxygen_restore_eeprom() argument
293 eeprom_id = oxygen_read_eeprom(chip, 0); in oxygen_restore_eeprom()
304 oxygen_write_eeprom(chip, 1, id->subvendor); in oxygen_restore_eeprom()
305 oxygen_write_eeprom(chip, 0, OXYGEN_EEPROM_ID); in oxygen_restore_eeprom()
307 oxygen_set_bits8(chip, OXYGEN_MISC, in oxygen_restore_eeprom()
309 pci_write_config_word(chip->pci, PCI_SUBSYSTEM_VENDOR_ID, in oxygen_restore_eeprom()
311 pci_write_config_word(chip->pci, PCI_SUBSYSTEM_ID, in oxygen_restore_eeprom()
313 oxygen_clear_bits8(chip, OXYGEN_MISC, in oxygen_restore_eeprom()
316 dev_info(chip->card->dev, "EEPROM ID restored\n"); in oxygen_restore_eeprom()
372 static void oxygen_init(struct oxygen *chip) in oxygen_init() argument
376 chip->dac_routing = 1; in oxygen_init()
378 chip->dac_volume[i] = chip->model.dac_volume_min; in oxygen_init()
379 chip->dac_mute = 1; in oxygen_init()
380 chip->spdif_playback_enable = 1; in oxygen_init()
381 chip->spdif_bits = OXYGEN_SPDIF_C | OXYGEN_SPDIF_ORIGINAL | in oxygen_init()
383 chip->spdif_pcm_bits = chip->spdif_bits; in oxygen_init()
385 if (!(oxygen_read8(chip, OXYGEN_REVISION) & OXYGEN_REVISION_2)) in oxygen_init()
386 oxygen_set_bits8(chip, OXYGEN_MISC, in oxygen_init()
389 i = oxygen_read16(chip, OXYGEN_AC97_CONTROL); in oxygen_init()
390 chip->has_ac97_0 = (i & OXYGEN_AC97_CODEC_0) != 0; in oxygen_init()
391 chip->has_ac97_1 = (i & OXYGEN_AC97_CODEC_1) != 0; in oxygen_init()
393 oxygen_write8_masked(chip, OXYGEN_FUNCTION, in oxygen_init()
395 chip->model.function_flags, in oxygen_init()
399 oxygen_write8(chip, OXYGEN_DMA_STATUS, 0); in oxygen_init()
400 oxygen_write8(chip, OXYGEN_DMA_PAUSE, 0); in oxygen_init()
401 oxygen_write8(chip, OXYGEN_PLAY_CHANNELS, in oxygen_init()
405 oxygen_write16(chip, OXYGEN_INTERRUPT_MASK, 0); in oxygen_init()
406 oxygen_write8_masked(chip, OXYGEN_MISC, in oxygen_init()
407 chip->model.misc_flags, in oxygen_init()
413 oxygen_write8(chip, OXYGEN_REC_FORMAT, in oxygen_init()
417 oxygen_write8(chip, OXYGEN_PLAY_FORMAT, in oxygen_init()
420 oxygen_write8(chip, OXYGEN_REC_CHANNELS, OXYGEN_REC_CHANNELS_2_2_2); in oxygen_init()
421 oxygen_write16(chip, OXYGEN_I2S_MULTICH_FORMAT, in oxygen_init()
423 chip->model.dac_i2s_format | in oxygen_init()
424 OXYGEN_I2S_MCLK(chip->model.dac_mclks) | in oxygen_init()
428 if (chip->model.device_config & CAPTURE_0_FROM_I2S_1) in oxygen_init()
429 oxygen_write16(chip, OXYGEN_I2S_A_FORMAT, in oxygen_init()
431 chip->model.adc_i2s_format | in oxygen_init()
432 OXYGEN_I2S_MCLK(chip->model.adc_mclks) | in oxygen_init()
437 oxygen_write16(chip, OXYGEN_I2S_A_FORMAT, in oxygen_init()
440 if (chip->model.device_config & (CAPTURE_0_FROM_I2S_2 | in oxygen_init()
442 oxygen_write16(chip, OXYGEN_I2S_B_FORMAT, in oxygen_init()
444 chip->model.adc_i2s_format | in oxygen_init()
445 OXYGEN_I2S_MCLK(chip->model.adc_mclks) | in oxygen_init()
450 oxygen_write16(chip, OXYGEN_I2S_B_FORMAT, in oxygen_init()
453 if (chip->model.device_config & CAPTURE_3_FROM_I2S_3) in oxygen_init()
454 oxygen_write16(chip, OXYGEN_I2S_C_FORMAT, in oxygen_init()
456 chip->model.adc_i2s_format | in oxygen_init()
457 OXYGEN_I2S_MCLK(chip->model.adc_mclks) | in oxygen_init()
462 oxygen_write16(chip, OXYGEN_I2S_C_FORMAT, in oxygen_init()
465 oxygen_clear_bits32(chip, OXYGEN_SPDIF_CONTROL, in oxygen_init()
468 if (chip->model.device_config & CAPTURE_1_FROM_SPDIF) in oxygen_init()
469 oxygen_write32_masked(chip, OXYGEN_SPDIF_CONTROL, in oxygen_init()
482 oxygen_clear_bits32(chip, OXYGEN_SPDIF_CONTROL, in oxygen_init()
486 oxygen_write32(chip, OXYGEN_SPDIF_OUTPUT_BITS, chip->spdif_bits); in oxygen_init()
487 oxygen_write16(chip, OXYGEN_2WIRE_BUS_STATUS, in oxygen_init()
491 oxygen_clear_bits8(chip, OXYGEN_MPU401_CONTROL, OXYGEN_MPU401_LOOPBACK); in oxygen_init()
492 oxygen_write8(chip, OXYGEN_GPI_INTERRUPT_MASK, 0); in oxygen_init()
493 oxygen_write16(chip, OXYGEN_GPIO_INTERRUPT_MASK, 0); in oxygen_init()
494 oxygen_write16(chip, OXYGEN_PLAY_ROUTING, in oxygen_init()
501 oxygen_write8(chip, OXYGEN_REC_ROUTING, in oxygen_init()
505 oxygen_write8(chip, OXYGEN_ADC_MONITOR, 0); in oxygen_init()
506 oxygen_write8(chip, OXYGEN_A_MONITOR_ROUTING, in oxygen_init()
512 if (chip->has_ac97_0 | chip->has_ac97_1) in oxygen_init()
513 oxygen_write8(chip, OXYGEN_AC97_INTERRUPT_MASK, in oxygen_init()
517 oxygen_write8(chip, OXYGEN_AC97_INTERRUPT_MASK, 0); in oxygen_init()
518 oxygen_write32(chip, OXYGEN_AC97_OUT_CONFIG, 0); in oxygen_init()
519 oxygen_write32(chip, OXYGEN_AC97_IN_CONFIG, 0); in oxygen_init()
520 if (!(chip->has_ac97_0 | chip->has_ac97_1)) in oxygen_init()
521 oxygen_set_bits16(chip, OXYGEN_AC97_CONTROL, in oxygen_init()
523 if (!chip->has_ac97_0) { in oxygen_init()
524 oxygen_set_bits16(chip, OXYGEN_AC97_CONTROL, in oxygen_init()
527 oxygen_write_ac97(chip, 0, AC97_RESET, 0); in oxygen_init()
529 oxygen_ac97_set_bits(chip, 0, CM9780_GPIO_SETUP, in oxygen_init()
531 oxygen_ac97_set_bits(chip, 0, CM9780_MIXER, in oxygen_init()
534 oxygen_ac97_set_bits(chip, 0, CM9780_JACK, in oxygen_init()
538 oxygen_write_ac97(chip, 0, AC97_MASTER, 0x0000); in oxygen_init()
539 oxygen_write_ac97(chip, 0, AC97_PC_BEEP, 0x8000); in oxygen_init()
540 oxygen_write_ac97(chip, 0, AC97_MIC, 0x8808); in oxygen_init()
541 oxygen_write_ac97(chip, 0, AC97_LINE, 0x0808); in oxygen_init()
542 oxygen_write_ac97(chip, 0, AC97_CD, 0x8808); in oxygen_init()
543 oxygen_write_ac97(chip, 0, AC97_VIDEO, 0x8808); in oxygen_init()
544 oxygen_write_ac97(chip, 0, AC97_AUX, 0x8808); in oxygen_init()
545 oxygen_write_ac97(chip, 0, AC97_REC_GAIN, 0x8000); in oxygen_init()
546 oxygen_write_ac97(chip, 0, AC97_CENTER_LFE_MASTER, 0x8080); in oxygen_init()
547 oxygen_write_ac97(chip, 0, AC97_SURROUND_MASTER, 0x8080); in oxygen_init()
548 oxygen_ac97_clear_bits(chip, 0, CM9780_GPIO_STATUS, in oxygen_init()
551 oxygen_ac97_set_bits(chip, 0, AC97_POWERDOWN, in oxygen_init()
553 oxygen_ac97_set_bits(chip, 0, AC97_EXTENDED_STATUS, in oxygen_init()
556 if (chip->has_ac97_1) { in oxygen_init()
557 oxygen_set_bits32(chip, OXYGEN_AC97_OUT_CONFIG, in oxygen_init()
560 oxygen_write_ac97(chip, 1, AC97_RESET, 0); in oxygen_init()
562 oxygen_write_ac97(chip, 1, AC97_MASTER, 0x0000); in oxygen_init()
563 oxygen_write_ac97(chip, 1, AC97_HEADPHONE, 0x8000); in oxygen_init()
564 oxygen_write_ac97(chip, 1, AC97_PC_BEEP, 0x8000); in oxygen_init()
565 oxygen_write_ac97(chip, 1, AC97_MIC, 0x8808); in oxygen_init()
566 oxygen_write_ac97(chip, 1, AC97_LINE, 0x8808); in oxygen_init()
567 oxygen_write_ac97(chip, 1, AC97_CD, 0x8808); in oxygen_init()
568 oxygen_write_ac97(chip, 1, AC97_VIDEO, 0x8808); in oxygen_init()
569 oxygen_write_ac97(chip, 1, AC97_AUX, 0x8808); in oxygen_init()
570 oxygen_write_ac97(chip, 1, AC97_PCM, 0x0808); in oxygen_init()
571 oxygen_write_ac97(chip, 1, AC97_REC_SEL, 0x0000); in oxygen_init()
572 oxygen_write_ac97(chip, 1, AC97_REC_GAIN, 0x0000); in oxygen_init()
573 oxygen_ac97_set_bits(chip, 1, 0x6a, 0x0040); in oxygen_init()
577 static void oxygen_shutdown(struct oxygen *chip) in oxygen_shutdown() argument
579 spin_lock_irq(&chip->reg_lock); in oxygen_shutdown()
580 chip->interrupt_mask = 0; in oxygen_shutdown()
581 chip->pcm_running = 0; in oxygen_shutdown()
582 oxygen_write16(chip, OXYGEN_DMA_STATUS, 0); in oxygen_shutdown()
583 oxygen_write16(chip, OXYGEN_INTERRUPT_MASK, 0); in oxygen_shutdown()
584 spin_unlock_irq(&chip->reg_lock); in oxygen_shutdown()
589 struct oxygen *chip = card->private_data; in oxygen_card_free() local
591 oxygen_shutdown(chip); in oxygen_card_free()
592 if (chip->irq >= 0) in oxygen_card_free()
593 free_irq(chip->irq, chip); in oxygen_card_free()
594 flush_work(&chip->spdif_input_bits_work); in oxygen_card_free()
595 flush_work(&chip->gpio_work); in oxygen_card_free()
596 chip->model.cleanup(chip); in oxygen_card_free()
597 kfree(chip->model_data); in oxygen_card_free()
598 mutex_destroy(&chip->mutex); in oxygen_card_free()
599 pci_release_regions(chip->pci); in oxygen_card_free()
600 pci_disable_device(chip->pci); in oxygen_card_free()
606 int (*get_model)(struct oxygen *chip, in oxygen_pci_probe() argument
612 struct oxygen *chip; in oxygen_pci_probe() local
617 sizeof(*chip), &card); in oxygen_pci_probe()
621 chip = card->private_data; in oxygen_pci_probe()
622 chip->card = card; in oxygen_pci_probe()
623 chip->pci = pci; in oxygen_pci_probe()
624 chip->irq = -1; in oxygen_pci_probe()
625 spin_lock_init(&chip->reg_lock); in oxygen_pci_probe()
626 mutex_init(&chip->mutex); in oxygen_pci_probe()
627 INIT_WORK(&chip->spdif_input_bits_work, in oxygen_pci_probe()
629 INIT_WORK(&chip->gpio_work, oxygen_gpio_changed); in oxygen_pci_probe()
630 init_waitqueue_head(&chip->ac97_waitqueue); in oxygen_pci_probe()
648 chip->addr = pci_resource_start(pci, 0); in oxygen_pci_probe()
650 pci_id = oxygen_search_pci_id(chip, ids); in oxygen_pci_probe()
655 oxygen_restore_eeprom(chip, pci_id); in oxygen_pci_probe()
656 err = get_model(chip, pci_id); in oxygen_pci_probe()
660 if (chip->model.model_data_size) { in oxygen_pci_probe()
661 chip->model_data = kzalloc(chip->model.model_data_size, in oxygen_pci_probe()
663 if (!chip->model_data) { in oxygen_pci_probe()
673 oxygen_init(chip); in oxygen_pci_probe()
674 chip->model.init(chip); in oxygen_pci_probe()
677 KBUILD_MODNAME, chip); in oxygen_pci_probe()
682 chip->irq = pci->irq; in oxygen_pci_probe()
684 strcpy(card->driver, chip->model.chip); in oxygen_pci_probe()
685 strcpy(card->shortname, chip->model.shortname); in oxygen_pci_probe()
687 chip->model.longname, chip->addr, chip->irq); in oxygen_pci_probe()
688 strcpy(card->mixername, chip->model.chip); in oxygen_pci_probe()
689 snd_component_add(card, chip->model.chip); in oxygen_pci_probe()
691 err = oxygen_pcm_init(chip); in oxygen_pci_probe()
695 err = oxygen_mixer_init(chip); in oxygen_pci_probe()
699 if (chip->model.device_config & (MIDI_OUTPUT | MIDI_INPUT)) { in oxygen_pci_probe()
702 if (chip->model.device_config & MIDI_OUTPUT) in oxygen_pci_probe()
704 if (chip->model.device_config & MIDI_INPUT) in oxygen_pci_probe()
707 chip->addr + OXYGEN_MPU401, in oxygen_pci_probe()
708 info_flags, -1, &chip->midi); in oxygen_pci_probe()
713 oxygen_proc_init(chip); in oxygen_pci_probe()
715 spin_lock_irq(&chip->reg_lock); in oxygen_pci_probe()
716 if (chip->model.device_config & CAPTURE_1_FROM_SPDIF) in oxygen_pci_probe()
717 chip->interrupt_mask |= OXYGEN_INT_SPDIF_IN_DETECT; in oxygen_pci_probe()
718 if (chip->has_ac97_0 | chip->has_ac97_1) in oxygen_pci_probe()
719 chip->interrupt_mask |= OXYGEN_INT_AC97; in oxygen_pci_probe()
720 oxygen_write16(chip, OXYGEN_INTERRUPT_MASK, chip->interrupt_mask); in oxygen_pci_probe()
721 spin_unlock_irq(&chip->reg_lock); in oxygen_pci_probe()
750 struct oxygen *chip = card->private_data; in oxygen_pci_suspend() local
756 snd_pcm_suspend(chip->streams[i]); in oxygen_pci_suspend()
758 if (chip->model.suspend) in oxygen_pci_suspend()
759 chip->model.suspend(chip); in oxygen_pci_suspend()
761 spin_lock_irq(&chip->reg_lock); in oxygen_pci_suspend()
762 saved_interrupt_mask = chip->interrupt_mask; in oxygen_pci_suspend()
763 chip->interrupt_mask = 0; in oxygen_pci_suspend()
764 oxygen_write16(chip, OXYGEN_DMA_STATUS, 0); in oxygen_pci_suspend()
765 oxygen_write16(chip, OXYGEN_INTERRUPT_MASK, 0); in oxygen_pci_suspend()
766 spin_unlock_irq(&chip->reg_lock); in oxygen_pci_suspend()
768 synchronize_irq(chip->irq); in oxygen_pci_suspend()
769 flush_work(&chip->spdif_input_bits_work); in oxygen_pci_suspend()
770 flush_work(&chip->gpio_work); in oxygen_pci_suspend()
771 chip->interrupt_mask = saved_interrupt_mask; in oxygen_pci_suspend()
789 static void oxygen_restore_ac97(struct oxygen *chip, unsigned int codec) in oxygen_restore_ac97() argument
793 oxygen_write_ac97(chip, codec, AC97_RESET, 0); in oxygen_restore_ac97()
797 oxygen_write_ac97(chip, codec, i * 2, in oxygen_restore_ac97()
798 chip->saved_ac97_registers[codec][i]); in oxygen_restore_ac97()
804 struct oxygen *chip = card->private_data; in oxygen_pci_resume() local
807 oxygen_write16(chip, OXYGEN_DMA_STATUS, 0); in oxygen_pci_resume()
808 oxygen_write16(chip, OXYGEN_INTERRUPT_MASK, 0); in oxygen_pci_resume()
811 oxygen_write8(chip, i, chip->saved_registers._8[i]); in oxygen_pci_resume()
812 if (chip->has_ac97_0) in oxygen_pci_resume()
813 oxygen_restore_ac97(chip, 0); in oxygen_pci_resume()
814 if (chip->has_ac97_1) in oxygen_pci_resume()
815 oxygen_restore_ac97(chip, 1); in oxygen_pci_resume()
817 if (chip->model.resume) in oxygen_pci_resume()
818 chip->model.resume(chip); in oxygen_pci_resume()
820 oxygen_write16(chip, OXYGEN_INTERRUPT_MASK, chip->interrupt_mask); in oxygen_pci_resume()
833 struct oxygen *chip = card->private_data; in oxygen_pci_shutdown() local
835 oxygen_shutdown(chip); in oxygen_pci_shutdown()
836 chip->model.cleanup(chip); in oxygen_pci_shutdown()