Lines Matching refs:chip

76 #define fm801_writew(chip,reg,value)	outw((value), chip->port + FM801_##reg)  argument
77 #define fm801_readw(chip,reg) inw(chip->port + FM801_##reg) argument
79 #define fm801_writel(chip,reg,value) outl((value), chip->port + FM801_##reg) argument
227 static bool fm801_ac97_is_ready(struct fm801 *chip, unsigned int iterations) in fm801_ac97_is_ready() argument
232 if (!(fm801_readw(chip, AC97_CMD) & FM801_AC97_BUSY)) in fm801_ac97_is_ready()
239 static bool fm801_ac97_is_valid(struct fm801 *chip, unsigned int iterations) in fm801_ac97_is_valid() argument
244 if (fm801_readw(chip, AC97_CMD) & FM801_AC97_VALID) in fm801_ac97_is_valid()
251 static int snd_fm801_update_bits(struct fm801 *chip, unsigned short reg, in snd_fm801_update_bits() argument
258 spin_lock_irqsave(&chip->reg_lock, flags); in snd_fm801_update_bits()
259 old = inw(chip->port + reg); in snd_fm801_update_bits()
263 outw(new, chip->port + reg); in snd_fm801_update_bits()
264 spin_unlock_irqrestore(&chip->reg_lock, flags); in snd_fm801_update_bits()
272 struct fm801 *chip = ac97->private_data; in snd_fm801_codec_write() local
277 if (!fm801_ac97_is_ready(chip, 100)) { in snd_fm801_codec_write()
278 dev_err(chip->card->dev, "AC'97 interface is busy (1)\n"); in snd_fm801_codec_write()
283 fm801_writew(chip, AC97_DATA, val); in snd_fm801_codec_write()
284 fm801_writew(chip, AC97_CMD, reg | (ac97->addr << FM801_AC97_ADDR_SHIFT)); in snd_fm801_codec_write()
288 if (!fm801_ac97_is_ready(chip, 1000)) in snd_fm801_codec_write()
289 dev_err(chip->card->dev, "AC'97 interface #%d is busy (2)\n", in snd_fm801_codec_write()
295 struct fm801 *chip = ac97->private_data; in snd_fm801_codec_read() local
300 if (!fm801_ac97_is_ready(chip, 100)) { in snd_fm801_codec_read()
301 dev_err(chip->card->dev, "AC'97 interface is busy (1)\n"); in snd_fm801_codec_read()
306 fm801_writew(chip, AC97_CMD, in snd_fm801_codec_read()
308 if (!fm801_ac97_is_ready(chip, 100)) { in snd_fm801_codec_read()
309 dev_err(chip->card->dev, "AC'97 interface #%d is busy (2)\n", in snd_fm801_codec_read()
314 if (!fm801_ac97_is_valid(chip, 1000)) { in snd_fm801_codec_read()
315 dev_err(chip->card->dev, in snd_fm801_codec_read()
320 return fm801_readw(chip, AC97_DATA); in snd_fm801_codec_read()
367 struct fm801 *chip = snd_pcm_substream_chip(substream); in snd_fm801_playback_trigger() local
369 spin_lock(&chip->reg_lock); in snd_fm801_playback_trigger()
372 chip->ply_ctrl &= ~(FM801_BUF1_LAST | in snd_fm801_playback_trigger()
375 chip->ply_ctrl |= FM801_START | in snd_fm801_playback_trigger()
379 chip->ply_ctrl &= ~(FM801_START | FM801_PAUSE); in snd_fm801_playback_trigger()
383 chip->ply_ctrl |= FM801_PAUSE; in snd_fm801_playback_trigger()
387 chip->ply_ctrl &= ~FM801_PAUSE; in snd_fm801_playback_trigger()
390 spin_unlock(&chip->reg_lock); in snd_fm801_playback_trigger()
394 fm801_writew(chip, PLY_CTRL, chip->ply_ctrl); in snd_fm801_playback_trigger()
395 spin_unlock(&chip->reg_lock); in snd_fm801_playback_trigger()
402 struct fm801 *chip = snd_pcm_substream_chip(substream); in snd_fm801_capture_trigger() local
404 spin_lock(&chip->reg_lock); in snd_fm801_capture_trigger()
407 chip->cap_ctrl &= ~(FM801_BUF1_LAST | in snd_fm801_capture_trigger()
410 chip->cap_ctrl |= FM801_START | in snd_fm801_capture_trigger()
414 chip->cap_ctrl &= ~(FM801_START | FM801_PAUSE); in snd_fm801_capture_trigger()
418 chip->cap_ctrl |= FM801_PAUSE; in snd_fm801_capture_trigger()
422 chip->cap_ctrl &= ~FM801_PAUSE; in snd_fm801_capture_trigger()
425 spin_unlock(&chip->reg_lock); in snd_fm801_capture_trigger()
429 fm801_writew(chip, CAP_CTRL, chip->cap_ctrl); in snd_fm801_capture_trigger()
430 spin_unlock(&chip->reg_lock); in snd_fm801_capture_trigger()
447 struct fm801 *chip = snd_pcm_substream_chip(substream); in snd_fm801_playback_prepare() local
450 chip->ply_size = snd_pcm_lib_buffer_bytes(substream); in snd_fm801_playback_prepare()
451 chip->ply_count = snd_pcm_lib_period_bytes(substream); in snd_fm801_playback_prepare()
452 spin_lock_irq(&chip->reg_lock); in snd_fm801_playback_prepare()
453 chip->ply_ctrl &= ~(FM801_START | FM801_16BIT | in snd_fm801_playback_prepare()
457 chip->ply_ctrl |= FM801_16BIT; in snd_fm801_playback_prepare()
459 chip->ply_ctrl |= FM801_STEREO; in snd_fm801_playback_prepare()
461 chip->ply_ctrl |= FM801_CHANNELS_4; in snd_fm801_playback_prepare()
463 chip->ply_ctrl |= FM801_CHANNELS_6; in snd_fm801_playback_prepare()
465 chip->ply_ctrl |= snd_fm801_rate_bits(runtime->rate) << FM801_RATE_SHIFT; in snd_fm801_playback_prepare()
466 chip->ply_buf = 0; in snd_fm801_playback_prepare()
467 fm801_writew(chip, PLY_CTRL, chip->ply_ctrl); in snd_fm801_playback_prepare()
468 fm801_writew(chip, PLY_COUNT, chip->ply_count - 1); in snd_fm801_playback_prepare()
469 chip->ply_buffer = runtime->dma_addr; in snd_fm801_playback_prepare()
470 chip->ply_pos = 0; in snd_fm801_playback_prepare()
471 fm801_writel(chip, PLY_BUF1, chip->ply_buffer); in snd_fm801_playback_prepare()
472 fm801_writel(chip, PLY_BUF2, in snd_fm801_playback_prepare()
473 chip->ply_buffer + (chip->ply_count % chip->ply_size)); in snd_fm801_playback_prepare()
474 spin_unlock_irq(&chip->reg_lock); in snd_fm801_playback_prepare()
480 struct fm801 *chip = snd_pcm_substream_chip(substream); in snd_fm801_capture_prepare() local
483 chip->cap_size = snd_pcm_lib_buffer_bytes(substream); in snd_fm801_capture_prepare()
484 chip->cap_count = snd_pcm_lib_period_bytes(substream); in snd_fm801_capture_prepare()
485 spin_lock_irq(&chip->reg_lock); in snd_fm801_capture_prepare()
486 chip->cap_ctrl &= ~(FM801_START | FM801_16BIT | in snd_fm801_capture_prepare()
489 chip->cap_ctrl |= FM801_16BIT; in snd_fm801_capture_prepare()
491 chip->cap_ctrl |= FM801_STEREO; in snd_fm801_capture_prepare()
492 chip->cap_ctrl |= snd_fm801_rate_bits(runtime->rate) << FM801_RATE_SHIFT; in snd_fm801_capture_prepare()
493 chip->cap_buf = 0; in snd_fm801_capture_prepare()
494 fm801_writew(chip, CAP_CTRL, chip->cap_ctrl); in snd_fm801_capture_prepare()
495 fm801_writew(chip, CAP_COUNT, chip->cap_count - 1); in snd_fm801_capture_prepare()
496 chip->cap_buffer = runtime->dma_addr; in snd_fm801_capture_prepare()
497 chip->cap_pos = 0; in snd_fm801_capture_prepare()
498 fm801_writel(chip, CAP_BUF1, chip->cap_buffer); in snd_fm801_capture_prepare()
499 fm801_writel(chip, CAP_BUF2, in snd_fm801_capture_prepare()
500 chip->cap_buffer + (chip->cap_count % chip->cap_size)); in snd_fm801_capture_prepare()
501 spin_unlock_irq(&chip->reg_lock); in snd_fm801_capture_prepare()
507 struct fm801 *chip = snd_pcm_substream_chip(substream); in snd_fm801_playback_pointer() local
510 if (!(chip->ply_ctrl & FM801_START)) in snd_fm801_playback_pointer()
512 spin_lock(&chip->reg_lock); in snd_fm801_playback_pointer()
513 ptr = chip->ply_pos + (chip->ply_count - 1) - fm801_readw(chip, PLY_COUNT); in snd_fm801_playback_pointer()
514 if (fm801_readw(chip, IRQ_STATUS) & FM801_IRQ_PLAYBACK) { in snd_fm801_playback_pointer()
515 ptr += chip->ply_count; in snd_fm801_playback_pointer()
516 ptr %= chip->ply_size; in snd_fm801_playback_pointer()
518 spin_unlock(&chip->reg_lock); in snd_fm801_playback_pointer()
524 struct fm801 *chip = snd_pcm_substream_chip(substream); in snd_fm801_capture_pointer() local
527 if (!(chip->cap_ctrl & FM801_START)) in snd_fm801_capture_pointer()
529 spin_lock(&chip->reg_lock); in snd_fm801_capture_pointer()
530 ptr = chip->cap_pos + (chip->cap_count - 1) - fm801_readw(chip, CAP_COUNT); in snd_fm801_capture_pointer()
531 if (fm801_readw(chip, IRQ_STATUS) & FM801_IRQ_CAPTURE) { in snd_fm801_capture_pointer()
532 ptr += chip->cap_count; in snd_fm801_capture_pointer()
533 ptr %= chip->cap_size; in snd_fm801_capture_pointer()
535 spin_unlock(&chip->reg_lock); in snd_fm801_capture_pointer()
541 struct fm801 *chip = dev_id; in snd_fm801_interrupt() local
545 status = fm801_readw(chip, IRQ_STATUS); in snd_fm801_interrupt()
550 fm801_writew(chip, IRQ_STATUS, status); in snd_fm801_interrupt()
551 if (chip->pcm && (status & FM801_IRQ_PLAYBACK) && chip->playback_substream) { in snd_fm801_interrupt()
552 spin_lock(&chip->reg_lock); in snd_fm801_interrupt()
553 chip->ply_buf++; in snd_fm801_interrupt()
554 chip->ply_pos += chip->ply_count; in snd_fm801_interrupt()
555 chip->ply_pos %= chip->ply_size; in snd_fm801_interrupt()
556 tmp = chip->ply_pos + chip->ply_count; in snd_fm801_interrupt()
557 tmp %= chip->ply_size; in snd_fm801_interrupt()
558 if (chip->ply_buf & 1) in snd_fm801_interrupt()
559 fm801_writel(chip, PLY_BUF1, chip->ply_buffer + tmp); in snd_fm801_interrupt()
561 fm801_writel(chip, PLY_BUF2, chip->ply_buffer + tmp); in snd_fm801_interrupt()
562 spin_unlock(&chip->reg_lock); in snd_fm801_interrupt()
563 snd_pcm_period_elapsed(chip->playback_substream); in snd_fm801_interrupt()
565 if (chip->pcm && (status & FM801_IRQ_CAPTURE) && chip->capture_substream) { in snd_fm801_interrupt()
566 spin_lock(&chip->reg_lock); in snd_fm801_interrupt()
567 chip->cap_buf++; in snd_fm801_interrupt()
568 chip->cap_pos += chip->cap_count; in snd_fm801_interrupt()
569 chip->cap_pos %= chip->cap_size; in snd_fm801_interrupt()
570 tmp = chip->cap_pos + chip->cap_count; in snd_fm801_interrupt()
571 tmp %= chip->cap_size; in snd_fm801_interrupt()
572 if (chip->cap_buf & 1) in snd_fm801_interrupt()
573 fm801_writel(chip, CAP_BUF1, chip->cap_buffer + tmp); in snd_fm801_interrupt()
575 fm801_writel(chip, CAP_BUF2, chip->cap_buffer + tmp); in snd_fm801_interrupt()
576 spin_unlock(&chip->reg_lock); in snd_fm801_interrupt()
577 snd_pcm_period_elapsed(chip->capture_substream); in snd_fm801_interrupt()
579 if (chip->rmidi && (status & FM801_IRQ_MPU)) in snd_fm801_interrupt()
580 snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data); in snd_fm801_interrupt()
629 struct fm801 *chip = snd_pcm_substream_chip(substream); in snd_fm801_playback_open() local
633 chip->playback_substream = substream; in snd_fm801_playback_open()
637 if (chip->multichannel) { in snd_fm801_playback_open()
650 struct fm801 *chip = snd_pcm_substream_chip(substream); in snd_fm801_capture_open() local
654 chip->capture_substream = substream; in snd_fm801_capture_open()
665 struct fm801 *chip = snd_pcm_substream_chip(substream); in snd_fm801_playback_close() local
667 chip->playback_substream = NULL; in snd_fm801_playback_close()
673 struct fm801 *chip = snd_pcm_substream_chip(substream); in snd_fm801_capture_close() local
675 chip->capture_substream = NULL; in snd_fm801_capture_close()
701 static int snd_fm801_pcm(struct fm801 *chip, int device) in snd_fm801_pcm() argument
706 if ((err = snd_pcm_new(chip->card, "FM801", device, 1, 1, &pcm)) < 0) in snd_fm801_pcm()
712 pcm->private_data = chip; in snd_fm801_pcm()
715 chip->pcm = pcm; in snd_fm801_pcm()
718 snd_dma_pci_data(chip->pci), in snd_fm801_pcm()
719 chip->multichannel ? 128*1024 : 64*1024, 128*1024); in snd_fm801_pcm()
723 chip->multichannel ? 6 : 2, 0, in snd_fm801_pcm()
745 #define get_tea575x_gpio(chip) \ argument
746 (&snd_fm801_tea575x_gpios[((chip)->tea575x_tuner & TUNER_TYPE_MASK) - 1])
750 struct fm801 *chip = tea->private_data; in snd_fm801_tea575x_set_pins() local
751 unsigned short reg = fm801_readw(chip, GPIO_CTRL); in snd_fm801_tea575x_set_pins()
752 struct snd_fm801_tea575x_gpio gpio = *get_tea575x_gpio(chip); in snd_fm801_tea575x_set_pins()
763 fm801_writew(chip, GPIO_CTRL, reg); in snd_fm801_tea575x_set_pins()
768 struct fm801 *chip = tea->private_data; in snd_fm801_tea575x_get_pins() local
769 unsigned short reg = fm801_readw(chip, GPIO_CTRL); in snd_fm801_tea575x_get_pins()
770 struct snd_fm801_tea575x_gpio gpio = *get_tea575x_gpio(chip); in snd_fm801_tea575x_get_pins()
783 struct fm801 *chip = tea->private_data; in snd_fm801_tea575x_set_direction() local
784 unsigned short reg = fm801_readw(chip, GPIO_CTRL); in snd_fm801_tea575x_set_direction()
785 struct snd_fm801_tea575x_gpio gpio = *get_tea575x_gpio(chip); in snd_fm801_tea575x_set_direction()
815 fm801_writew(chip, GPIO_CTRL, reg); in snd_fm801_tea575x_set_direction()
849 struct fm801 *chip = snd_kcontrol_chip(kcontrol); in snd_fm801_get_single() local
855 ucontrol->value.integer.value[0] = (inw(chip->port + reg) >> shift) & mask; in snd_fm801_get_single()
864 struct fm801 *chip = snd_kcontrol_chip(kcontrol); in snd_fm801_put_single() local
874 return snd_fm801_update_bits(chip, reg, mask << shift, val << shift); in snd_fm801_put_single()
904 struct fm801 *chip = snd_kcontrol_chip(kcontrol); in snd_fm801_get_double() local
911 spin_lock_irq(&chip->reg_lock); in snd_fm801_get_double()
912 ucontrol->value.integer.value[0] = (inw(chip->port + reg) >> shift_left) & mask; in snd_fm801_get_double()
913 ucontrol->value.integer.value[1] = (inw(chip->port + reg) >> shift_right) & mask; in snd_fm801_get_double()
914 spin_unlock_irq(&chip->reg_lock); in snd_fm801_get_double()
925 struct fm801 *chip = snd_kcontrol_chip(kcontrol); in snd_fm801_put_double() local
939 return snd_fm801_update_bits(chip, reg, in snd_fm801_put_double()
957 struct fm801 *chip = snd_kcontrol_chip(kcontrol); in snd_fm801_get_mux() local
960 val = fm801_readw(chip, REC_SRC) & 7; in snd_fm801_get_mux()
970 struct fm801 *chip = snd_kcontrol_chip(kcontrol); in snd_fm801_put_mux() local
975 return snd_fm801_update_bits(chip, FM801_REC_SRC, 7, val); in snd_fm801_put_mux()
1014 struct fm801 *chip = bus->private_data; in snd_fm801_mixer_free_ac97_bus() local
1015 chip->ac97_bus = NULL; in snd_fm801_mixer_free_ac97_bus()
1020 struct fm801 *chip = ac97->private_data; in snd_fm801_mixer_free_ac97() local
1022 chip->ac97 = NULL; in snd_fm801_mixer_free_ac97()
1024 chip->ac97_sec = NULL; in snd_fm801_mixer_free_ac97()
1028 static int snd_fm801_mixer(struct fm801 *chip) in snd_fm801_mixer() argument
1038 if ((err = snd_ac97_bus(chip->card, 0, &ops, chip, &chip->ac97_bus)) < 0) in snd_fm801_mixer()
1040 chip->ac97_bus->private_free = snd_fm801_mixer_free_ac97_bus; in snd_fm801_mixer()
1043 ac97.private_data = chip; in snd_fm801_mixer()
1045 if ((err = snd_ac97_mixer(chip->ac97_bus, &ac97, &chip->ac97)) < 0) in snd_fm801_mixer()
1047 if (chip->secondary) { in snd_fm801_mixer()
1049 ac97.addr = chip->secondary_addr; in snd_fm801_mixer()
1050 if ((err = snd_ac97_mixer(chip->ac97_bus, &ac97, &chip->ac97_sec)) < 0) in snd_fm801_mixer()
1054 snd_ctl_add(chip->card, snd_ctl_new1(&snd_fm801_controls[i], chip)); in snd_fm801_mixer()
1055 if (chip->multichannel) { in snd_fm801_mixer()
1057 snd_ctl_add(chip->card, snd_ctl_new1(&snd_fm801_controls_multi[i], chip)); in snd_fm801_mixer()
1066 static int wait_for_codec(struct fm801 *chip, unsigned int codec_id, in wait_for_codec() argument
1071 fm801_writew(chip, AC97_CMD, in wait_for_codec()
1075 if ((fm801_readw(chip, AC97_CMD) & in wait_for_codec()
1083 static int snd_fm801_chip_init(struct fm801 *chip, int resume) in snd_fm801_chip_init() argument
1087 if (chip->tea575x_tuner & TUNER_ONLY) in snd_fm801_chip_init()
1091 fm801_writew(chip, CODEC_CTRL, (1 << 5) | (1 << 6)); in snd_fm801_chip_init()
1092 fm801_readw(chip, CODEC_CTRL); /* flush posting data */ in snd_fm801_chip_init()
1094 fm801_writew(chip, CODEC_CTRL, 0); in snd_fm801_chip_init()
1096 if (wait_for_codec(chip, 0, AC97_RESET, msecs_to_jiffies(750)) < 0) in snd_fm801_chip_init()
1098 dev_info(chip->card->dev, in snd_fm801_chip_init()
1100 chip->tea575x_tuner = 3 | TUNER_ONLY; in snd_fm801_chip_init()
1104 if (chip->multichannel) { in snd_fm801_chip_init()
1105 if (chip->secondary_addr) { in snd_fm801_chip_init()
1106 wait_for_codec(chip, chip->secondary_addr, in snd_fm801_chip_init()
1113 if (!wait_for_codec(chip, i, AC97_VENDOR_ID1, in snd_fm801_chip_init()
1115 cmdw = fm801_readw(chip, AC97_DATA); in snd_fm801_chip_init()
1117 chip->secondary = 1; in snd_fm801_chip_init()
1118 chip->secondary_addr = i; in snd_fm801_chip_init()
1127 wait_for_codec(chip, 0, AC97_VENDOR_ID1, msecs_to_jiffies(750)); in snd_fm801_chip_init()
1133 fm801_writew(chip, PCM_VOL, 0x0808); in snd_fm801_chip_init()
1134 fm801_writew(chip, FM_VOL, 0x9f1f); in snd_fm801_chip_init()
1135 fm801_writew(chip, I2S_VOL, 0x8808); in snd_fm801_chip_init()
1138 fm801_writew(chip, I2S_MODE, 0x0003); in snd_fm801_chip_init()
1141 cmdw = fm801_readw(chip, IRQ_MASK); in snd_fm801_chip_init()
1142 if (chip->irq < 0) in snd_fm801_chip_init()
1146 fm801_writew(chip, IRQ_MASK, cmdw); in snd_fm801_chip_init()
1149 fm801_writew(chip, IRQ_STATUS, in snd_fm801_chip_init()
1156 static int snd_fm801_free(struct fm801 *chip) in snd_fm801_free() argument
1160 if (chip->irq < 0) in snd_fm801_free()
1164 cmdw = fm801_readw(chip, IRQ_MASK); in snd_fm801_free()
1166 fm801_writew(chip, IRQ_MASK, cmdw); in snd_fm801_free()
1170 if (!(chip->tea575x_tuner & TUNER_DISABLED)) { in snd_fm801_free()
1171 snd_tea575x_exit(&chip->tea); in snd_fm801_free()
1172 v4l2_device_unregister(&chip->v4l2_dev); in snd_fm801_free()
1180 struct fm801 *chip = device->device_data; in snd_fm801_dev_free() local
1181 return snd_fm801_free(chip); in snd_fm801_dev_free()
1190 struct fm801 *chip; in snd_fm801_create() local
1199 chip = devm_kzalloc(&pci->dev, sizeof(*chip), GFP_KERNEL); in snd_fm801_create()
1200 if (chip == NULL) in snd_fm801_create()
1202 spin_lock_init(&chip->reg_lock); in snd_fm801_create()
1203 chip->card = card; in snd_fm801_create()
1204 chip->pci = pci; in snd_fm801_create()
1205 chip->irq = -1; in snd_fm801_create()
1206 chip->tea575x_tuner = tea575x_tuner; in snd_fm801_create()
1209 chip->port = pci_resource_start(pci, 0); in snd_fm801_create()
1212 IRQF_SHARED, KBUILD_MODNAME, chip)) { in snd_fm801_create()
1214 snd_fm801_free(chip); in snd_fm801_create()
1217 chip->irq = pci->irq; in snd_fm801_create()
1222 chip->multichannel = 1; in snd_fm801_create()
1224 snd_fm801_chip_init(chip, 0); in snd_fm801_create()
1226 tea575x_tuner = chip->tea575x_tuner; in snd_fm801_create()
1228 if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops)) < 0) { in snd_fm801_create()
1229 snd_fm801_free(chip); in snd_fm801_create()
1234 err = v4l2_device_register(&pci->dev, &chip->v4l2_dev); in snd_fm801_create()
1236 snd_fm801_free(chip); in snd_fm801_create()
1239 chip->tea.v4l2_dev = &chip->v4l2_dev; in snd_fm801_create()
1240 chip->tea.radio_nr = radio_nr; in snd_fm801_create()
1241 chip->tea.private_data = chip; in snd_fm801_create()
1242 chip->tea.ops = &snd_fm801_tea_ops; in snd_fm801_create()
1243 sprintf(chip->tea.bus_info, "PCI:%s", pci_name(pci)); in snd_fm801_create()
1246 if (snd_tea575x_init(&chip->tea, THIS_MODULE)) { in snd_fm801_create()
1248 snd_fm801_free(chip); in snd_fm801_create()
1254 chip->tea575x_tuner = tea575x_tuner; in snd_fm801_create()
1255 if (!snd_tea575x_init(&chip->tea, THIS_MODULE)) { in snd_fm801_create()
1258 get_tea575x_gpio(chip)->name); in snd_fm801_create()
1264 chip->tea575x_tuner = TUNER_DISABLED; in snd_fm801_create()
1267 if (!(chip->tea575x_tuner & TUNER_DISABLED)) { in snd_fm801_create()
1268 strlcpy(chip->tea.card, get_tea575x_gpio(chip)->name, in snd_fm801_create()
1269 sizeof(chip->tea.card)); in snd_fm801_create()
1273 *rchip = chip; in snd_fm801_create()
1282 struct fm801 *chip; in snd_card_fm801_probe() local
1297 if ((err = snd_fm801_create(card, pci, tea575x_tuner[dev], radio_nr[dev], &chip)) < 0) { in snd_card_fm801_probe()
1301 card->private_data = chip; in snd_card_fm801_probe()
1305 strcat(card->shortname, chip->multichannel ? "AU" : "AS"); in snd_card_fm801_probe()
1307 card->shortname, chip->port, chip->irq); in snd_card_fm801_probe()
1309 if (chip->tea575x_tuner & TUNER_ONLY) in snd_card_fm801_probe()
1312 if ((err = snd_fm801_pcm(chip, 0)) < 0) { in snd_card_fm801_probe()
1316 if ((err = snd_fm801_mixer(chip)) < 0) { in snd_card_fm801_probe()
1321 chip->port + FM801_MPU401_DATA, in snd_card_fm801_probe()
1324 -1, &chip->rmidi)) < 0) { in snd_card_fm801_probe()
1328 if ((err = snd_opl3_create(card, chip->port + FM801_OPL3_BANK0, in snd_card_fm801_probe()
1329 chip->port + FM801_OPL3_BANK1, in snd_card_fm801_probe()
1365 struct fm801 *chip = card->private_data; in snd_fm801_suspend() local
1369 snd_pcm_suspend_all(chip->pcm); in snd_fm801_suspend()
1370 snd_ac97_suspend(chip->ac97); in snd_fm801_suspend()
1371 snd_ac97_suspend(chip->ac97_sec); in snd_fm801_suspend()
1373 chip->saved_regs[i] = inw(chip->port + saved_regs[i]); in snd_fm801_suspend()
1381 struct fm801 *chip = card->private_data; in snd_fm801_resume() local
1384 snd_fm801_chip_init(chip, 1); in snd_fm801_resume()
1385 snd_ac97_resume(chip->ac97); in snd_fm801_resume()
1386 snd_ac97_resume(chip->ac97_sec); in snd_fm801_resume()
1388 outw(chip->saved_regs[i], chip->port + saved_regs[i]); in snd_fm801_resume()