• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/char/

Lines Matching refs:soft

199 static inline int mbcs_getdma_start(struct mbcs_soft *soft)
206 mmr_base = soft->mmr_base;
207 gdma = &soft->getdma;
239 static inline int mbcs_putdma_start(struct mbcs_soft *soft)
246 mmr_base = soft->mmr_base;
247 pdma = &soft->putdma;
279 static inline int mbcs_algo_start(struct mbcs_soft *soft)
281 struct algoblock *algo_soft = &soft->algo;
282 void *mmr_base = soft->mmr_base;
285 if (down_interruptible(&soft->algolock))
288 atomic_set(&soft->algo_done, 0);
302 up(&soft->algolock);
308 do_mbcs_sram_dmawrite(struct mbcs_soft *soft, uint64_t hostAddr,
313 if (down_interruptible(&soft->dmawritelock))
316 atomic_set(&soft->dmawrite_done, 0);
318 soft->putdma.hostAddr = hostAddr;
319 soft->putdma.localAddr = *off;
320 soft->putdma.bytes = len;
322 if (mbcs_putdma_start(soft) < 0) {
329 if (wait_event_interruptible(soft->dmawrite_queue,
330 atomic_read(&soft->dmawrite_done))) {
339 up(&soft->dmawritelock);
345 do_mbcs_sram_dmaread(struct mbcs_soft *soft, uint64_t hostAddr,
350 if (down_interruptible(&soft->dmareadlock))
353 atomic_set(&soft->dmawrite_done, 0);
355 soft->getdma.hostAddr = hostAddr;
356 soft->getdma.localAddr = *off;
357 soft->getdma.bytes = len;
359 if (mbcs_getdma_start(soft) < 0) {
365 if (wait_event_interruptible(soft->dmaread_queue,
366 atomic_read(&soft->dmaread_done))) {
375 up(&soft->dmareadlock);
382 struct mbcs_soft *soft;
387 list_for_each_entry(soft, &soft_list, list) {
388 if (soft->nasid == minor) {
389 fp->private_data = soft->cxdev;
400 struct mbcs_soft *soft = cx_dev->soft;
408 rv = do_mbcs_sram_dmawrite(soft, hostAddr, len, off);
425 struct mbcs_soft *soft = cx_dev->soft;
438 rv = do_mbcs_sram_dmaread(soft, hostAddr, len, off);
475 static uint64_t mbcs_pioaddr(struct mbcs_soft *soft, uint64_t offset)
479 mmr_base = (uint64_t) (soft->mmr_base + offset);
484 static void mbcs_debug_pioaddr_set(struct mbcs_soft *soft)
486 soft->debug_addr = mbcs_pioaddr(soft, MBCS_DEBUG_START);
489 static void mbcs_gscr_pioaddr_set(struct mbcs_soft *soft)
491 soft->gscr_addr = mbcs_pioaddr(soft, MBCS_GSCR_START);
497 struct mbcs_soft *soft = cx_dev->soft;
507 __pa(soft->gscr_addr) >> PAGE_SHIFT,
518 * @arg: soft struct for device
524 struct mbcs_soft *soft = (struct mbcs_soft *)arg;
529 mmr_base = soft->mmr_base;
539 atomic_set(&soft->dmaread_done, 1);
540 wake_up(&soft->dmaread_queue);
549 atomic_set(&soft->dmawrite_done, 1);
550 wake_up(&soft->dmawrite_queue);
559 atomic_set(&soft->algo_done, 1);
560 wake_up(&soft->algo_queue);
574 struct mbcs_soft *soft;
579 soft = dev->soft;
580 getdma = &soft->getdma;
581 putdma = &soft->putdma;
582 algo = &soft->algo;
584 soft->get_sn_irq = NULL;
585 soft->put_sn_irq = NULL;
586 soft->algo_sn_irq = NULL;
591 soft->get_sn_irq = sn_irq;
596 "MBCS get intr", (void *)soft)) {
597 tiocx_irq_free(soft->get_sn_irq);
603 free_irq(soft->get_sn_irq->irq_irq, soft);
604 tiocx_irq_free(soft->get_sn_irq);
607 soft->put_sn_irq = sn_irq;
612 "MBCS put intr", (void *)soft)) {
613 tiocx_irq_free(soft->put_sn_irq);
614 free_irq(soft->get_sn_irq->irq_irq, soft);
615 tiocx_irq_free(soft->get_sn_irq);
621 free_irq(soft->put_sn_irq->irq_irq, soft);
622 tiocx_irq_free(soft->put_sn_irq);
623 free_irq(soft->get_sn_irq->irq_irq, soft);
624 tiocx_irq_free(soft->get_sn_irq);
627 soft->algo_sn_irq = sn_irq;
632 "MBCS algo intr", (void *)soft)) {
633 tiocx_irq_free(soft->algo_sn_irq);
634 free_irq(soft->put_sn_irq->irq_irq, soft);
635 tiocx_irq_free(soft->put_sn_irq);
636 free_irq(soft->get_sn_irq->irq_irq, soft);
637 tiocx_irq_free(soft->get_sn_irq);
651 struct mbcs_soft *soft;
653 soft = dev->soft;
655 free_irq(soft->get_sn_irq->irq_irq, soft);
656 tiocx_irq_free(soft->get_sn_irq);
657 free_irq(soft->put_sn_irq->irq_irq, soft);
658 tiocx_irq_free(soft->put_sn_irq);
659 free_irq(soft->algo_sn_irq->irq_irq, soft);
660 tiocx_irq_free(soft->algo_sn_irq);
663 static inline int mbcs_hw_init(struct mbcs_soft *soft)
665 void *mmr_base = soft->mmr_base;
677 mbcs_gscr_pioaddr_set(soft);
678 mbcs_debug_pioaddr_set(soft);
704 struct mbcs_soft *soft = cx_dev->soft;
711 debug0 = *(uint64_t *) soft->debug_addr;
721 struct mbcs_soft *soft = cx_dev->soft;
729 mbcs_algo_start(soft);
730 if (wait_event_interruptible(soft->algo_queue,
731 atomic_read(&soft->algo_done)))
748 struct mbcs_soft *soft;
750 dev->soft = NULL;
752 soft = kzalloc(sizeof(struct mbcs_soft), GFP_KERNEL);
753 if (soft == NULL)
756 soft->nasid = dev->cx_id.nasid;
757 list_add(&soft->list, &soft_list);
758 soft->mmr_base = (void *)tiocx_swin_base(dev->cx_id.nasid);
759 dev->soft = soft;
760 soft->cxdev = dev;
762 init_waitqueue_head(&soft->dmawrite_queue);
763 init_waitqueue_head(&soft->dmaread_queue);
764 init_waitqueue_head(&soft->algo_queue);
766 init_MUTEX(&soft->dmawritelock);
767 init_MUTEX(&soft->dmareadlock);
768 init_MUTEX(&soft->algolock);
770 mbcs_getdma_init(&soft->getdma);
771 mbcs_putdma_init(&soft->putdma);
772 mbcs_algo_init(&soft->algo);
774 mbcs_hw_init(soft);
786 if (dev->soft) {
788 kfree(dev->soft);