mdev->ofdev.dev.power.power_state = 0; 
mdev->ofdev.dev.power.power_state.event = PM_EVENT_ON; 
static int pmz_resume(struct macio_dev *mdev){	struct uart_pmac_port *uap = dev_get_drvdata(&mdev->ofdev.dev);	struct uart_state *state;	unsigned long flags;	int pwr_delay = 0;	if (uap == NULL)		return 0;	if (mdev->ofdev.dev.power.power_state == 0)		return 0;		pmz_debug("resume, switching to state 0\n");	state = pmz_uart_reg.state + uap->port.line;	down(&pmz_irq_sem);	down(&state->sem);	spin_lock_irqsave(&uap->port.lock, flags);	if (!ZS_IS_OPEN(uap) && !ZS_IS_CONS(uap)) {		spin_unlock_irqrestore(&uap->port.lock, flags);		goto bail;	}	pwr_delay = __pmz_startup(uap);	/* Take care of config that may have changed while asleep */	__pmz_set_termios(&uap->port, &uap->termios_cache, NULL);	if (ZS_IS_OPEN(uap)) {		/* Enable interrupts */				uap->curregs[R1] |= INT_ALL_Rx | TxINT_ENAB;		if (!ZS_IS_EXTCLK(uap))			uap->curregs[R1] |= EXT_INT_ENAB;		write_zsreg(uap, R1, uap->curregs[R1]);	}	spin_unlock_irqrestore(&uap->port.lock, flags);	if (ZS_IS_CONS(uap))		uap->port.cons->flags |= CON_ENABLED;	/* Re-enable IRQ on the controller */	if (ZS_IS_OPEN(uap) && !ZS_IS_IRQ_ON(pmz_get_port_A(uap))) {		pmz_get_port_A(uap)->flags |= PMACZILOG_FLAG_IS_IRQ_ON;		enable_irq(uap->port.irq);	} bail:	up(&state->sem);	up(&pmz_irq_sem);	/* Right now, we deal with delay by blocking here, I'll be	 * smarter later on	 */	if (pwr_delay != 0) {		pmz_debug("pmz: delaying %d ms\n", pwr_delay);		msleep(pwr_delay);	}	pmz_debug("resume, switching complete\n");	mdev->ofdev.dev.power.power_state = 0;	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/ca078bae813dd46c0f9b102fdfb4a3384641ff48/pmac_zilog.c/clean/drivers/serial/pmac_zilog.c