struct sil24_port_priv *pp = ap->private_data; void *port = pp->port;
void *port = (void *)ap->ioaddr.cmd_addr;
static void sil24_error_intr(struct ata_port *ap, u32 slot_stat){	struct ata_queued_cmd *qc = ata_qc_from_tag(ap, ap->active_tag);	struct sil24_port_priv *pp = ap->private_data;	void *port = pp->port;	u32 irq_stat, cmd_err, sstatus, serror;	irq_stat = readl(port + PORT_IRQ_STAT);	cmd_err = readl(port + PORT_CMD_ERR);	sstatus = readl(port + PORT_SSTATUS);	serror = readl(port + PORT_SERROR);	/* Clear IRQ/errors */	writel(irq_stat, port + PORT_IRQ_STAT);	if (cmd_err)		writel(cmd_err, port + PORT_CMD_ERR);	if (serror)		writel(serror, port + PORT_SERROR);	printk(KERN_ERR DRV_NAME " ata%u: error interrupt on port%d\n"	       "  stat=0x%x irq=0x%x cmd_err=%d sstatus=0x%x serror=0x%x\n",	       ap->id, ap->port_no, slot_stat, irq_stat, cmd_err, sstatus, serror);	if (qc)		ata_qc_complete(qc, ATA_ERR);	sil24_reset_controller(ap);}