snd_printk("architecture does not support 28bit PCI busmaster DMA\n"); 
snd_printk(KERN_ERR "architecture does not support 28bit PCI busmaster DMA\n"); 
static int __devinit snd_es1968_create(snd_card_t * card,				       struct pci_dev *pci,				       int total_bufsize,				       int play_streams,				       int capt_streams,				       int chip_type,				       int do_pm,				       es1968_t **chip_ret){	static snd_device_ops_t ops = {		.dev_free =	snd_es1968_dev_free,	};	es1968_t *chip;	int i, err;	*chip_ret = NULL;	/* enable PCI device */	if ((err = pci_enable_device(pci)) < 0)		return err;	/* check, if we can restrict PCI DMA transfers to 28 bits */	if (pci_set_dma_mask(pci, 0x0fffffff) < 0 ||	    pci_set_consistent_dma_mask(pci, 0x0fffffff) < 0) {		snd_printk("architecture does not support 28bit PCI busmaster DMA\n");		pci_disable_device(pci);		return -ENXIO;	}	chip = kzalloc(sizeof(*chip), GFP_KERNEL);	if (! chip) {		pci_disable_device(pci);		return -ENOMEM;	}	/* Set Vars */	chip->type = chip_type;	spin_lock_init(&chip->reg_lock);	spin_lock_init(&chip->substream_lock);	INIT_LIST_HEAD(&chip->buf_list);	INIT_LIST_HEAD(&chip->substream_list);	spin_lock_init(&chip->ac97_lock);	init_MUTEX(&chip->memory_mutex);	tasklet_init(&chip->hwvol_tq, es1968_update_hw_volume, (unsigned long)chip);	chip->card = card;	chip->pci = pci;	chip->irq = -1;	chip->total_bufsize = total_bufsize;	/* in bytes */	chip->playback_streams = play_streams;	chip->capture_streams = capt_streams;	if ((err = pci_request_regions(pci, "ESS Maestro")) < 0) {		kfree(chip);		pci_disable_device(pci);		return err;	}	chip->io_port = pci_resource_start(pci, 0);	if (request_irq(pci->irq, snd_es1968_interrupt, SA_INTERRUPT|SA_SHIRQ,			"ESS Maestro", (void*)chip)) {		snd_printk("unable to grab IRQ %d\n", pci->irq);		snd_es1968_free(chip);		return -EBUSY;	}	chip->irq = pci->irq;	        	/* Clear Maestro_map */	for (i = 0; i < 32; i++)		chip->maestro_map[i] = 0;	/* Clear Apu Map */	for (i = 0; i < NR_APUS; i++)		chip->apu[i] = ESM_APU_FREE;	/* just to be sure */	pci_set_master(pci);	if (do_pm > 1) {		/* disable power-management if not on the whitelist */		unsigned short vend;		pci_read_config_word(chip->pci, PCI_SUBSYSTEM_VENDOR_ID, &vend);		for (i = 0; i < (int)ARRAY_SIZE(pm_whitelist); i++) {			if (chip->type == pm_whitelist[i].type &&			    vend == pm_whitelist[i].vendor) {				do_pm = 1;				break;			}		}		if (do_pm > 1) {			/* not matched; disabling pm */			printk(KERN_INFO "es1968: not attempting power management.\n");			do_pm = 0;		}	}	chip->do_pm = do_pm;	snd_es1968_chip_init(chip);	if (chip->do_pm)		snd_card_set_pm_callback(card, es1968_suspend, es1968_resume, chip);	if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops)) < 0) {		snd_es1968_free(chip);		return err;	}	snd_card_set_dev(card, &pci->dev);	*chip_ret = chip;	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/99b359ba10a582148c6725f428a33ba5356dd993/es1968.c/buggy/sound/pci/es1968.c