drivers/atm/eni.c
1030
struct eni_dev *eni_dev;
drivers/atm/eni.c
1044
eni_dev = ENI_DEV(vcc->dev);
drivers/atm/eni.c
1045
NULLCHECK(eni_dev);
drivers/atm/eni.c
1113
paddr = dma_map_single(&eni_dev->pci_dev->dev,skb->data,skb->len,
drivers/atm/eni.c
1115
if (dma_mapping_error(&eni_dev->pci_dev->dev, paddr))
drivers/atm/eni.c
1120
eni_dev->dma[j++] = (((tx->tx_pos+TX_DESCR_SIZE) & (tx->words-1)) <<
drivers/atm/eni.c
1125
if (aal5) put_dma(tx->index,eni_dev->dma,&j,paddr,skb->len);
drivers/atm/eni.c
1126
else put_dma(tx->index,eni_dev->dma,&j,paddr+4,skb->len-4);
drivers/atm/eni.c
1131
put_dma(tx->index,eni_dev->dma,&j,(unsigned long)
drivers/atm/eni.c
1135
put_dma(tx->index,eni_dev->dma,&j,(unsigned long)
drivers/atm/eni.c
1141
put_dma(tx->index, eni_dev->dma, &j, eni_dev->zero.dma,
drivers/atm/eni.c
1145
eni_dev->dma[j++] = (((tx->tx_pos+size) & (tx->words-1)) <<
drivers/atm/eni.c
1166
writel(eni_dev->dma[i*2],eni_dev->tx_dma+dma_wr*8);
drivers/atm/eni.c
1167
writel(eni_dev->dma[i*2+1],eni_dev->tx_dma+dma_wr*8+4);
drivers/atm/eni.c
1176
skb_queue_tail(&eni_dev->tx_queue,skb);
drivers/atm/eni.c
1208
struct eni_dev *eni_dev;
drivers/atm/eni.c
1214
eni_dev = ENI_DEV(dev);
drivers/atm/eni.c
1215
NULLCHECK(eni_dev);
drivers/atm/eni.c
1216
while ((skb = skb_dequeue(&eni_dev->tx_queue))) {
drivers/atm/eni.c
1225
skb_queue_head(&eni_dev->tx_queue,skb);
drivers/atm/eni.c
1229
dma_unmap_single(&eni_dev->pci_dev->dev,ENI_PRV_PADDR(skb),skb->len,
drivers/atm/eni.c
1234
wake_up(&eni_dev->tx_wait);
drivers/atm/eni.c
1240
static struct eni_tx *alloc_tx(struct eni_dev *eni_dev,int ubr)
drivers/atm/eni.c
1245
if (!eni_dev->tx[i].send) return eni_dev->tx+i;
drivers/atm/eni.c
1250
static int comp_tx(struct eni_dev *eni_dev,int *pcr,int reserved,int *pre,
drivers/atm/eni.c
1270
if (!*pcr) *pcr = eni_dev->tx_bw+reserved;
drivers/atm/eni.c
1290
struct eni_dev *eni_dev = ENI_DEV(vcc->dev);
drivers/atm/eni.c
1304
size = txtp->max_sdu*eni_dev->tx_mult/100;
drivers/atm/eni.c
1310
if (eni_dev->ubr) {
drivers/atm/eni.c
1311
eni_vcc->tx = eni_dev->ubr;
drivers/atm/eni.c
1321
mem = eni_alloc_mem(eni_dev,&size);
drivers/atm/eni.c
1323
tx = alloc_tx(eni_dev,unlimited);
drivers/atm/eni.c
1325
eni_free_mem(eni_dev,mem,size);
drivers/atm/eni.c
1335
((tx->send-eni_dev->ram) >> (MID_LOC_SKIP+2)),
drivers/atm/eni.c
1340
error = comp_tx(eni_dev,&rate,tx->reserved,&pre,&res,unlimited);
drivers/atm/eni.c
1344
if (!error && !ubr && rate > eni_dev->tx_bw+tx->reserved)
drivers/atm/eni.c
1353
eni_free_mem(eni_dev,mem,size);
drivers/atm/eni.c
1359
eni_dev->tx_bw += tx->reserved;
drivers/atm/eni.c
1361
eni_dev->tx_bw -= rate;
drivers/atm/eni.c
1364
if (unlimited && new_tx) eni_dev->ubr = tx;
drivers/atm/eni.c
1393
struct eni_dev *eni_dev;
drivers/atm/eni.c
1398
eni_dev = ENI_DEV(vcc->dev);
drivers/atm/eni.c
1401
add_wait_queue(&eni_dev->tx_wait,&wait);
drivers/atm/eni.c
1406
tasklet_disable(&eni_dev->task);
drivers/atm/eni.c
1408
tasklet_enable(&eni_dev->task);
drivers/atm/eni.c
1415
remove_wait_queue(&eni_dev->tx_wait,&wait);
drivers/atm/eni.c
1416
if (eni_vcc->tx != eni_dev->ubr) {
drivers/atm/eni.c
1425
eni_free_mem(eni_dev,eni_vcc->tx->send,eni_vcc->tx->words << 2);
drivers/atm/eni.c
1427
eni_dev->tx_bw += eni_vcc->tx->reserved;
drivers/atm/eni.c
1435
struct eni_dev *eni_dev;
drivers/atm/eni.c
1438
eni_dev = ENI_DEV(dev);
drivers/atm/eni.c
1439
eni_dev->lost = 0;
drivers/atm/eni.c
1440
eni_dev->tx_bw = ATM_OC3_PCR;
drivers/atm/eni.c
1441
eni_dev->tx_mult = DEFAULT_TX_MULT;
drivers/atm/eni.c
1442
init_waitqueue_head(&eni_dev->tx_wait);
drivers/atm/eni.c
1443
eni_dev->ubr = NULL;
drivers/atm/eni.c
1444
skb_queue_head_init(&eni_dev->tx_queue);
drivers/atm/eni.c
1447
eni_dev->tx[i].send = NULL;
drivers/atm/eni.c
1448
eni_dev->tx[i].index = i;
drivers/atm/eni.c
1493
struct eni_dev *eni_dev;
drivers/atm/eni.c
1498
eni_dev = ENI_DEV(dev);
drivers/atm/eni.c
1509
eni_dev->lost += eni_in(MID_STAT) & MID_OVFL_TRASH;
drivers/atm/eni.c
1518
spin_lock(&eni_dev->lock);
drivers/atm/eni.c
1519
eni_dev->events |= reason;
drivers/atm/eni.c
1520
spin_unlock(&eni_dev->lock);
drivers/atm/eni.c
1521
tasklet_schedule(&eni_dev->task);
drivers/atm/eni.c
1529
struct eni_dev *eni_dev = ENI_DEV(dev);
drivers/atm/eni.c
1534
spin_lock_irqsave(&eni_dev->lock,flags);
drivers/atm/eni.c
1535
events = xchg(&eni_dev->events,0);
drivers/atm/eni.c
1536
spin_unlock_irqrestore(&eni_dev->lock,flags);
drivers/atm/eni.c
154
#define eni_in(r) readl(eni_dev->reg+(r)*4)
drivers/atm/eni.c
155
#define eni_out(v,r) writel((v),eni_dev->reg+(r)*4)
drivers/atm/eni.c
1559
wake_up(&eni_dev->tx_wait);
drivers/atm/eni.c
1587
pci_error = pci_write_config_byte(eni_dev->pci_dev,PCI_TONGA_CTRL,tonga); \
drivers/atm/eni.c
1592
pci_error = pci_read_config_byte(eni_dev->pci_dev,PCI_TONGA_CTRL,&tonga); \
drivers/atm/eni.c
1599
struct eni_dev *eni_dev;
drivers/atm/eni.c
1604
eni_dev = ENI_DEV(dev);
drivers/atm/eni.c
161
static void dump_mem(struct eni_dev *eni_dev)
drivers/atm/eni.c
165
for (i = 0; i < eni_dev->free_len; i++)
drivers/atm/eni.c
167
eni_dev->free_list[i].start,
drivers/atm/eni.c
168
1 << eni_dev->free_list[i].order);
drivers/atm/eni.c
1703
struct eni_dev *eni_dev;
drivers/atm/eni.c
1713
eni_dev = ENI_DEV(dev);
drivers/atm/eni.c
1714
pci_dev = eni_dev->pci_dev;
drivers/atm/eni.c
1716
eni_dev->irq = pci_dev->irq;
drivers/atm/eni.c
1719
(eni_dev->asic ? PCI_COMMAND_PARITY | PCI_COMMAND_SERR : 0)))) {
drivers/atm/eni.c
1725
dev->number,pci_dev->revision,real_base,eni_dev->irq);
drivers/atm/eni.c
1732
eni_dev->ioaddr = base;
drivers/atm/eni.c
1733
eni_dev->base_diff = real_base - (unsigned long) base;
drivers/atm/eni.c
1735
if (!eni_dev->asic) {
drivers/atm/eni.c
174
struct eni_dev *eni_dev;
drivers/atm/eni.c
1747
eni_dev->phy = base+PHY_BASE;
drivers/atm/eni.c
1748
eni_dev->reg = base+REG_BASE;
drivers/atm/eni.c
1749
eni_dev->ram = base+RAM_BASE;
drivers/atm/eni.c
1752
writel(0x55555555,eni_dev->ram+i);
drivers/atm/eni.c
1753
if (readl(eni_dev->ram+i) != 0x55555555) last = i;
drivers/atm/eni.c
1755
writel(0xAAAAAAAA,eni_dev->ram+i);
drivers/atm/eni.c
1756
if (readl(eni_dev->ram+i) != 0xAAAAAAAA) last = i;
drivers/atm/eni.c
1757
else writel(i,eni_dev->ram+i);
drivers/atm/eni.c
1761
if (readl(eni_dev->ram+i) != i) break;
drivers/atm/eni.c
1762
eni_dev->mem = i;
drivers/atm/eni.c
1763
memset_io(eni_dev->ram,0,eni_dev->mem);
drivers/atm/eni.c
1765
printk("mem=%dkB (",eni_dev->mem >> 10);
drivers/atm/eni.c
1767
if (!(eni_in(MID_RES_ID_MCON) & 0x200) != !eni_dev->asic) {
drivers/atm/eni.c
1774
error = eni_dev->asic ? get_esi_asic(dev) : get_esi_fpga(dev,base);
drivers/atm/eni.c
178
eni_dev = ENI_DEV(dev);
drivers/atm/eni.c
1796
struct eni_dev *ed = ENI_DEV(dev);
drivers/atm/eni.c
180
dump_mem(eni_dev);
drivers/atm/eni.c
1805
struct eni_dev *eni_dev;
drivers/atm/eni.c
1812
eni_dev = ENI_DEV(dev);
drivers/atm/eni.c
1813
if (request_irq(eni_dev->irq,&eni_int,IRQF_SHARED,DEV_LABEL,dev)) {
drivers/atm/eni.c
1815
dev->number,eni_dev->irq);
drivers/atm/eni.c
1819
pci_set_master(eni_dev->pci_dev);
drivers/atm/eni.c
1820
if ((error = pci_write_config_word(eni_dev->pci_dev,PCI_COMMAND,
drivers/atm/eni.c
1822
(eni_dev->asic ? PCI_COMMAND_PARITY | PCI_COMMAND_SERR : 0)))) {
drivers/atm/eni.c
1827
if ((error = pci_write_config_byte(eni_dev->pci_dev,PCI_TONGA_CTRL,
drivers/atm/eni.c
183
if (eni_dev->tx[i].send)
drivers/atm/eni.c
1834
eni_dev->vci = eni_dev->ram;
drivers/atm/eni.c
1835
eni_dev->rx_dma = eni_dev->ram+NR_VCI*16;
drivers/atm/eni.c
1836
eni_dev->tx_dma = eni_dev->rx_dma+NR_DMA_RX*8;
drivers/atm/eni.c
1837
eni_dev->service = eni_dev->tx_dma+NR_DMA_TX*8;
drivers/atm/eni.c
1838
buf = eni_dev->service+NR_SERVICE*4;
drivers/atm/eni.c
1840
eni_dev->vci,eni_dev->rx_dma,eni_dev->tx_dma,
drivers/atm/eni.c
1841
eni_dev->service,buf);
drivers/atm/eni.c
1842
spin_lock_init(&eni_dev->lock);
drivers/atm/eni.c
1843
tasklet_init(&eni_dev->task,eni_tasklet,(unsigned long) dev);
drivers/atm/eni.c
1844
eni_dev->events = 0;
drivers/atm/eni.c
1846
buffer_mem = eni_dev->mem - (buf - eni_dev->ram);
drivers/atm/eni.c
1847
eni_dev->free_list_size = buffer_mem/MID_MIN_BUF_SIZE/2;
drivers/atm/eni.c
1848
eni_dev->free_list = kmalloc_objs(*eni_dev->free_list,
drivers/atm/eni.c
1849
eni_dev->free_list_size + 1);
drivers/atm/eni.c
185
eni_dev->tx[i].send,eni_dev->tx[i].words*4);
drivers/atm/eni.c
1850
if (!eni_dev->free_list) {
drivers/atm/eni.c
1856
eni_dev->free_len = 0;
drivers/atm/eni.c
1857
eni_put_free(eni_dev,buf,buffer_mem);
drivers/atm/eni.c
1858
memset_io(eni_dev->vci,0,16*NR_VCI); /* clear VCI table */
drivers/atm/eni.c
188
if (eni_dev->rx_map[i] && ENI_VCC(eni_dev->rx_map[i])->rx)
drivers/atm/eni.c
1883
kfree(eni_dev->free_list);
drivers/atm/eni.c
1886
free_irq(eni_dev->irq, dev);
drivers/atm/eni.c
190
ENI_VCC(eni_dev->rx_map[i])->recv,
drivers/atm/eni.c
191
ENI_VCC(eni_dev->rx_map[i])->words*4);
drivers/atm/eni.c
1957
struct eni_dev *eni_dev = ENI_DEV(vcc->dev);
drivers/atm/eni.c
196
static void eni_put_free(struct eni_dev *eni_dev, void __iomem *start,
drivers/atm/eni.c
1963
if (tx == eni_dev->ubr) return -EBADFD;
drivers/atm/eni.c
1979
tasklet_disable(&eni_dev->task);
drivers/atm/eni.c
1980
skb_queue_walk(&eni_dev->tx_queue, skb) {
drivers/atm/eni.c
1989
tasklet_enable(&eni_dev->task);
drivers/atm/eni.c
1996
struct eni_dev *eni_dev = ENI_DEV(dev);
drivers/atm/eni.c
2015
if (mult.tx) eni_dev->tx_mult = mult.tx;
drivers/atm/eni.c
2016
if (mult.rx) eni_dev->rx_mult = mult.rx;
drivers/atm/eni.c
203
start += eni_dev->base_diff;
drivers/atm/eni.c
204
list = eni_dev->free_list;
drivers/atm/eni.c
205
len = eni_dev->free_len;
drivers/atm/eni.c
207
if (len >= eni_dev->free_list_size) {
drivers/atm/eni.c
2086
struct eni_dev *eni_dev = ENI_DEV(dev);
drivers/atm/eni.c
2094
eni_dev->mem >> 10,eni_dev->tx_bw);
drivers/atm/eni.c
2140
"",eni_dev->tx_mult,eni_dev->rx_mult);
drivers/atm/eni.c
2142
struct eni_tx *tx = eni_dev->tx+i;
drivers/atm/eni.c
2148
(unsigned long) (tx->send - eni_dev->ram),
drivers/atm/eni.c
2149
tx->send-eni_dev->ram+tx->words*4-1,tx->words*4,
drivers/atm/eni.c
2151
tx == eni_dev->ubr ? " (UBR)" : "");
drivers/atm/eni.c
2174
(unsigned long) (eni_vcc->recv - eni_dev->ram),
drivers/atm/eni.c
2175
eni_vcc->recv-eni_dev->ram+eni_vcc->words*4-1,
drivers/atm/eni.c
2188
for (i = 0; i < eni_dev->free_len; i++) {
drivers/atm/eni.c
2189
struct eni_free *fe = eni_dev->free_list+i;
drivers/atm/eni.c
2193
offset = (unsigned long) eni_dev->ram+eni_dev->base_diff;
drivers/atm/eni.c
2218
struct eni_dev *eni_dev;
drivers/atm/eni.c
2231
eni_dev = kmalloc_obj(struct eni_dev);
drivers/atm/eni.c
2232
if (!eni_dev)
drivers/atm/eni.c
2235
zero = &eni_dev->zero;
drivers/atm/eni.c
224
eni_dev->free_len = len;
drivers/atm/eni.c
2245
dev->dev_data = eni_dev;
drivers/atm/eni.c
2247
eni_dev->pci_dev = pci_dev;
drivers/atm/eni.c
2248
eni_dev->asic = ent->driver_data;
drivers/atm/eni.c
2258
eni_dev->more = eni_boards;
drivers/atm/eni.c
2271
kfree(eni_dev);
drivers/atm/eni.c
2289
struct eni_dev *ed = ENI_DEV(dev);
drivers/atm/eni.c
229
static void __iomem *eni_alloc_mem(struct eni_dev *eni_dev, unsigned long *size)
drivers/atm/eni.c
235
list = eni_dev->free_list;
drivers/atm/eni.c
236
len = eni_dev->free_len;
drivers/atm/eni.c
255
start = list[index].start-eni_dev->base_diff;
drivers/atm/eni.c
257
eni_dev->free_len = len;
drivers/atm/eni.c
259
eni_put_free(eni_dev,start+*size,(1 << best_order)-*size);
drivers/atm/eni.c
267
static void eni_free_mem(struct eni_dev *eni_dev, void __iomem *start,
drivers/atm/eni.c
273
start += eni_dev->base_diff;
drivers/atm/eni.c
274
list = eni_dev->free_list;
drivers/atm/eni.c
275
len = eni_dev->free_len;
drivers/atm/eni.c
289
if (len >= eni_dev->free_list_size) {
drivers/atm/eni.c
296
eni_dev->free_len = len+1;
drivers/atm/eni.c
310
struct eni_dev *eni_dev;
drivers/atm/eni.c
314
eni_dev = ENI_DEV(dev);
drivers/atm/eni.c
341
struct eni_dev *eni_dev;
drivers/atm/eni.c
349
eni_dev = ENI_DEV(vcc->dev);
drivers/atm/eni.c
353
paddr = dma_map_single(&eni_dev->pci_dev->dev,skb->data,skb->len,
drivers/atm/eni.c
355
if (dma_mapping_error(&eni_dev->pci_dev->dev, paddr))
drivers/atm/eni.c
464
writel(dma[i*2],eni_dev->rx_dma+dma_wr*8);
drivers/atm/eni.c
465
writel(dma[i*2+1],eni_dev->rx_dma+dma_wr*8+4);
drivers/atm/eni.c
470
skb_queue_tail(&eni_dev->rx_queue,skb);
drivers/atm/eni.c
480
dma_unmap_single(&eni_dev->pci_dev->dev,paddr,skb->len,
drivers/atm/eni.c
653
struct eni_dev *eni_dev;
drivers/atm/eni.c
656
eni_dev = ENI_DEV(dev);
drivers/atm/eni.c
657
while ((curr = eni_dev->fast)) {
drivers/atm/eni.c
660
eni_dev->fast = ENI_VCC(curr)->next;
drivers/atm/eni.c
665
while ((curr = eni_dev->slow)) {
drivers/atm/eni.c
668
eni_dev->slow = ENI_VCC(curr)->next;
drivers/atm/eni.c
678
struct eni_dev *eni_dev;
drivers/atm/eni.c
683
eni_dev = ENI_DEV(dev);
drivers/atm/eni.c
684
while (eni_in(MID_SERV_WRITE) != eni_dev->serv_read) {
drivers/atm/eni.c
685
vci = readl(eni_dev->service+eni_dev->serv_read*4);
drivers/atm/eni.c
686
eni_dev->serv_read = (eni_dev->serv_read+1) & (NR_SERVICE-1);
drivers/atm/eni.c
687
vcc = eni_dev->rx_map[vci & 1023];
drivers/atm/eni.c
703
if (eni_dev->fast)
drivers/atm/eni.c
704
ENI_VCC(eni_dev->last_fast)->next = vcc;
drivers/atm/eni.c
705
else eni_dev->fast = vcc;
drivers/atm/eni.c
706
eni_dev->last_fast = vcc;
drivers/atm/eni.c
709
if (eni_dev->slow)
drivers/atm/eni.c
710
ENI_VCC(eni_dev->last_slow)->next = vcc;
drivers/atm/eni.c
711
else eni_dev->slow = vcc;
drivers/atm/eni.c
712
eni_dev->last_slow = vcc;
drivers/atm/eni.c
722
struct eni_dev *eni_dev;
drivers/atm/eni.c
729
eni_dev = ENI_DEV(dev);
drivers/atm/eni.c
732
skb = skb_dequeue(&eni_dev->rx_queue);
drivers/atm/eni.c
747
vci_dsc = eni_dev->vci+vcc->vci*16;
drivers/atm/eni.c
752
skb_queue_head(&eni_dev->rx_queue,skb);
drivers/atm/eni.c
757
dma_unmap_single(&eni_dev->pci_dev->dev,ENI_PRV_PADDR(skb),skb->len,
drivers/atm/eni.c
771
wake_up(&eni_dev->rx_wait);
drivers/atm/eni.c
777
struct eni_dev *eni_dev;
drivers/atm/eni.c
782
eni_dev = ENI_DEV(vcc->dev);
drivers/atm/eni.c
786
size = vcc->qos.rxtp.max_sdu*eni_dev->rx_mult/100;
drivers/atm/eni.c
790
eni_vcc->recv = eni_alloc_mem(eni_dev,&size);
drivers/atm/eni.c
807
struct eni_dev *eni_dev;
drivers/atm/eni.c
813
eni_dev = ENI_DEV(vcc->dev);
drivers/atm/eni.c
817
here = eni_dev->vci+vcc->vci*16;
drivers/atm/eni.c
818
DPRINTK("loc 0x%x\n",(unsigned) (eni_vcc->recv-eni_dev->ram)/4);
drivers/atm/eni.c
823
if (eni_dev->rx_map[vcc->vci])
drivers/atm/eni.c
826
eni_dev->rx_map[vcc->vci] = vcc; /* now it counts */
drivers/atm/eni.c
829
(((eni_vcc->recv-eni_dev->ram) >> (MID_LOC_SKIP+2)) <<
drivers/atm/eni.c
839
struct eni_dev *eni_dev;
drivers/atm/eni.c
844
eni_dev = ENI_DEV(vcc->dev);
drivers/atm/eni.c
846
here = eni_dev->vci+vcc->vci*16;
drivers/atm/eni.c
855
eni_dev->rx_map[vcc->vci] = NULL;
drivers/atm/eni.c
859
add_wait_queue(&eni_dev->rx_wait,&wait);
drivers/atm/eni.c
879
tasklet_disable(&eni_dev->task);
drivers/atm/eni.c
880
tmp = readl(eni_dev->vci+vcc->vci*16+4) & MID_VCI_READ;
drivers/atm/eni.c
882
tasklet_enable(&eni_dev->task);
drivers/atm/eni.c
892
remove_wait_queue(&eni_dev->rx_wait,&wait);
drivers/atm/eni.c
894
eni_free_mem(eni_dev,eni_vcc->recv,eni_vcc->words << 2);
drivers/atm/eni.c
901
struct eni_dev *eni_dev;
drivers/atm/eni.c
903
eni_dev = ENI_DEV(dev);
drivers/atm/eni.c
904
eni_dev->rx_map = (struct atm_vcc **) get_zeroed_page(GFP_KERNEL);
drivers/atm/eni.c
905
if (!eni_dev->rx_map) {
drivers/atm/eni.c
908
free_page((unsigned long) eni_dev->free_list);
drivers/atm/eni.c
911
eni_dev->rx_mult = DEFAULT_RX_MULT;
drivers/atm/eni.c
912
eni_dev->fast = eni_dev->last_fast = NULL;
drivers/atm/eni.c
913
eni_dev->slow = eni_dev->last_slow = NULL;
drivers/atm/eni.c
914
init_waitqueue_head(&eni_dev->rx_wait);
drivers/atm/eni.c
915
skb_queue_head_init(&eni_dev->rx_queue);
drivers/atm/eni.c
916
eni_dev->serv_read = eni_in(MID_SERV_WRITE);
drivers/atm/eni.h
121
#define ENI_DEV(d) ((struct eni_dev *) (d)->dev_data)