Lines Matching refs:dev

36 	struct aac_dev *dev = dev_id;  in aac_sa_intr()  local
39 intstat = sa_readw(dev, DoorbellReg_p); in aac_sa_intr()
44 mask = ~(sa_readw(dev, SaDbCSR.PRISETIRQMASK)); in aac_sa_intr()
50 aac_printf(dev, sa_readl(dev, Mailbox5)); in aac_sa_intr()
51 sa_writew(dev, DoorbellClrReg_p, PrintfReady); /* clear PrintfReady */ in aac_sa_intr()
52 sa_writew(dev, DoorbellReg_s, PrintfDone); in aac_sa_intr()
54 sa_writew(dev, DoorbellClrReg_p, DOORBELL_1); in aac_sa_intr()
55 aac_command_normal(&dev->queues->queue[HostNormCmdQueue]); in aac_sa_intr()
57 sa_writew(dev, DoorbellClrReg_p, DOORBELL_2); in aac_sa_intr()
58 aac_response_normal(&dev->queues->queue[HostNormRespQueue]); in aac_sa_intr()
60 sa_writew(dev, DoorbellClrReg_p, DOORBELL_3); in aac_sa_intr()
62 sa_writew(dev, DoorbellClrReg_p, DOORBELL_4); in aac_sa_intr()
74 static void aac_sa_disable_interrupt (struct aac_dev *dev) in aac_sa_disable_interrupt() argument
76 sa_writew(dev, SaDbCSR.PRISETIRQMASK, 0xffff); in aac_sa_disable_interrupt()
84 static void aac_sa_enable_interrupt (struct aac_dev *dev) in aac_sa_enable_interrupt() argument
86 sa_writew(dev, SaDbCSR.PRICLEARIRQMASK, (PrintfReady | DOORBELL_1 | in aac_sa_enable_interrupt()
98 static void aac_sa_notify_adapter(struct aac_dev *dev, u32 event) in aac_sa_notify_adapter() argument
103 sa_writew(dev, DoorbellReg_s,DOORBELL_1); in aac_sa_notify_adapter()
106 sa_writew(dev, DoorbellReg_s,DOORBELL_4); in aac_sa_notify_adapter()
109 sa_writew(dev, DoorbellReg_s,DOORBELL_2); in aac_sa_notify_adapter()
112 sa_writew(dev, DoorbellReg_s,DOORBELL_3); in aac_sa_notify_adapter()
121 sa_writew(dev, DoorbellReg_s,DOORBELL_6); in aac_sa_notify_adapter()
124 sa_writew(dev, DoorbellReg_s,DOORBELL_5); in aac_sa_notify_adapter()
152 static int sa_sync_cmd(struct aac_dev *dev, u32 command, in sa_sync_cmd() argument
161 sa_writel(dev, Mailbox0, command); in sa_sync_cmd()
165 sa_writel(dev, Mailbox1, p1); in sa_sync_cmd()
166 sa_writel(dev, Mailbox2, p2); in sa_sync_cmd()
167 sa_writel(dev, Mailbox3, p3); in sa_sync_cmd()
168 sa_writel(dev, Mailbox4, p4); in sa_sync_cmd()
173 sa_writew(dev, DoorbellClrReg_p, DOORBELL_0); in sa_sync_cmd()
177 sa_writew(dev, DoorbellReg_s, DOORBELL_0); in sa_sync_cmd()
192 if(sa_readw(dev, DoorbellReg_p) & DOORBELL_0) { in sa_sync_cmd()
204 sa_writew(dev, DoorbellClrReg_p, DOORBELL_0); in sa_sync_cmd()
209 *ret = sa_readl(dev, Mailbox0); in sa_sync_cmd()
211 *r1 = sa_readl(dev, Mailbox1); in sa_sync_cmd()
213 *r2 = sa_readl(dev, Mailbox2); in sa_sync_cmd()
215 *r3 = sa_readl(dev, Mailbox3); in sa_sync_cmd()
217 *r4 = sa_readl(dev, Mailbox4); in sa_sync_cmd()
228 static void aac_sa_interrupt_adapter (struct aac_dev *dev) in aac_sa_interrupt_adapter() argument
230 sa_sync_cmd(dev, BREAKPOINT_REQUEST, 0, 0, 0, 0, 0, 0, in aac_sa_interrupt_adapter()
241 static void aac_sa_start_adapter(struct aac_dev *dev) in aac_sa_start_adapter() argument
247 init = dev->init; in aac_sa_start_adapter()
250 sa_sync_cmd(dev, INIT_STRUCT_BASE_ADDRESS, in aac_sa_start_adapter()
251 (u32)(ulong)dev->init_pa, 0, 0, 0, 0, 0, in aac_sa_start_adapter()
255 static int aac_sa_restart_adapter(struct aac_dev *dev, int bled, u8 reset_type) in aac_sa_restart_adapter() argument
267 static int aac_sa_check_health(struct aac_dev *dev) in aac_sa_check_health() argument
269 long status = sa_readl(dev, Mailbox7); in aac_sa_check_health()
298 static int aac_sa_ioremap(struct aac_dev * dev, u32 size) in aac_sa_ioremap() argument
301 iounmap(dev->regs.sa); in aac_sa_ioremap()
304 dev->base = dev->regs.sa = ioremap(dev->base_start, size); in aac_sa_ioremap()
305 return (dev->base == NULL) ? -1 : 0; in aac_sa_ioremap()
317 int aac_sa_init(struct aac_dev *dev) in aac_sa_init() argument
324 instance = dev->id; in aac_sa_init()
325 name = dev->name; in aac_sa_init()
331 dev->a_ops.adapter_interrupt = aac_sa_interrupt_adapter; in aac_sa_init()
332 dev->a_ops.adapter_disable_int = aac_sa_disable_interrupt; in aac_sa_init()
333 dev->a_ops.adapter_enable_int = aac_sa_enable_interrupt; in aac_sa_init()
334 dev->a_ops.adapter_notify = aac_sa_notify_adapter; in aac_sa_init()
335 dev->a_ops.adapter_sync_cmd = sa_sync_cmd; in aac_sa_init()
336 dev->a_ops.adapter_check_health = aac_sa_check_health; in aac_sa_init()
337 dev->a_ops.adapter_restart = aac_sa_restart_adapter; in aac_sa_init()
338 dev->a_ops.adapter_start = aac_sa_start_adapter; in aac_sa_init()
339 dev->a_ops.adapter_intr = aac_sa_intr; in aac_sa_init()
340 dev->a_ops.adapter_deliver = aac_rx_deliver_producer; in aac_sa_init()
341 dev->a_ops.adapter_ioremap = aac_sa_ioremap; in aac_sa_init()
343 if (aac_sa_ioremap(dev, dev->base_size)) { in aac_sa_init()
351 if (sa_readl(dev, Mailbox7) & SELF_TEST_FAILED) { in aac_sa_init()
358 if (sa_readl(dev, Mailbox7) & KERNEL_PANIC) { in aac_sa_init()
366 while (!(sa_readl(dev, Mailbox7) & KERNEL_UP_AND_RUNNING)) { in aac_sa_init()
368 status = sa_readl(dev, Mailbox7); in aac_sa_init()
380 aac_adapter_disable_int(dev); in aac_sa_init()
381 aac_adapter_enable_int(dev); in aac_sa_init()
383 if(aac_init_adapter(dev) == NULL) in aac_sa_init()
385 dev->sync_mode = 0; /* sync. mode not supported */ in aac_sa_init()
386 if (request_irq(dev->pdev->irq, dev->a_ops.adapter_intr, in aac_sa_init()
387 IRQF_SHARED, "aacraid", (void *)dev) < 0) { in aac_sa_init()
392 dev->dbg_base = dev->base_start; in aac_sa_init()
393 dev->dbg_base_mapped = dev->base; in aac_sa_init()
394 dev->dbg_size = dev->base_size; in aac_sa_init()
396 aac_adapter_enable_int(dev); in aac_sa_init()
402 aac_sa_start_adapter(dev); in aac_sa_init()
406 aac_sa_disable_interrupt(dev); in aac_sa_init()
407 free_irq(dev->pdev->irq, (void *)dev); in aac_sa_init()