/* Enable clock spreading */ pmac_tweak_clock_spreading(macio, 1);  
core99_wake_up(void){	struct macio_chip* macio;	int i;	macio = &macio_chips[0];	if (macio->type != macio_keylargo && macio->type != macio_pangea &&	    macio->type != macio_intrepid)		return -ENODEV;	/*	 * Wakeup the host bridge	 */	UN_OUT(UNI_N_POWER_MGT, UNI_N_POWER_MGT_NORMAL);	udelay(10);	UN_OUT(UNI_N_HWINIT_STATE, UNI_N_HWINIT_STATE_RUNNING);	udelay(10);	/*	 * Restore KeyLargo	 */	if (macio->type == macio_keylargo) {		MACIO_OUT32(KEYLARGO_MBCR, save_mbcr);		(void)MACIO_IN32(KEYLARGO_MBCR); udelay(10);	}	MACIO_OUT32(KEYLARGO_FCR0, save_fcr[0]);	(void)MACIO_IN32(KEYLARGO_FCR0); udelay(10);	MACIO_OUT32(KEYLARGO_FCR1, save_fcr[1]);	(void)MACIO_IN32(KEYLARGO_FCR1); udelay(10);	MACIO_OUT32(KEYLARGO_FCR2, save_fcr[2]);	(void)MACIO_IN32(KEYLARGO_FCR2); udelay(10);	MACIO_OUT32(KEYLARGO_FCR3, save_fcr[3]);	(void)MACIO_IN32(KEYLARGO_FCR3); udelay(10);	MACIO_OUT32(KEYLARGO_FCR4, save_fcr[4]);	(void)MACIO_IN32(KEYLARGO_FCR4); udelay(10);	if (macio->type == macio_pangea || macio->type == macio_intrepid) {		MACIO_OUT32(KEYLARGO_FCR5, save_fcr[5]);		(void)MACIO_IN32(KEYLARGO_FCR5); udelay(10);	}	dbdma_restore(macio, save_dbdma);	MACIO_OUT32(KEYLARGO_GPIO_LEVELS0, save_gpio_levels[0]);	MACIO_OUT32(KEYLARGO_GPIO_LEVELS1, save_gpio_levels[1]);	for (i=0; i<KEYLARGO_GPIO_EXTINT_CNT; i++)		MACIO_OUT8(KEYLARGO_GPIO_EXTINT_0+i, save_gpio_extint[i]);	for (i=0; i<KEYLARGO_GPIO_CNT; i++)		MACIO_OUT8(KEYLARGO_GPIO_0+i, save_gpio_normal[i]);	/* FIXME more black magic with OpenPIC ... */	if (pmac_mb.model_id == PMAC_TYPE_SAWTOOTH) {		MACIO_BIC(0x506e0, 0x00400000);		MACIO_BIC(0x506e0, 0x80000000);	}	UN_OUT(UNI_N_CLOCK_CNTL, save_unin_clock_ctl);	udelay(100);	/* Enable clock spreading */	pmac_tweak_clock_spreading(macio, 1);	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/e521dca64e0f82d844928c5ee88d82fdced50cbe/pmac_feature.c/buggy/arch/ppc/platforms/pmac_feature.c