Lines Matching refs:chip
412 snd_azf3328_ctrl_outb(const struct snd_azf3328 *chip, unsigned reg, u8 value) in snd_azf3328_ctrl_outb() argument
414 outb(value, chip->ctrl_io + reg); in snd_azf3328_ctrl_outb()
418 snd_azf3328_ctrl_inb(const struct snd_azf3328 *chip, unsigned reg) in snd_azf3328_ctrl_inb() argument
420 return inb(chip->ctrl_io + reg); in snd_azf3328_ctrl_inb()
424 snd_azf3328_ctrl_inw(const struct snd_azf3328 *chip, unsigned reg) in snd_azf3328_ctrl_inw() argument
426 return inw(chip->ctrl_io + reg); in snd_azf3328_ctrl_inw()
430 snd_azf3328_ctrl_outw(const struct snd_azf3328 *chip, unsigned reg, u16 value) in snd_azf3328_ctrl_outw() argument
432 outw(value, chip->ctrl_io + reg); in snd_azf3328_ctrl_outw()
436 snd_azf3328_ctrl_outl(const struct snd_azf3328 *chip, unsigned reg, u32 value) in snd_azf3328_ctrl_outl() argument
438 outl(value, chip->ctrl_io + reg); in snd_azf3328_ctrl_outl()
442 snd_azf3328_game_outb(const struct snd_azf3328 *chip, unsigned reg, u8 value) in snd_azf3328_game_outb() argument
444 outb(value, chip->game_io + reg); in snd_azf3328_game_outb()
448 snd_azf3328_game_outw(const struct snd_azf3328 *chip, unsigned reg, u16 value) in snd_azf3328_game_outw() argument
450 outw(value, chip->game_io + reg); in snd_azf3328_game_outw()
454 snd_azf3328_game_inb(const struct snd_azf3328 *chip, unsigned reg) in snd_azf3328_game_inb() argument
456 return inb(chip->game_io + reg); in snd_azf3328_game_inb()
460 snd_azf3328_game_inw(const struct snd_azf3328 *chip, unsigned reg) in snd_azf3328_game_inw() argument
462 return inw(chip->game_io + reg); in snd_azf3328_game_inw()
466 snd_azf3328_mixer_outw(const struct snd_azf3328 *chip, unsigned reg, u16 value) in snd_azf3328_mixer_outw() argument
468 outw(value, chip->mixer_io + reg); in snd_azf3328_mixer_outw()
472 snd_azf3328_mixer_inw(const struct snd_azf3328 *chip, unsigned reg) in snd_azf3328_mixer_inw() argument
474 return inw(chip->mixer_io + reg); in snd_azf3328_mixer_inw()
480 snd_azf3328_mixer_mute_control(const struct snd_azf3328 *chip, in snd_azf3328_mixer_mute_control() argument
484 unsigned long portbase = chip->mixer_io + reg + 1; in snd_azf3328_mixer_mute_control()
496 snd_azf3328_mixer_mute_control_master(const struct snd_azf3328 *chip, in snd_azf3328_mixer_mute_control_master() argument
501 chip, in snd_azf3328_mixer_mute_control_master()
508 snd_azf3328_mixer_mute_control_pcm(const struct snd_azf3328 *chip, in snd_azf3328_mixer_mute_control_pcm() argument
513 chip, in snd_azf3328_mixer_mute_control_pcm()
520 snd_azf3328_mixer_reset(const struct snd_azf3328 *chip) in snd_azf3328_mixer_reset() argument
525 snd_azf3328_mixer_mute_control_master(chip, 1); in snd_azf3328_mixer_reset()
526 snd_azf3328_mixer_outw(chip, IDX_MIXER_RESET, 0x0000); in snd_azf3328_mixer_reset()
532 snd_azf3328_mixer_ac97_map_unsupported(const struct snd_azf3328 *chip, in snd_azf3328_mixer_ac97_map_unsupported() argument
536 dev_warn(chip->card->dev, in snd_azf3328_mixer_ac97_map_unsupported()
667 const struct snd_azf3328 *chip = ac97->private_data; in snd_azf3328_mixer_ac97_read() local
672 dev_dbg(chip->card->dev, "snd_azf3328_mixer_ac97_read reg_ac97 %u\n", in snd_azf3328_mixer_ac97_read()
678 reg_val = snd_azf3328_mixer_inw(chip, in snd_azf3328_mixer_ac97_read()
689 snd_azf3328_mixer_inw(chip, IDX_MIXER_SOMETHING30H); in snd_azf3328_mixer_ac97_read()
718 snd_azf3328_mixer_ac97_map_unsupported(chip, reg_ac97, "read"); in snd_azf3328_mixer_ac97_read()
727 const struct snd_azf3328 *chip = ac97->private_data; in snd_azf3328_mixer_ac97_write() local
731 dev_dbg(chip->card->dev, in snd_azf3328_mixer_ac97_write()
739 chip, in snd_azf3328_mixer_ac97_write()
766 snd_azf3328_mixer_ac97_map_unsupported(chip, reg_ac97, "write"); in snd_azf3328_mixer_ac97_write()
770 snd_azf3328_mixer_new(struct snd_azf3328 *chip) in snd_azf3328_mixer_new() argument
784 ac97.private_data = chip; in snd_azf3328_mixer_new()
785 ac97.pci = chip->pci; in snd_azf3328_mixer_new()
793 rc = snd_ac97_bus(chip->card, 0, &ops, NULL, &bus); in snd_azf3328_mixer_new()
795 rc = snd_ac97_mixer(bus, &ac97, &chip->ac97); in snd_azf3328_mixer_new()
802 dev_err(chip->card->dev, "AC97 init failed, err %d!\n", rc); in snd_azf3328_mixer_new()
811 snd_azf3328_mixer_write_volume_gradually(const struct snd_azf3328 *chip, in snd_azf3328_mixer_write_volume_gradually() argument
818 unsigned long portbase = chip->mixer_io + reg; in snd_azf3328_mixer_write_volume_gradually()
952 struct snd_azf3328 *chip = snd_kcontrol_chip(kcontrol); in snd_azf3328_get_mixer() local
958 oreg = snd_azf3328_mixer_inw(chip, reg.reg); in snd_azf3328_get_mixer()
969 dev_dbg(chip->card->dev, in snd_azf3328_get_mixer()
981 struct snd_azf3328 *chip = snd_kcontrol_chip(kcontrol); in snd_azf3328_put_mixer() local
986 oreg = snd_azf3328_mixer_inw(chip, reg.reg); in snd_azf3328_put_mixer()
1001 chip, reg.reg, nreg >> 8, nreg & 0xff, in snd_azf3328_put_mixer()
1006 snd_azf3328_mixer_outw(chip, reg.reg, nreg); in snd_azf3328_put_mixer()
1008 dev_dbg(chip->card->dev, in snd_azf3328_put_mixer()
1012 nreg, snd_azf3328_mixer_inw(chip, reg.reg)); in snd_azf3328_put_mixer()
1061 struct snd_azf3328 *chip = snd_kcontrol_chip(kcontrol); in snd_azf3328_get_mixer_enum() local
1066 val = snd_azf3328_mixer_inw(chip, reg.reg); in snd_azf3328_get_mixer_enum()
1073 dev_dbg(chip->card->dev, in snd_azf3328_get_mixer_enum()
1084 struct snd_azf3328 *chip = snd_kcontrol_chip(kcontrol); in snd_azf3328_put_mixer_enum() local
1089 oreg = snd_azf3328_mixer_inw(chip, reg.reg); in snd_azf3328_put_mixer_enum()
1103 snd_azf3328_mixer_outw(chip, reg.reg, val); in snd_azf3328_put_mixer_enum()
1106 dev_dbg(chip->card->dev, in snd_azf3328_put_mixer_enum()
1186 snd_azf3328_mixer_new(struct snd_azf3328 *chip) in snd_azf3328_mixer_new() argument
1193 if (snd_BUG_ON(!chip || !chip->card)) in snd_azf3328_mixer_new()
1196 card = chip->card; in snd_azf3328_mixer_new()
1199 snd_azf3328_mixer_outw(chip, IDX_MIXER_RESET, 0x0000); in snd_azf3328_mixer_new()
1203 snd_azf3328_mixer_outw(chip, in snd_azf3328_mixer_new()
1212 if ((err = snd_ctl_add(chip->card, snd_ctl_new1(sw, chip))) < 0) in snd_azf3328_mixer_new()
1324 snd_azf3328_ctrl_reg_6AH_update(struct snd_azf3328 *chip, in snd_azf3328_ctrl_reg_6AH_update() argument
1331 chip->shadow_reg_ctrl_6AH |= bitmask; in snd_azf3328_ctrl_reg_6AH_update()
1333 chip->shadow_reg_ctrl_6AH &= ~bitmask; in snd_azf3328_ctrl_reg_6AH_update()
1334 dev_dbg(chip->card->dev, in snd_azf3328_ctrl_reg_6AH_update()
1336 bitmask, do_mask, chip->shadow_reg_ctrl_6AH); in snd_azf3328_ctrl_reg_6AH_update()
1337 snd_azf3328_ctrl_outw(chip, IDX_IO_6AH, chip->shadow_reg_ctrl_6AH); in snd_azf3328_ctrl_reg_6AH_update()
1341 snd_azf3328_ctrl_enable_codecs(struct snd_azf3328 *chip, bool enable) in snd_azf3328_ctrl_enable_codecs() argument
1343 dev_dbg(chip->card->dev, "codec_enable %d\n", enable); in snd_azf3328_ctrl_enable_codecs()
1347 chip, IO_6A_PAUSE_PLAYBACK_BIT8, enable in snd_azf3328_ctrl_enable_codecs()
1352 snd_azf3328_ctrl_codec_activity(struct snd_azf3328 *chip, in snd_azf3328_ctrl_codec_activity() argument
1357 struct snd_azf3328_codec_data *codec = &chip->codecs[codec_type]; in snd_azf3328_ctrl_codec_activity()
1360 dev_dbg(chip->card->dev, in snd_azf3328_ctrl_codec_activity()
1384 ((!chip->codecs[peer_codecs[codec_type].other1] in snd_azf3328_ctrl_codec_activity()
1386 && (!chip->codecs[peer_codecs[codec_type].other2] in snd_azf3328_ctrl_codec_activity()
1390 snd_azf3328_ctrl_enable_codecs(chip, enable); in snd_azf3328_ctrl_codec_activity()
1401 snd_azf3328_codec_setdmaa(struct snd_azf3328 *chip, in snd_azf3328_codec_setdmaa() argument
1430 dev_dbg(chip->card->dev, in snd_azf3328_codec_setdmaa()
1472 snd_azf3328_codec_setdmaa(chip, codec, in snd_azf3328_pcm_prepare()
1481 struct snd_azf3328 *chip = snd_pcm_substream_chip(substream); in snd_azf3328_pcm_trigger() local
1491 dev_dbg(chip->card->dev, "START PCM %s\n", codec->name); in snd_azf3328_pcm_trigger()
1497 chip, 1 in snd_azf3328_pcm_trigger()
1518 snd_azf3328_codec_setdmaa(chip, codec, runtime->dma_addr, in snd_azf3328_pcm_trigger()
1548 snd_azf3328_ctrl_codec_activity(chip, codec->type, 1); in snd_azf3328_pcm_trigger()
1554 chip, 0 in snd_azf3328_pcm_trigger()
1558 dev_dbg(chip->card->dev, "PCM STARTED %s\n", codec->name); in snd_azf3328_pcm_trigger()
1561 dev_dbg(chip->card->dev, "PCM RESUME %s\n", codec->name); in snd_azf3328_pcm_trigger()
1573 dev_dbg(chip->card->dev, "PCM STOP %s\n", codec->name); in snd_azf3328_pcm_trigger()
1579 chip, 1 in snd_azf3328_pcm_trigger()
1599 snd_azf3328_ctrl_codec_activity(chip, codec->type, 0); in snd_azf3328_pcm_trigger()
1605 chip, 0 in snd_azf3328_pcm_trigger()
1609 dev_dbg(chip->card->dev, "PCM STOPPED %s\n", codec->name); in snd_azf3328_pcm_trigger()
1612 dev_dbg(chip->card->dev, "PCM SUSPEND %s\n", codec->name); in snd_azf3328_pcm_trigger()
1661 snd_azf3328_gameport_irq_enable(struct snd_azf3328 *chip, in snd_azf3328_gameport_irq_enable() argument
1666 chip->game_io+IDX_GAME_HWCONFIG, in snd_azf3328_gameport_irq_enable()
1673 snd_azf3328_gameport_legacy_address_enable(struct snd_azf3328 *chip, in snd_azf3328_gameport_legacy_address_enable() argument
1678 chip->game_io+IDX_GAME_HWCONFIG, in snd_azf3328_gameport_legacy_address_enable()
1685 snd_azf3328_gameport_set_counter_frequency(struct snd_azf3328 *chip, in snd_azf3328_gameport_set_counter_frequency() argument
1690 chip->game_io+IDX_GAME_HWCONFIG, in snd_azf3328_gameport_set_counter_frequency()
1695 chip->game_io+IDX_GAME_HWCONFIG, in snd_azf3328_gameport_set_counter_frequency()
1702 snd_azf3328_gameport_axis_circuit_enable(struct snd_azf3328 *chip, bool enable) in snd_azf3328_gameport_axis_circuit_enable() argument
1705 chip, IO_6A_SOMETHING2_GAMEPORT, enable in snd_azf3328_gameport_axis_circuit_enable()
1710 snd_azf3328_gameport_interrupt(struct snd_azf3328 *chip) in snd_azf3328_gameport_interrupt() argument
1716 dev_dbg(chip->card->dev, "gameport irq\n"); in snd_azf3328_gameport_interrupt()
1719 snd_azf3328_game_inw(chip, IDX_GAME_AXIS_VALUE); in snd_azf3328_gameport_interrupt()
1725 struct snd_azf3328 *chip = gameport_get_port_data(gameport); in snd_azf3328_gameport_open() local
1728 dev_dbg(chip->card->dev, "gameport_open, mode %d\n", mode); in snd_azf3328_gameport_open()
1739 snd_azf3328_gameport_set_counter_frequency(chip, in snd_azf3328_gameport_open()
1741 snd_azf3328_gameport_axis_circuit_enable(chip, (res == 0)); in snd_azf3328_gameport_open()
1749 struct snd_azf3328 *chip = gameport_get_port_data(gameport); in snd_azf3328_gameport_close() local
1751 dev_dbg(chip->card->dev, "gameport_close\n"); in snd_azf3328_gameport_close()
1752 snd_azf3328_gameport_set_counter_frequency(chip, in snd_azf3328_gameport_close()
1754 snd_azf3328_gameport_axis_circuit_enable(chip, 0); in snd_azf3328_gameport_close()
1763 struct snd_azf3328 *chip = gameport_get_port_data(gameport); in snd_azf3328_gameport_cooked_read() local
1768 if (snd_BUG_ON(!chip)) in snd_azf3328_gameport_cooked_read()
1771 spin_lock_irqsave(&chip->reg_lock, flags); in snd_azf3328_gameport_cooked_read()
1772 val = snd_azf3328_game_inb(chip, IDX_GAME_LEGACY_COMPATIBLE); in snd_azf3328_gameport_cooked_read()
1785 val = snd_azf3328_game_inb(chip, IDX_GAME_AXES_CONFIG); in snd_azf3328_gameport_cooked_read()
1787 for (i = 0; i < ARRAY_SIZE(chip->axes); ++i) { in snd_azf3328_gameport_cooked_read()
1790 snd_azf3328_game_outb(chip, IDX_GAME_AXES_CONFIG, val); in snd_azf3328_gameport_cooked_read()
1792 chip->axes[i] = snd_azf3328_game_inw( in snd_azf3328_gameport_cooked_read()
1793 chip, IDX_GAME_AXIS_VALUE in snd_azf3328_gameport_cooked_read()
1805 snd_azf3328_game_outb(chip, IDX_GAME_AXES_CONFIG, val); in snd_azf3328_gameport_cooked_read()
1807 snd_azf3328_game_outw(chip, IDX_GAME_AXIS_VALUE, 0xffff); in snd_azf3328_gameport_cooked_read()
1808 spin_unlock_irqrestore(&chip->reg_lock, flags); in snd_azf3328_gameport_cooked_read()
1810 for (i = 0; i < ARRAY_SIZE(chip->axes); i++) { in snd_azf3328_gameport_cooked_read()
1811 axes[i] = chip->axes[i]; in snd_azf3328_gameport_cooked_read()
1816 dev_dbg(chip->card->dev, "cooked_read: axes %d %d %d %d buttons %d\n", in snd_azf3328_gameport_cooked_read()
1823 snd_azf3328_gameport(struct snd_azf3328 *chip, int dev) in snd_azf3328_gameport() argument
1827 chip->gameport = gp = gameport_allocate_port(); in snd_azf3328_gameport()
1829 dev_err(chip->card->dev, "cannot alloc memory for gameport\n"); in snd_azf3328_gameport()
1834 gameport_set_phys(gp, "pci%s/gameport0", pci_name(chip->pci)); in snd_azf3328_gameport()
1835 gameport_set_dev_parent(gp, &chip->pci->dev); in snd_azf3328_gameport()
1836 gp->io = chip->game_io; in snd_azf3328_gameport()
1837 gameport_set_port_data(gp, chip); in snd_azf3328_gameport()
1845 snd_azf3328_gameport_legacy_address_enable(chip, 0); in snd_azf3328_gameport()
1847 snd_azf3328_gameport_set_counter_frequency(chip, in snd_azf3328_gameport()
1849 snd_azf3328_gameport_axis_circuit_enable(chip, 0); in snd_azf3328_gameport()
1851 gameport_register_port(chip->gameport); in snd_azf3328_gameport()
1857 snd_azf3328_gameport_free(struct snd_azf3328 *chip) in snd_azf3328_gameport_free() argument
1859 if (chip->gameport) { in snd_azf3328_gameport_free()
1860 gameport_unregister_port(chip->gameport); in snd_azf3328_gameport_free()
1861 chip->gameport = NULL; in snd_azf3328_gameport_free()
1863 snd_azf3328_gameport_irq_enable(chip, 0); in snd_azf3328_gameport_free()
1867 snd_azf3328_gameport(struct snd_azf3328 *chip, int dev) { return -ENOSYS; } in snd_azf3328_gameport() argument
1869 snd_azf3328_gameport_free(struct snd_azf3328 *chip) { } in snd_azf3328_gameport_free() argument
1871 snd_azf3328_gameport_interrupt(struct snd_azf3328 *chip) in snd_azf3328_gameport_interrupt() argument
1873 dev_warn(chip->card->dev, "huh, game port IRQ occurred!?\n"); in snd_azf3328_gameport_interrupt()
1880 snd_azf3328_irq_log_unknown_type(struct snd_azf3328 *chip, u8 which) in snd_azf3328_irq_log_unknown_type() argument
1882 dev_dbg(chip->card->dev, in snd_azf3328_irq_log_unknown_type()
1888 snd_azf3328_pcm_interrupt(struct snd_azf3328 *chip, in snd_azf3328_pcm_interrupt() argument
1913 dev_dbg(chip->card->dev, "%s period done (#%x), @ %x\n", in snd_azf3328_pcm_interrupt()
1919 dev_warn(chip->card->dev, "irq handler problem!\n"); in snd_azf3328_pcm_interrupt()
1921 snd_azf3328_irq_log_unknown_type(chip, which); in snd_azf3328_pcm_interrupt()
1928 struct snd_azf3328 *chip = dev_id; in snd_azf3328_interrupt() local
1932 status = snd_azf3328_ctrl_inb(chip, IDX_IO_IRQSTATUS); in snd_azf3328_interrupt()
1941 dev_dbg(chip->card->dev, in snd_azf3328_interrupt()
1951 if (chip->timer) in snd_azf3328_interrupt()
1952 snd_timer_interrupt(chip->timer, chip->timer->sticks); in snd_azf3328_interrupt()
1954 spin_lock(&chip->reg_lock); in snd_azf3328_interrupt()
1955 snd_azf3328_ctrl_outb(chip, IDX_IO_TIMER_VALUE + 3, 0x07); in snd_azf3328_interrupt()
1956 spin_unlock(&chip->reg_lock); in snd_azf3328_interrupt()
1957 dev_dbg(chip->card->dev, "timer IRQ\n"); in snd_azf3328_interrupt()
1961 snd_azf3328_pcm_interrupt(chip, chip->codecs, status); in snd_azf3328_interrupt()
1964 snd_azf3328_gameport_interrupt(chip); in snd_azf3328_interrupt()
1969 snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data); in snd_azf3328_interrupt()
1973 dev_dbg(chip->card->dev, "MPU401 IRQ\n"); in snd_azf3328_interrupt()
2047 struct snd_azf3328 *chip = snd_pcm_substream_chip(substream); in snd_azf3328_pcm_open() local
2049 struct snd_azf3328_codec_data *codec = &chip->codecs[codec_type]; in snd_azf3328_pcm_open()
2127 snd_azf3328_pcm(struct snd_azf3328 *chip) in snd_azf3328_pcm() argument
2135 err = snd_pcm_new(chip->card, "AZF3328 DSP", AZF_PCMDEV_STD, in snd_azf3328_pcm()
2144 pcm->private_data = chip; in snd_azf3328_pcm()
2146 strcpy(pcm->name, chip->card->shortname); in snd_azf3328_pcm()
2148 chip->pcm[AZF_CODEC_PLAYBACK] = pcm; in snd_azf3328_pcm()
2149 chip->pcm[AZF_CODEC_CAPTURE] = pcm; in snd_azf3328_pcm()
2152 snd_dma_pci_data(chip->pci), in snd_azf3328_pcm()
2155 err = snd_pcm_new(chip->card, "AZF3328 I2S OUT", AZF_PCMDEV_I2S_OUT, in snd_azf3328_pcm()
2162 pcm->private_data = chip; in snd_azf3328_pcm()
2164 strcpy(pcm->name, chip->card->shortname); in snd_azf3328_pcm()
2165 chip->pcm[AZF_CODEC_I2S_OUT] = pcm; in snd_azf3328_pcm()
2168 snd_dma_pci_data(chip->pci), in snd_azf3328_pcm()
2189 struct snd_azf3328 *chip; in snd_azf3328_timer_start() local
2193 chip = snd_timer_chip(timer); in snd_azf3328_timer_start()
2200 dev_dbg(chip->card->dev, "delay was too low (%d)!\n", delay); in snd_azf3328_timer_start()
2203 dev_dbg(chip->card->dev, "setting timer countdown value %d\n", delay); in snd_azf3328_timer_start()
2205 spin_lock_irqsave(&chip->reg_lock, flags); in snd_azf3328_timer_start()
2206 snd_azf3328_ctrl_outl(chip, IDX_IO_TIMER_VALUE, delay); in snd_azf3328_timer_start()
2207 spin_unlock_irqrestore(&chip->reg_lock, flags); in snd_azf3328_timer_start()
2214 struct snd_azf3328 *chip; in snd_azf3328_timer_stop() local
2217 chip = snd_timer_chip(timer); in snd_azf3328_timer_stop()
2218 spin_lock_irqsave(&chip->reg_lock, flags); in snd_azf3328_timer_stop()
2226 snd_azf3328_ctrl_outb(chip, IDX_IO_TIMER_VALUE + 3, 0x04); in snd_azf3328_timer_stop()
2227 spin_unlock_irqrestore(&chip->reg_lock, flags); in snd_azf3328_timer_stop()
2251 snd_azf3328_timer(struct snd_azf3328 *chip, int device) in snd_azf3328_timer() argument
2259 tid.card = chip->card->number; in snd_azf3328_timer()
2266 err = snd_timer_new(chip->card, "AZF3328", &tid, &timer); in snd_azf3328_timer()
2271 timer->private_data = chip; in snd_azf3328_timer()
2274 chip->timer = timer; in snd_azf3328_timer()
2287 snd_azf3328_free(struct snd_azf3328 *chip) in snd_azf3328_free() argument
2289 if (chip->irq < 0) in snd_azf3328_free()
2292 snd_azf3328_mixer_reset(chip); in snd_azf3328_free()
2294 snd_azf3328_timer_stop(chip->timer); in snd_azf3328_free()
2295 snd_azf3328_gameport_free(chip); in snd_azf3328_free()
2297 if (chip->irq >= 0) in snd_azf3328_free()
2298 synchronize_irq(chip->irq); in snd_azf3328_free()
2300 if (chip->irq >= 0) in snd_azf3328_free()
2301 free_irq(chip->irq, chip); in snd_azf3328_free()
2302 pci_release_regions(chip->pci); in snd_azf3328_free()
2303 pci_disable_device(chip->pci); in snd_azf3328_free()
2305 kfree(chip); in snd_azf3328_free()
2312 struct snd_azf3328 *chip = device->device_data; in snd_azf3328_dev_free() local
2313 return snd_azf3328_free(chip); in snd_azf3328_dev_free()
2340 snd_azf3328_debug_show_ports(const struct snd_azf3328 *chip) in snd_azf3328_debug_show_ports() argument
2344 dev_dbg(chip->card->dev, in snd_azf3328_debug_show_ports()
2347 chip->ctrl_io, chip->game_io, chip->mpu_io, in snd_azf3328_debug_show_ports()
2348 chip->opl3_io, chip->mixer_io, chip->irq); in snd_azf3328_debug_show_ports()
2350 dev_dbg(chip->card->dev, in snd_azf3328_debug_show_ports()
2352 snd_azf3328_game_inb(chip, 0), in snd_azf3328_debug_show_ports()
2353 snd_azf3328_game_inb(chip, 1), in snd_azf3328_debug_show_ports()
2354 snd_azf3328_game_inb(chip, 2), in snd_azf3328_debug_show_ports()
2355 snd_azf3328_game_inb(chip, 3), in snd_azf3328_debug_show_ports()
2356 snd_azf3328_game_inb(chip, 4), in snd_azf3328_debug_show_ports()
2357 snd_azf3328_game_inb(chip, 5)); in snd_azf3328_debug_show_ports()
2360 dev_dbg(chip->card->dev, in snd_azf3328_debug_show_ports()
2361 "mpu_io 0x%04x\n", inb(chip->mpu_io + tmp)); in snd_azf3328_debug_show_ports()
2364 dev_dbg(chip->card->dev, in snd_azf3328_debug_show_ports()
2369 dev_dbg(chip->card->dev, in snd_azf3328_debug_show_ports()
2381 dev_dbg(chip->card->dev, in snd_azf3328_debug_show_ports()
2383 tmp, snd_azf3328_ctrl_inw(chip, tmp)); in snd_azf3328_debug_show_ports()
2386 dev_dbg(chip->card->dev, in snd_azf3328_debug_show_ports()
2388 tmp, snd_azf3328_mixer_inw(chip, tmp)); in snd_azf3328_debug_show_ports()
2397 struct snd_azf3328 *chip; in snd_azf3328_create() local
2412 chip = kzalloc(sizeof(*chip), GFP_KERNEL); in snd_azf3328_create()
2413 if (chip == NULL) { in snd_azf3328_create()
2417 spin_lock_init(&chip->reg_lock); in snd_azf3328_create()
2418 chip->card = card; in snd_azf3328_create()
2419 chip->pci = pci; in snd_azf3328_create()
2420 chip->irq = -1; in snd_azf3328_create()
2436 chip->ctrl_io = pci_resource_start(pci, 0); in snd_azf3328_create()
2437 chip->game_io = pci_resource_start(pci, 1); in snd_azf3328_create()
2438 chip->mpu_io = pci_resource_start(pci, 2); in snd_azf3328_create()
2439 chip->opl3_io = pci_resource_start(pci, 3); in snd_azf3328_create()
2440 chip->mixer_io = pci_resource_start(pci, 4); in snd_azf3328_create()
2442 codec_setup = &chip->codecs[AZF_CODEC_PLAYBACK]; in snd_azf3328_create()
2443 codec_setup->io_base = chip->ctrl_io + AZF_IO_OFFS_CODEC_PLAYBACK; in snd_azf3328_create()
2444 codec_setup->lock = &chip->reg_lock; in snd_azf3328_create()
2448 codec_setup = &chip->codecs[AZF_CODEC_CAPTURE]; in snd_azf3328_create()
2449 codec_setup->io_base = chip->ctrl_io + AZF_IO_OFFS_CODEC_CAPTURE; in snd_azf3328_create()
2450 codec_setup->lock = &chip->reg_lock; in snd_azf3328_create()
2454 codec_setup = &chip->codecs[AZF_CODEC_I2S_OUT]; in snd_azf3328_create()
2455 codec_setup->io_base = chip->ctrl_io + AZF_IO_OFFS_CODEC_I2S_OUT; in snd_azf3328_create()
2456 codec_setup->lock = &chip->reg_lock; in snd_azf3328_create()
2461 IRQF_SHARED, KBUILD_MODNAME, chip)) { in snd_azf3328_create()
2466 chip->irq = pci->irq; in snd_azf3328_create()
2468 synchronize_irq(chip->irq); in snd_azf3328_create()
2470 snd_azf3328_debug_show_ports(chip); in snd_azf3328_create()
2472 err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops); in snd_azf3328_create()
2477 err = snd_azf3328_mixer_new(chip); in snd_azf3328_create()
2488 &chip->codecs[codec_type]; in snd_azf3328_create()
2493 snd_azf3328_ctrl_codec_activity(chip, codec_type, 0); in snd_azf3328_create()
2501 *rchip = chip; in snd_azf3328_create()
2507 if (chip) in snd_azf3328_create()
2508 snd_azf3328_free(chip); in snd_azf3328_create()
2520 struct snd_azf3328 *chip; in snd_azf3328_probe() local
2542 err = snd_azf3328_create(card, pci, pci_id->driver_data, &chip); in snd_azf3328_probe()
2546 card->private_data = chip; in snd_azf3328_probe()
2552 MPU401_HW_AZT2320, chip->mpu_io, in snd_azf3328_probe()
2554 -1, &chip->rmidi in snd_azf3328_probe()
2558 chip->mpu_io in snd_azf3328_probe()
2563 err = snd_azf3328_timer(chip, 0); in snd_azf3328_probe()
2567 err = snd_azf3328_pcm(chip); in snd_azf3328_probe()
2571 if (snd_opl3_create(card, chip->opl3_io, chip->opl3_io+2, in snd_azf3328_probe()
2574 chip->opl3_io, chip->opl3_io+2 in snd_azf3328_probe()
2584 opl3->private_data = chip; in snd_azf3328_probe()
2588 card->shortname, chip->ctrl_io, chip->irq); in snd_azf3328_probe()
2606 snd_azf3328_gameport(chip, dev); in snd_azf3328_probe()
2630 snd_azf3328_suspend_regs(const struct snd_azf3328 *chip, in snd_azf3328_suspend_regs() argument
2637 dev_dbg(chip->card->dev, "suspend: io 0x%04lx: 0x%08x\n", in snd_azf3328_suspend_regs()
2645 snd_azf3328_resume_regs(const struct snd_azf3328 *chip, in snd_azf3328_resume_regs() argument
2655 dev_dbg(chip->card->dev, in snd_azf3328_resume_regs()
2664 snd_azf3328_suspend_ac97(struct snd_azf3328 *chip) in snd_azf3328_suspend_ac97() argument
2667 snd_ac97_suspend(chip->ac97); in snd_azf3328_suspend_ac97()
2669 snd_azf3328_suspend_regs(chip, chip->mixer_io, in snd_azf3328_suspend_ac97()
2670 ARRAY_SIZE(chip->saved_regs_mixer), chip->saved_regs_mixer); in snd_azf3328_suspend_ac97()
2673 snd_azf3328_mixer_mute_control_master(chip, 1); in snd_azf3328_suspend_ac97()
2674 snd_azf3328_mixer_mute_control_pcm(chip, 1); in snd_azf3328_suspend_ac97()
2679 snd_azf3328_resume_ac97(const struct snd_azf3328 *chip) in snd_azf3328_resume_ac97() argument
2682 snd_ac97_resume(chip->ac97); in snd_azf3328_resume_ac97()
2684 snd_azf3328_resume_regs(chip, chip->saved_regs_mixer, chip->mixer_io, in snd_azf3328_resume_ac97()
2685 ARRAY_SIZE(chip->saved_regs_mixer)); in snd_azf3328_resume_ac97()
2691 outw(((u16 *)chip->saved_regs_mixer)[1], chip->mixer_io + 2); in snd_azf3328_resume_ac97()
2699 struct snd_azf3328 *chip = card->private_data; in snd_azf3328_suspend() local
2705 snd_pcm_suspend_all(chip->pcm[AZF_CODEC_PLAYBACK]); in snd_azf3328_suspend()
2706 snd_pcm_suspend_all(chip->pcm[AZF_CODEC_I2S_OUT]); in snd_azf3328_suspend()
2708 snd_azf3328_suspend_ac97(chip); in snd_azf3328_suspend()
2710 snd_azf3328_suspend_regs(chip, chip->ctrl_io, in snd_azf3328_suspend()
2711 ARRAY_SIZE(chip->saved_regs_ctrl), chip->saved_regs_ctrl); in snd_azf3328_suspend()
2714 saved_regs_ctrl_u16 = (u16 *)chip->saved_regs_ctrl; in snd_azf3328_suspend()
2715 saved_regs_ctrl_u16[IDX_IO_6AH / 2] = chip->shadow_reg_ctrl_6AH; in snd_azf3328_suspend()
2717 snd_azf3328_suspend_regs(chip, chip->game_io, in snd_azf3328_suspend()
2718 ARRAY_SIZE(chip->saved_regs_game), chip->saved_regs_game); in snd_azf3328_suspend()
2719 snd_azf3328_suspend_regs(chip, chip->mpu_io, in snd_azf3328_suspend()
2720 ARRAY_SIZE(chip->saved_regs_mpu), chip->saved_regs_mpu); in snd_azf3328_suspend()
2721 snd_azf3328_suspend_regs(chip, chip->opl3_io, in snd_azf3328_suspend()
2722 ARRAY_SIZE(chip->saved_regs_opl3), chip->saved_regs_opl3); in snd_azf3328_suspend()
2730 const struct snd_azf3328 *chip = card->private_data; in snd_azf3328_resume() local
2732 snd_azf3328_resume_regs(chip, chip->saved_regs_game, chip->game_io, in snd_azf3328_resume()
2733 ARRAY_SIZE(chip->saved_regs_game)); in snd_azf3328_resume()
2734 snd_azf3328_resume_regs(chip, chip->saved_regs_mpu, chip->mpu_io, in snd_azf3328_resume()
2735 ARRAY_SIZE(chip->saved_regs_mpu)); in snd_azf3328_resume()
2736 snd_azf3328_resume_regs(chip, chip->saved_regs_opl3, chip->opl3_io, in snd_azf3328_resume()
2737 ARRAY_SIZE(chip->saved_regs_opl3)); in snd_azf3328_resume()
2739 snd_azf3328_resume_ac97(chip); in snd_azf3328_resume()
2741 snd_azf3328_resume_regs(chip, chip->saved_regs_ctrl, chip->ctrl_io, in snd_azf3328_resume()
2742 ARRAY_SIZE(chip->saved_regs_ctrl)); in snd_azf3328_resume()