• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/scsi/aacraid/

Lines Matching defs:fibptr

100 	struct fib *fibptr;
119 for (i = 0, fibptr = &dev->fibs[i];
121 i++, fibptr++)
123 fibptr->dev = dev;
124 fibptr->hw_fib_va = hw_fib;
125 fibptr->data = (void *) fibptr->hw_fib_va->data;
126 fibptr->next = fibptr+1; /* Forward chain the fibs */
127 init_MUTEX_LOCKED(&fibptr->event_wait);
128 spin_lock_init(&fibptr->event_lock);
131 fibptr->hw_fib_pa = hw_fib_pa;
156 struct fib * fibptr;
159 fibptr = dev->free_fib;
160 if(!fibptr){
162 return fibptr;
164 dev->free_fib = fibptr->next;
169 fibptr->type = FSAFS_NTC_FIB_CONTEXT;
170 fibptr->size = sizeof(struct fib);
175 fibptr->hw_fib_va->header.XferState = 0;
176 fibptr->flags = 0;
177 fibptr->callback = NULL;
178 fibptr->callback_data = NULL;
180 return fibptr;
185 * @fibptr: fib to free up
190 void aac_fib_free(struct fib *fibptr)
194 spin_lock_irqsave(&fibptr->event_lock, flagsv);
195 if (fibptr->done == 2) {
196 spin_unlock_irqrestore(&fibptr->event_lock, flagsv);
199 spin_unlock_irqrestore(&fibptr->event_lock, flagsv);
201 spin_lock_irqsave(&fibptr->dev->fib_lock, flags);
202 if (unlikely(fibptr->flags & FIB_CONTEXT_FLAG_TIMED_OUT))
204 if (fibptr->hw_fib_va->header.XferState != 0) {
205 printk(KERN_WARNING "aac_fib_free, XferState != 0, fibptr = 0x%p, XferState = 0x%x\n",
206 (void*)fibptr,
207 le32_to_cpu(fibptr->hw_fib_va->header.XferState));
209 fibptr->next = fibptr->dev->free_fib;
210 fibptr->dev->free_fib = fibptr;
211 spin_unlock_irqrestore(&fibptr->dev->fib_lock, flags);
216 * @fibptr: The fib to initialize
221 void aac_fib_init(struct fib *fibptr)
223 struct hw_fib *hw_fib = fibptr->hw_fib_va;
226 hw_fib->header.Size = cpu_to_le16(fibptr->dev->max_fib_size);
229 hw_fib->header.ReceiverFibAddress = cpu_to_le32(fibptr->hw_fib_pa);
230 hw_fib->header.SenderSize = cpu_to_le16(fibptr->dev->max_fib_size);
235 * @fibptr: fib to deallocate
241 static void fib_dealloc(struct fib * fibptr)
243 struct hw_fib *hw_fib = fibptr->hw_fib_va;
321 * @fibptr: Driver fib object to go with fib
330 int aac_queue_get(struct aac_dev * dev, u32 * index, u32 qid, struct hw_fib * hw_fib, int wait, struct fib * fibptr, unsigned long *nonotify)
363 entry->addr = cpu_to_le32(fibptr->hw_fib_pa);
378 * @fibptr: The fib
392 int aac_fib_send(u16 command, struct fib *fibptr, unsigned long size,
396 struct aac_dev * dev = fibptr->dev;
397 struct hw_fib * hw_fib = fibptr->hw_fib_va;
416 fibptr->flags = 0;
433 hw_fib->header.SenderFibAddress = cpu_to_le32(((u32)(fibptr - dev->fibs)) << 2);
434 hw_fib->header.SenderData = (u32)(fibptr - dev->fibs);
444 fibptr->hw_fib_va->header.Flags = 0; /* 0 the flags field - internal only*/
463 fibptr->callback = callback;
464 fibptr->callback_data = callback_data;
465 fibptr->flags = FIB_CONTEXT_FLAG;
468 fibptr->done = 0;
474 dprintk((KERN_DEBUG " SubCommand = %d.\n", le32_to_cpu(((struct aac_query_mount *)fib_data(fibptr))->command)));
476 dprintk((KERN_DEBUG " hw_fib va being sent=%p\n",fibptr->hw_fib_va));
477 dprintk((KERN_DEBUG " hw_fib pa being sent=%lx\n",(ulong)fibptr->hw_fib_pa));
478 dprintk((KERN_DEBUG " fib being sent=%p\n",fibptr));
494 spin_lock_irqsave(&fibptr->event_lock, flags);
497 if (aac_adapter_deliver(fibptr) != 0) {
500 spin_unlock_irqrestore(&fibptr->event_lock, flags);
514 spin_unlock_irqrestore(&fibptr->event_lock, flags);
524 while (down_trylock(&fibptr->event_wait)) {
549 } else if (down_interruptible(&fibptr->event_wait)) {
554 spin_lock_irqsave(&fibptr->event_lock, flags);
555 if (fibptr->done == 0) {
556 fibptr->done = 2; /* Tell interrupt we aborted */
557 spin_unlock_irqrestore(&fibptr->event_lock, flags);
560 spin_unlock_irqrestore(&fibptr->event_lock, flags);
561 BUG_ON(fibptr->done == 0);
563 if(unlikely(fibptr->flags & FIB_CONTEXT_FLAG_TIMED_OUT))
652 * @fibptr: fib to complete
659 int aac_fib_adapter_complete(struct fib *fibptr, unsigned short size)
661 struct hw_fib * hw_fib = fibptr->hw_fib_va;
662 struct aac_dev * dev = fibptr->dev;
722 int aac_fib_complete(struct fib *fibptr)
725 struct hw_fib * hw_fib = fibptr->hw_fib_va;
745 spin_lock_irqsave(&fibptr->event_lock, flags);
746 if (fibptr->done == 2) {
747 spin_unlock_irqrestore(&fibptr->event_lock, flags);
750 spin_unlock_irqrestore(&fibptr->event_lock, flags);
755 fib_dealloc(fibptr);
763 fib_dealloc(fibptr);
765 fib_dealloc(fibptr);
809 * @fibptr: Pointer to fibptr from adapter
816 static void aac_handle_aif(struct aac_dev * dev, struct fib * fibptr)
818 struct hw_fib * hw_fib = fibptr->hw_fib_va;
1820 struct fib *fibptr;
1822 if ((fibptr = aac_fib_alloc(dev))) {
1826 aac_fib_init(fibptr);
1828 info = (__le32 *) fib_data(fibptr);
1835 fibptr,
1844 aac_fib_complete(fibptr);
1848 aac_fib_free(fibptr);