Lines Matching refs:iwcard
210 static int snd_interwave_detect_stb(struct snd_interwave *iwcard, in snd_interwave_detect_stb() argument
216 struct snd_card *card = iwcard->card; in snd_interwave_detect_stb()
228 if ((iwcard->i2c_res = request_region(port, 1, "InterWave (I2C bus)")) != NULL) in snd_interwave_detect_stb()
233 iwcard->i2c_res = request_region(port, 1, "InterWave (I2C bus)"); in snd_interwave_detect_stb()
235 if (iwcard->i2c_res == NULL) { in snd_interwave_detect_stb()
252 static int snd_interwave_detect(struct snd_interwave *iwcard, in snd_interwave_detect() argument
292 return snd_interwave_detect_stb(iwcard, gus, dev, rbus); in snd_interwave_detect()
301 struct snd_interwave *iwcard = dev_id; in snd_interwave_interrupt() local
307 if (inb(iwcard->gus_status_reg)) { in snd_interwave_interrupt()
309 snd_gus_interrupt(irq, iwcard->gus); in snd_interwave_interrupt()
312 if (inb(iwcard->pcm_status_reg) & 0x01) { /* IRQ bit is set? */ in snd_interwave_interrupt()
314 snd_wss_interrupt(irq, iwcard->wss); in snd_interwave_interrupt()
554 static int snd_interwave_pnp(int dev, struct snd_interwave *iwcard, in snd_interwave_pnp() argument
561 iwcard->dev = pnp_request_card_device(card, id->devs[0].id, NULL); in snd_interwave_pnp()
562 if (iwcard->dev == NULL) in snd_interwave_pnp()
566 iwcard->devtc = pnp_request_card_device(card, id->devs[1].id, NULL); in snd_interwave_pnp()
567 if (iwcard->devtc == NULL) in snd_interwave_pnp()
571 pdev = iwcard->dev; in snd_interwave_pnp()
595 pdev = iwcard->devtc; in snd_interwave_pnp()
611 struct snd_interwave *iwcard = card->private_data; in snd_interwave_free() local
613 if (iwcard == NULL) in snd_interwave_free()
616 release_and_free_resource(iwcard->i2c_res); in snd_interwave_free()
618 if (iwcard->irq >= 0) in snd_interwave_free()
619 free_irq(iwcard->irq, (void *)iwcard); in snd_interwave_free()
626 struct snd_interwave *iwcard; in snd_interwave_card_new() local
633 iwcard = card->private_data; in snd_interwave_card_new()
634 iwcard->card = card; in snd_interwave_card_new()
635 iwcard->irq = -1; in snd_interwave_card_new()
644 struct snd_interwave *iwcard = card->private_data; in snd_interwave_probe() local
664 if ((err = snd_interwave_detect(iwcard, gus, dev in snd_interwave_probe()
671 iwcard->gus_status_reg = gus->gf1.reg_irqstat; in snd_interwave_probe()
672 iwcard->pcm_status_reg = gus->gf1.port + 0x10c + 2; in snd_interwave_probe()
680 "InterWave", iwcard)) { in snd_interwave_probe()
684 iwcard->irq = xirq; in snd_interwave_probe()
767 iwcard->wss = wss; in snd_interwave_probe()
768 iwcard->gus = gus; in snd_interwave_probe()