static int pmz_suspend(struct macio_dev *mdev, u32 pm_state) 
static int pmz_suspend(struct macio_dev *mdev, pm_message_t pm_state) 
static int pmz_suspend(struct macio_dev *mdev, u32 pm_state){	struct uart_pmac_port *uap = dev_get_drvdata(&mdev->ofdev.dev);	struct uart_state *state;	unsigned long flags;	if (uap == NULL) {		printk("HRM... pmz_suspend with NULL uap\n");		return 0;	}	if (pm_state == mdev->ofdev.dev.power.power_state || pm_state < 2)		return 0;	pmz_debug("suspend, switching to state %d\n", pm_state);	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)) {		/* Disable receiver and transmitter.  */		uap->curregs[R3] &= ~RxENABLE;		uap->curregs[R5] &= ~TxENABLE;		/* Disable all interrupts and BRK assertion.  */		uap->curregs[R1] &= ~(EXT_INT_ENAB | TxINT_ENAB | RxINT_MASK);		uap->curregs[R5] &= ~SND_BRK;		pmz_load_zsregs(uap, uap->curregs);		uap->flags |= PMACZILOG_FLAG_IS_ASLEEP;		mb();	}	spin_unlock_irqrestore(&uap->port.lock, flags);	if (ZS_IS_OPEN(uap) || ZS_IS_OPEN(uap->mate))		if (ZS_IS_ASLEEP(uap->mate) && ZS_IS_IRQ_ON(pmz_get_port_A(uap))) {			pmz_get_port_A(uap)->flags &= ~PMACZILOG_FLAG_IS_IRQ_ON;			disable_irq(uap->port.irq);		}	if (ZS_IS_CONS(uap))		uap->port.cons->flags &= ~CON_ENABLED;	/* Shut the chip down */	pmz_set_scc_power(uap, 0);	up(&state->sem);	up(&pmz_irq_sem);	pmz_debug("suspend, switching complete\n");	mdev->ofdev.dev.power.power_state = pm_state;	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/0370affeec3e751412e917aab931d8ba52680578/pmac_zilog.c/buggy/drivers/serial/pmac_zilog.c