pbus->shared_type = AC97_SHARED_TYPE_ATIIXP;	/* shared with audio driver */ 
static int __devinit snd_atiixp_mixer_new(atiixp_t *chip, int clock){	ac97_bus_t *pbus;	ac97_template_t ac97;	int i, err;	int codec_count;	static ac97_bus_ops_t ops = {		.write = snd_atiixp_ac97_write,		.read = snd_atiixp_ac97_read,	};	static unsigned int codec_skip[NUM_ATI_CODECS] = {		ATI_REG_ISR_CODEC0_NOT_READY,		ATI_REG_ISR_CODEC1_NOT_READY,		ATI_REG_ISR_CODEC2_NOT_READY,	};	if (snd_atiixp_codec_detect(chip) < 0)		return -ENXIO;	if ((err = snd_ac97_bus(chip->card, 0, &ops, chip, &pbus)) < 0)		return err;	pbus->clock = clock;	pbus->shared_type = AC97_SHARED_TYPE_ATIIXP;	/* shared with audio driver */	chip->ac97_bus = pbus;	codec_count = 0;	for (i = 0; i < NUM_ATI_CODECS; i++) {		if (chip->codec_not_ready_bits & codec_skip[i])			continue;		memset(&ac97, 0, sizeof(ac97));		ac97.private_data = chip;		ac97.pci = chip->pci;		ac97.num = i;		ac97.scaps = AC97_SCAP_SKIP_AUDIO;		if ((err = snd_ac97_mixer(pbus, &ac97, &chip->ac97[i])) < 0) {			chip->ac97[i] = NULL; /* to be sure */			snd_printdd("atiixp-modem: codec %d not available for modem\n", i);			continue;		}		codec_count++;	}	if (! codec_count) {		snd_printk(KERN_ERR "atiixp-modem: no codec available\n");		return -ENODEV;	}	/* snd_ac97_tune_hardware(chip->ac97, ac97_quirks); */	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/2ba71978c04d4dba983b4fc658f82eae164c2bca/atiixp_modem.c/buggy/sound/pci/atiixp_modem.c