#if defined(CONFIG_PM) && defined(CONFIG_PMAC_PBOOK) 
#ifdef CONFIG_PM 
static int snd_pmac_free(pmac_t *chip){	/* stop sounds */	if (chip->initialized) {		snd_pmac_dbdma_reset(chip);		/* disable interrupts from awacs interface */		out_le32(&chip->awacs->control, in_le32(&chip->awacs->control) & 0xfff);	}	snd_pmac_sound_feature(chip, 0);#if defined(CONFIG_PM) && defined(CONFIG_PMAC_PBOOK)	snd_pmac_unregister_sleep_notifier(chip);#endif	/* clean up mixer if any */	if (chip->mixer_free)		chip->mixer_free(chip);	snd_pmac_detach_beep(chip);	/* release resources */	if (chip->irq >= 0)		free_irq(chip->irq, (void*)chip);	if (chip->tx_irq >= 0)		free_irq(chip->tx_irq, (void*)chip);	if (chip->rx_irq >= 0)		free_irq(chip->rx_irq, (void*)chip);	snd_pmac_dbdma_free(chip, &chip->playback.cmd);	snd_pmac_dbdma_free(chip, &chip->capture.cmd);	snd_pmac_dbdma_free(chip, &chip->extra_dma);	if (chip->macio_base)		iounmap(chip->macio_base);	if (chip->latch_base)		iounmap(chip->latch_base);	if (chip->awacs)		iounmap(chip->awacs);	if (chip->playback.dma)		iounmap(chip->playback.dma);	if (chip->capture.dma)		iounmap(chip->capture.dma);#ifndef CONFIG_PPC64	if (chip->node) {		int i;		for (i = 0; i < 3; i++) {			if (chip->of_requested & (1 << i)) {				if (chip->is_k2)					release_OF_resource(chip->node->parent,							    i);				else					release_OF_resource(chip->node, i);			}		}	}#endif /* CONFIG_PPC64 */	if (chip->pdev)		pci_dev_put(chip->pdev);	kfree(chip);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/8c8709334cec803368a432a33e0f2e116d48fe07/pmac.c/buggy/sound/ppc/pmac.c