Lines Matching refs:fibptr
100 struct fib *fibptr = NULL; in aac_fib_vector_assign() local
102 for (i = 0, fibptr = &dev->fibs[i]; in aac_fib_vector_assign()
104 i++, fibptr++) { in aac_fib_vector_assign()
108 fibptr->vector_no = 0; in aac_fib_vector_assign()
110 fibptr->vector_no = vector; in aac_fib_vector_assign()
128 struct fib *fibptr; in aac_fib_setup() local
160 for (i = 0, fibptr = &dev->fibs[i]; in aac_fib_setup()
162 i++, fibptr++) in aac_fib_setup()
164 fibptr->flags = 0; in aac_fib_setup()
165 fibptr->dev = dev; in aac_fib_setup()
166 fibptr->hw_fib_va = hw_fib; in aac_fib_setup()
167 fibptr->data = (void *) fibptr->hw_fib_va->data; in aac_fib_setup()
168 fibptr->next = fibptr+1; /* Forward chain the fibs */ in aac_fib_setup()
169 sema_init(&fibptr->event_wait, 0); in aac_fib_setup()
170 spin_lock_init(&fibptr->event_lock); in aac_fib_setup()
173 fibptr->hw_fib_pa = hw_fib_pa; in aac_fib_setup()
206 struct fib * fibptr; in aac_fib_alloc() local
209 fibptr = dev->free_fib; in aac_fib_alloc()
210 if(!fibptr){ in aac_fib_alloc()
212 return fibptr; in aac_fib_alloc()
214 dev->free_fib = fibptr->next; in aac_fib_alloc()
219 fibptr->type = FSAFS_NTC_FIB_CONTEXT; in aac_fib_alloc()
220 fibptr->size = sizeof(struct fib); in aac_fib_alloc()
225 fibptr->hw_fib_va->header.XferState = 0; in aac_fib_alloc()
226 fibptr->flags = 0; in aac_fib_alloc()
227 fibptr->callback = NULL; in aac_fib_alloc()
228 fibptr->callback_data = NULL; in aac_fib_alloc()
230 return fibptr; in aac_fib_alloc()
240 void aac_fib_free(struct fib *fibptr) in aac_fib_free() argument
244 if (fibptr->done == 2) in aac_fib_free()
247 spin_lock_irqsave(&fibptr->dev->fib_lock, flags); in aac_fib_free()
248 if (unlikely(fibptr->flags & FIB_CONTEXT_FLAG_TIMED_OUT)) in aac_fib_free()
250 if (fibptr->hw_fib_va->header.XferState != 0) { in aac_fib_free()
252 (void*)fibptr, in aac_fib_free()
253 le32_to_cpu(fibptr->hw_fib_va->header.XferState)); in aac_fib_free()
255 fibptr->next = fibptr->dev->free_fib; in aac_fib_free()
256 fibptr->dev->free_fib = fibptr; in aac_fib_free()
257 spin_unlock_irqrestore(&fibptr->dev->fib_lock, flags); in aac_fib_free()
267 void aac_fib_init(struct fib *fibptr) in aac_fib_init() argument
269 struct hw_fib *hw_fib = fibptr->hw_fib_va; in aac_fib_init()
273 hw_fib->header.Size = cpu_to_le16(fibptr->dev->max_fib_size); in aac_fib_init()
275 hw_fib->header.u.ReceiverFibAddress = cpu_to_le32(fibptr->hw_fib_pa); in aac_fib_init()
276 hw_fib->header.SenderSize = cpu_to_le16(fibptr->dev->max_fib_size); in aac_fib_init()
287 static void fib_dealloc(struct fib * fibptr) in fib_dealloc() argument
289 struct hw_fib *hw_fib = fibptr->hw_fib_va; in fib_dealloc()
375 …ev, u32 * index, u32 qid, struct hw_fib * hw_fib, int wait, struct fib * fibptr, unsigned long *no… in aac_queue_get() argument
408 entry->addr = cpu_to_le32(fibptr->hw_fib_pa); in aac_queue_get()
437 int aac_fib_send(u16 command, struct fib *fibptr, unsigned long size, in aac_fib_send() argument
441 struct aac_dev * dev = fibptr->dev; in aac_fib_send()
442 struct hw_fib * hw_fib = fibptr->hw_fib_va; in aac_fib_send()
461 fibptr->flags = 0; in aac_fib_send()
478 hw_fib->header.SenderFibAddress = cpu_to_le32(((u32)(fibptr - dev->fibs)) << 2); in aac_fib_send()
479 hw_fib->header.Handle = (u32)(fibptr - dev->fibs) + 1; in aac_fib_send()
507 fibptr->callback = callback; in aac_fib_send()
508 fibptr->callback_data = callback_data; in aac_fib_send()
509 fibptr->flags = FIB_CONTEXT_FLAG; in aac_fib_send()
512 fibptr->done = 0; in aac_fib_send()
518 …bCommand = %d.\n", le32_to_cpu(((struct aac_query_mount *)fib_data(fibptr))->command))); in aac_fib_send()
520 dprintk((KERN_DEBUG " hw_fib va being sent=%p\n",fibptr->hw_fib_va)); in aac_fib_send()
521 dprintk((KERN_DEBUG " hw_fib pa being sent=%lx\n",(ulong)fibptr->hw_fib_pa)); in aac_fib_send()
522 dprintk((KERN_DEBUG " fib being sent=%p\n",fibptr)); in aac_fib_send()
538 spin_lock_irqsave(&fibptr->event_lock, flags); in aac_fib_send()
543 spin_unlock_irqrestore(&fibptr->event_lock, flags); in aac_fib_send()
546 list_add_tail(&fibptr->fiblink, &dev->sync_fib_list); in aac_fib_send()
549 dev->sync_fib = fibptr; in aac_fib_send()
552 (u32)fibptr->hw_fib_pa, 0, 0, 0, 0, 0, in aac_fib_send()
556 fibptr->flags |= FIB_CONTEXT_FLAG_WAIT; in aac_fib_send()
557 if (down_interruptible(&fibptr->event_wait)) { in aac_fib_send()
558 fibptr->flags &= ~FIB_CONTEXT_FLAG_WAIT; in aac_fib_send()
566 if (aac_adapter_deliver(fibptr) != 0) { in aac_fib_send()
569 spin_unlock_irqrestore(&fibptr->event_lock, flags); in aac_fib_send()
583 spin_unlock_irqrestore(&fibptr->event_lock, flags); in aac_fib_send()
593 while (down_trylock(&fibptr->event_wait)) { in aac_fib_send()
619 } else if (down_interruptible(&fibptr->event_wait)) { in aac_fib_send()
624 spin_lock_irqsave(&fibptr->event_lock, flags); in aac_fib_send()
625 if (fibptr->done == 0) { in aac_fib_send()
626 fibptr->done = 2; /* Tell interrupt we aborted */ in aac_fib_send()
627 spin_unlock_irqrestore(&fibptr->event_lock, flags); in aac_fib_send()
630 spin_unlock_irqrestore(&fibptr->event_lock, flags); in aac_fib_send()
631 BUG_ON(fibptr->done == 0); in aac_fib_send()
633 if(unlikely(fibptr->flags & FIB_CONTEXT_FLAG_TIMED_OUT)) in aac_fib_send()
729 int aac_fib_adapter_complete(struct fib *fibptr, unsigned short size) in aac_fib_adapter_complete() argument
731 struct hw_fib * hw_fib = fibptr->hw_fib_va; in aac_fib_adapter_complete()
732 struct aac_dev * dev = fibptr->dev; in aac_fib_adapter_complete()
800 int aac_fib_complete(struct fib *fibptr) in aac_fib_complete() argument
802 struct hw_fib * hw_fib = fibptr->hw_fib_va; in aac_fib_complete()
828 fib_dealloc(fibptr); in aac_fib_complete()
836 fib_dealloc(fibptr); in aac_fib_complete()
838 fib_dealloc(fibptr); in aac_fib_complete()
889 static void aac_handle_aif(struct aac_dev * dev, struct fib * fibptr) in aac_handle_aif() argument
891 struct hw_fib * hw_fib = fibptr->hw_fib_va; in aac_handle_aif()
1933 struct fib *fibptr; in aac_command_thread() local
1935 if ((fibptr = aac_fib_alloc(dev))) { in aac_command_thread()
1939 aac_fib_init(fibptr); in aac_command_thread()
1941 info = (__le32 *) fib_data(fibptr); in aac_command_thread()
1948 fibptr, in aac_command_thread()
1957 aac_fib_complete(fibptr); in aac_command_thread()
1961 aac_fib_free(fibptr); in aac_command_thread()