• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/arch/sparc/mm/

Lines Matching refs:iounit

40 	struct iounit_struct *iounit;
43 iounit = kzalloc(sizeof(struct iounit_struct), GFP_ATOMIC);
44 if (!iounit) {
45 prom_printf("SUN4D: Cannot alloc iounit, halting.\n");
49 iounit->limit[0] = IOUNIT_BMAP1_START;
50 iounit->limit[1] = IOUNIT_BMAP2_START;
51 iounit->limit[2] = IOUNIT_BMAPM_START;
52 iounit->limit[3] = IOUNIT_BMAPM_END;
53 iounit->rotor[1] = IOUNIT_BMAP2_START;
54 iounit->rotor[2] = IOUNIT_BMAPM_START;
62 op->dev.archdata.iommu = iounit;
63 iounit->page_table = xpt;
64 spin_lock_init(&iounit->lock);
66 for (xptend = iounit->page_table + (16 * PAGE_SIZE) / sizeof(iopte_t);
90 /* One has to hold iounit->lock to call this */
91 static unsigned long iounit_get_area(struct iounit_struct *iounit, unsigned long vaddr, int size)
109 rotor = iounit->rotor[j - 1];
110 limit = iounit->limit[j];
112 nexti: scan = find_next_zero_bit(iounit->bmap, limit, scan);
116 scan = iounit->limit[j - 1];
125 if (test_bit(scan++, iounit->bmap))
127 iounit->rotor[j - 1] = (scan < limit) ? scan : iounit->limit[j - 1];
132 set_bit(scan, iounit->bmap);
133 iounit->page_table[scan] = iopte;
141 struct iounit_struct *iounit = dev->archdata.iommu;
144 spin_lock_irqsave(&iounit->lock, flags);
145 ret = iounit_get_area(iounit, (unsigned long)vaddr, len);
146 spin_unlock_irqrestore(&iounit->lock, flags);
152 struct iounit_struct *iounit = dev->archdata.iommu;
155 spin_lock_irqsave(&iounit->lock, flags);
158 sg->dma_address = iounit_get_area(iounit, (unsigned long) sg_virt(sg), sg->length);
162 spin_unlock_irqrestore(&iounit->lock, flags);
167 struct iounit_struct *iounit = dev->archdata.iommu;
170 spin_lock_irqsave(&iounit->lock, flags);
175 clear_bit(vaddr, iounit->bmap);
176 spin_unlock_irqrestore(&iounit->lock, flags);
181 struct iounit_struct *iounit = dev->archdata.iommu;
185 spin_lock_irqsave(&iounit->lock, flags);
192 clear_bit(vaddr, iounit->bmap);
195 spin_unlock_irqrestore(&iounit->lock, flags);
201 struct iounit_struct *iounit = dev->archdata.iommu;
226 iopte = (iopte_t *)(iounit->page_table + i);