fore200e          165 drivers/atm/fore200e.c fore200e_chunk_alloc(struct fore200e* fore200e, struct chunk* chunk, int size, int alignment, int direction)
fore200e          184 drivers/atm/fore200e.c     chunk->dma_addr = dma_map_single(fore200e->dev, chunk->align_addr,
fore200e          186 drivers/atm/fore200e.c     if (dma_mapping_error(fore200e->dev, chunk->dma_addr)) {
fore200e          197 drivers/atm/fore200e.c fore200e_chunk_free(struct fore200e* fore200e, struct chunk* chunk)
fore200e          199 drivers/atm/fore200e.c     dma_unmap_single(fore200e->dev, chunk->dma_addr, chunk->dma_size,
fore200e          210 drivers/atm/fore200e.c fore200e_dma_chunk_alloc(struct fore200e *fore200e, struct chunk *chunk,
fore200e          215 drivers/atm/fore200e.c 	chunk->alloc_addr = dma_alloc_coherent(fore200e->dev, chunk->alloc_size,
fore200e          227 drivers/atm/fore200e.c fore200e_dma_chunk_free(struct fore200e* fore200e, struct chunk* chunk)
fore200e          229 drivers/atm/fore200e.c 	dma_free_coherent(fore200e->dev, chunk->alloc_size, chunk->alloc_addr,
fore200e          242 drivers/atm/fore200e.c fore200e_poll(struct fore200e* fore200e, volatile u32* addr, u32 val, int msecs)
fore200e          266 drivers/atm/fore200e.c fore200e_io_poll(struct fore200e* fore200e, volatile u32 __iomem *addr, u32 val, int msecs)
fore200e          272 drivers/atm/fore200e.c 	if ((ok = (fore200e->bus->read(addr) == val)))
fore200e          280 drivers/atm/fore200e.c 	       fore200e->bus->read(addr), val);
fore200e          289 drivers/atm/fore200e.c fore200e_free_rx_buf(struct fore200e* fore200e)
fore200e          297 drivers/atm/fore200e.c 	    if ((buffer = fore200e->host_bsq[ scheme ][ magn ].buffer) != NULL) {
fore200e          304 drivers/atm/fore200e.c 			fore200e_chunk_free(fore200e, data);
fore200e          313 drivers/atm/fore200e.c fore200e_uninit_bs_queue(struct fore200e* fore200e)
fore200e          320 drivers/atm/fore200e.c 	    struct chunk* status    = &fore200e->host_bsq[ scheme ][ magn ].status;
fore200e          321 drivers/atm/fore200e.c 	    struct chunk* rbd_block = &fore200e->host_bsq[ scheme ][ magn ].rbd_block;
fore200e          324 drivers/atm/fore200e.c 		fore200e_dma_chunk_free(fore200e, status);
fore200e          327 drivers/atm/fore200e.c 		fore200e_dma_chunk_free(fore200e, rbd_block);
fore200e          334 drivers/atm/fore200e.c fore200e_reset(struct fore200e* fore200e, int diag)
fore200e          338 drivers/atm/fore200e.c     fore200e->cp_monitor = fore200e->virt_base + FORE200E_CP_MONITOR_OFFSET;
fore200e          340 drivers/atm/fore200e.c     fore200e->bus->write(BSTAT_COLD_START, &fore200e->cp_monitor->bstat);
fore200e          342 drivers/atm/fore200e.c     fore200e->bus->reset(fore200e);
fore200e          345 drivers/atm/fore200e.c 	ok = fore200e_io_poll(fore200e, &fore200e->cp_monitor->bstat, BSTAT_SELFTEST_OK, 1000);
fore200e          348 drivers/atm/fore200e.c 	    printk(FORE200E "device %s self-test failed\n", fore200e->name);
fore200e          352 drivers/atm/fore200e.c 	printk(FORE200E "device %s self-test passed\n", fore200e->name);
fore200e          354 drivers/atm/fore200e.c 	fore200e->state = FORE200E_STATE_RESET;
fore200e          362 drivers/atm/fore200e.c fore200e_shutdown(struct fore200e* fore200e)
fore200e          365 drivers/atm/fore200e.c 	   fore200e->name, fore200e->phys_base, 
fore200e          366 drivers/atm/fore200e.c 	   fore200e_irq_itoa(fore200e->irq));
fore200e          368 drivers/atm/fore200e.c     if (fore200e->state > FORE200E_STATE_RESET) {
fore200e          370 drivers/atm/fore200e.c 	fore200e_reset(fore200e, 0);
fore200e          374 drivers/atm/fore200e.c     switch(fore200e->state) {
fore200e          377 drivers/atm/fore200e.c 	kfree(fore200e->stats);
fore200e          381 drivers/atm/fore200e.c 	free_irq(fore200e->irq, fore200e->atm_dev);
fore200e          385 drivers/atm/fore200e.c 	fore200e_free_rx_buf(fore200e);
fore200e          389 drivers/atm/fore200e.c 	fore200e_uninit_bs_queue(fore200e);
fore200e          393 drivers/atm/fore200e.c 	fore200e_dma_chunk_free(fore200e, &fore200e->host_rxq.status);
fore200e          394 drivers/atm/fore200e.c 	fore200e_dma_chunk_free(fore200e, &fore200e->host_rxq.rpd);
fore200e          398 drivers/atm/fore200e.c 	fore200e_dma_chunk_free(fore200e, &fore200e->host_txq.status);
fore200e          399 drivers/atm/fore200e.c 	fore200e_dma_chunk_free(fore200e, &fore200e->host_txq.tpd);
fore200e          403 drivers/atm/fore200e.c 	fore200e_dma_chunk_free(fore200e, &fore200e->host_cmdq.status);
fore200e          416 drivers/atm/fore200e.c 	fore200e->bus->unmap(fore200e);
fore200e          424 drivers/atm/fore200e.c 	atm_dev_deregister(fore200e->atm_dev);
fore200e          451 drivers/atm/fore200e.c fore200e_pca_irq_check(struct fore200e* fore200e)
fore200e          454 drivers/atm/fore200e.c     int irq_posted = readl(fore200e->regs.pca.psr);
fore200e          457 drivers/atm/fore200e.c     if (irq_posted && (readl(fore200e->regs.pca.hcr) & PCA200E_HCR_OUTFULL)) {
fore200e          458 drivers/atm/fore200e.c 	DPRINTK(2,"FIFO OUT full, device %d\n", fore200e->atm_dev->number);
fore200e          467 drivers/atm/fore200e.c fore200e_pca_irq_ack(struct fore200e* fore200e)
fore200e          469 drivers/atm/fore200e.c     writel(PCA200E_HCR_CLRINTR, fore200e->regs.pca.hcr);
fore200e          474 drivers/atm/fore200e.c fore200e_pca_reset(struct fore200e* fore200e)
fore200e          476 drivers/atm/fore200e.c     writel(PCA200E_HCR_RESET, fore200e->regs.pca.hcr);
fore200e          478 drivers/atm/fore200e.c     writel(0, fore200e->regs.pca.hcr);
fore200e          482 drivers/atm/fore200e.c static int fore200e_pca_map(struct fore200e* fore200e)
fore200e          484 drivers/atm/fore200e.c     DPRINTK(2, "device %s being mapped in memory\n", fore200e->name);
fore200e          486 drivers/atm/fore200e.c     fore200e->virt_base = ioremap(fore200e->phys_base, PCA200E_IOSPACE_LENGTH);
fore200e          488 drivers/atm/fore200e.c     if (fore200e->virt_base == NULL) {
fore200e          489 drivers/atm/fore200e.c 	printk(FORE200E "can't map device %s\n", fore200e->name);
fore200e          493 drivers/atm/fore200e.c     DPRINTK(1, "device %s mapped to 0x%p\n", fore200e->name, fore200e->virt_base);
fore200e          496 drivers/atm/fore200e.c     fore200e->regs.pca.hcr = fore200e->virt_base + PCA200E_HCR_OFFSET;
fore200e          497 drivers/atm/fore200e.c     fore200e->regs.pca.imr = fore200e->virt_base + PCA200E_IMR_OFFSET;
fore200e          498 drivers/atm/fore200e.c     fore200e->regs.pca.psr = fore200e->virt_base + PCA200E_PSR_OFFSET;
fore200e          500 drivers/atm/fore200e.c     fore200e->state = FORE200E_STATE_MAP;
fore200e          506 drivers/atm/fore200e.c fore200e_pca_unmap(struct fore200e* fore200e)
fore200e          508 drivers/atm/fore200e.c     DPRINTK(2, "device %s being unmapped from memory\n", fore200e->name);
fore200e          510 drivers/atm/fore200e.c     if (fore200e->virt_base != NULL)
fore200e          511 drivers/atm/fore200e.c 	iounmap(fore200e->virt_base);
fore200e          515 drivers/atm/fore200e.c static int fore200e_pca_configure(struct fore200e *fore200e)
fore200e          517 drivers/atm/fore200e.c     struct pci_dev *pci_dev = to_pci_dev(fore200e->dev);
fore200e          520 drivers/atm/fore200e.c     DPRINTK(2, "device %s being configured\n", fore200e->name);
fore200e          550 drivers/atm/fore200e.c     fore200e->state = FORE200E_STATE_CONFIGURE;
fore200e          556 drivers/atm/fore200e.c fore200e_pca_prom_read(struct fore200e* fore200e, struct prom_data* prom)
fore200e          558 drivers/atm/fore200e.c     struct host_cmdq*       cmdq  = &fore200e->host_cmdq;
fore200e          569 drivers/atm/fore200e.c     prom_dma = dma_map_single(fore200e->dev, prom, sizeof(struct prom_data),
fore200e          571 drivers/atm/fore200e.c     if (dma_mapping_error(fore200e->dev, prom_dma))
fore200e          574 drivers/atm/fore200e.c     fore200e->bus->write(prom_dma, &entry->cp_entry->cmd.prom_block.prom_haddr);
fore200e          578 drivers/atm/fore200e.c     fore200e->bus->write(*(u32*)&opcode, (u32 __iomem *)&entry->cp_entry->cmd.prom_block.opcode);
fore200e          580 drivers/atm/fore200e.c     ok = fore200e_poll(fore200e, entry->status, STATUS_COMPLETE, 400);
fore200e          584 drivers/atm/fore200e.c     dma_unmap_single(fore200e->dev, prom_dma, sizeof(struct prom_data), DMA_FROM_DEVICE);
fore200e          587 drivers/atm/fore200e.c 	printk(FORE200E "unable to get PROM data from device %s\n", fore200e->name);
fore200e          605 drivers/atm/fore200e.c fore200e_pca_proc_read(struct fore200e* fore200e, char *page)
fore200e          607 drivers/atm/fore200e.c     struct pci_dev *pci_dev = to_pci_dev(fore200e->dev);
fore200e          644 drivers/atm/fore200e.c static void fore200e_sba_irq_enable(struct fore200e *fore200e)
fore200e          646 drivers/atm/fore200e.c 	u32 hcr = fore200e->bus->read(fore200e->regs.sba.hcr) & SBA200E_HCR_STICKY;
fore200e          647 drivers/atm/fore200e.c 	fore200e->bus->write(hcr | SBA200E_HCR_INTR_ENA, fore200e->regs.sba.hcr);
fore200e          650 drivers/atm/fore200e.c static int fore200e_sba_irq_check(struct fore200e *fore200e)
fore200e          652 drivers/atm/fore200e.c 	return fore200e->bus->read(fore200e->regs.sba.hcr) & SBA200E_HCR_INTR_REQ;
fore200e          655 drivers/atm/fore200e.c static void fore200e_sba_irq_ack(struct fore200e *fore200e)
fore200e          657 drivers/atm/fore200e.c 	u32 hcr = fore200e->bus->read(fore200e->regs.sba.hcr) & SBA200E_HCR_STICKY;
fore200e          658 drivers/atm/fore200e.c 	fore200e->bus->write(hcr | SBA200E_HCR_INTR_CLR, fore200e->regs.sba.hcr);
fore200e          661 drivers/atm/fore200e.c static void fore200e_sba_reset(struct fore200e *fore200e)
fore200e          663 drivers/atm/fore200e.c 	fore200e->bus->write(SBA200E_HCR_RESET, fore200e->regs.sba.hcr);
fore200e          665 drivers/atm/fore200e.c 	fore200e->bus->write(0, fore200e->regs.sba.hcr);
fore200e          668 drivers/atm/fore200e.c static int __init fore200e_sba_map(struct fore200e *fore200e)
fore200e          670 drivers/atm/fore200e.c 	struct platform_device *op = to_platform_device(fore200e->dev);
fore200e          674 drivers/atm/fore200e.c 	fore200e->regs.sba.hcr = of_ioremap(&op->resource[0], 0, SBA200E_HCR_LENGTH, "SBA HCR");
fore200e          675 drivers/atm/fore200e.c 	fore200e->regs.sba.bsr = of_ioremap(&op->resource[1], 0, SBA200E_BSR_LENGTH, "SBA BSR");
fore200e          676 drivers/atm/fore200e.c 	fore200e->regs.sba.isr = of_ioremap(&op->resource[2], 0, SBA200E_ISR_LENGTH, "SBA ISR");
fore200e          677 drivers/atm/fore200e.c 	fore200e->virt_base    = of_ioremap(&op->resource[3], 0, SBA200E_RAM_LENGTH, "SBA RAM");
fore200e          679 drivers/atm/fore200e.c 	if (!fore200e->virt_base) {
fore200e          680 drivers/atm/fore200e.c 		printk(FORE200E "unable to map RAM of device %s\n", fore200e->name);
fore200e          684 drivers/atm/fore200e.c 	DPRINTK(1, "device %s mapped to 0x%p\n", fore200e->name, fore200e->virt_base);
fore200e          686 drivers/atm/fore200e.c 	fore200e->bus->write(0x02, fore200e->regs.sba.isr); /* XXX hardwired interrupt level */
fore200e          694 drivers/atm/fore200e.c 	fore200e->state = FORE200E_STATE_MAP;
fore200e          698 drivers/atm/fore200e.c static void fore200e_sba_unmap(struct fore200e *fore200e)
fore200e          700 drivers/atm/fore200e.c 	struct platform_device *op = to_platform_device(fore200e->dev);
fore200e          702 drivers/atm/fore200e.c 	of_iounmap(&op->resource[0], fore200e->regs.sba.hcr, SBA200E_HCR_LENGTH);
fore200e          703 drivers/atm/fore200e.c 	of_iounmap(&op->resource[1], fore200e->regs.sba.bsr, SBA200E_BSR_LENGTH);
fore200e          704 drivers/atm/fore200e.c 	of_iounmap(&op->resource[2], fore200e->regs.sba.isr, SBA200E_ISR_LENGTH);
fore200e          705 drivers/atm/fore200e.c 	of_iounmap(&op->resource[3], fore200e->virt_base,    SBA200E_RAM_LENGTH);
fore200e          708 drivers/atm/fore200e.c static int __init fore200e_sba_configure(struct fore200e *fore200e)
fore200e          710 drivers/atm/fore200e.c 	fore200e->state = FORE200E_STATE_CONFIGURE;
fore200e          714 drivers/atm/fore200e.c static int __init fore200e_sba_prom_read(struct fore200e *fore200e, struct prom_data *prom)
fore200e          716 drivers/atm/fore200e.c 	struct platform_device *op = to_platform_device(fore200e->dev);
fore200e          738 drivers/atm/fore200e.c static int fore200e_sba_proc_read(struct fore200e *fore200e, char *page)
fore200e          740 drivers/atm/fore200e.c 	struct platform_device *op = to_platform_device(fore200e->dev);
fore200e          770 drivers/atm/fore200e.c fore200e_tx_irq(struct fore200e* fore200e)
fore200e          772 drivers/atm/fore200e.c     struct host_txq*        txq = &fore200e->host_txq;
fore200e          777 drivers/atm/fore200e.c     if (fore200e->host_txq.txing == 0)
fore200e          795 drivers/atm/fore200e.c 	dma_unmap_single(fore200e->dev, entry->tpd->tsd[ 0 ].buffer, entry->tpd->tsd[ 0 ].length,
fore200e          805 drivers/atm/fore200e.c 		    fore200e->atm_dev->number);
fore200e          828 drivers/atm/fore200e.c 			fore200e->atm_dev->number);
fore200e          854 drivers/atm/fore200e.c 	fore200e->host_txq.txing--;
fore200e          904 drivers/atm/fore200e.c fore200e_supply(struct fore200e* fore200e)
fore200e          915 drivers/atm/fore200e.c 	    bsq = &fore200e->host_bsq[ scheme ][ magn ];
fore200e          954 drivers/atm/fore200e.c 		fore200e->bus->write(entry->rbd_block_dma, &entry->cp_entry->rbd_block_haddr);
fore200e          962 drivers/atm/fore200e.c fore200e_push_rpd(struct fore200e* fore200e, struct atm_vcc* vcc, struct rpd* rpd)
fore200e         1016 drivers/atm/fore200e.c 	dma_sync_single_for_cpu(fore200e->dev, buffer->data.dma_addr,
fore200e         1022 drivers/atm/fore200e.c 	dma_sync_single_for_device(fore200e->dev, buffer->data.dma_addr,
fore200e         1054 drivers/atm/fore200e.c fore200e_collect_rpd(struct fore200e* fore200e, struct rpd* rpd)
fore200e         1065 drivers/atm/fore200e.c 	bsq = &fore200e->host_bsq[ buffer->scheme ][ buffer->magn ];
fore200e         1087 drivers/atm/fore200e.c fore200e_rx_irq(struct fore200e* fore200e)
fore200e         1089 drivers/atm/fore200e.c     struct host_rxq*        rxq = &fore200e->host_rxq;
fore200e         1102 drivers/atm/fore200e.c 	vc_map = FORE200E_VC_MAP(fore200e, entry->rpd->atm_header.vpi, entry->rpd->atm_header.vci);
fore200e         1108 drivers/atm/fore200e.c 		    fore200e->atm_dev->number,
fore200e         1117 drivers/atm/fore200e.c 		fore200e_push_rpd(fore200e, vcc, entry->rpd);
fore200e         1121 drivers/atm/fore200e.c 			fore200e->atm_dev->number,
fore200e         1129 drivers/atm/fore200e.c 	fore200e_collect_rpd(fore200e, entry->rpd);
fore200e         1132 drivers/atm/fore200e.c 	fore200e->bus->write(entry->rpd_dma, &entry->cp_entry->rpd_haddr);
fore200e         1135 drivers/atm/fore200e.c 	fore200e_supply(fore200e);
fore200e         1142 drivers/atm/fore200e.c fore200e_irq(struct fore200e* fore200e)
fore200e         1146 drivers/atm/fore200e.c     spin_lock_irqsave(&fore200e->q_lock, flags);
fore200e         1147 drivers/atm/fore200e.c     fore200e_rx_irq(fore200e);
fore200e         1148 drivers/atm/fore200e.c     spin_unlock_irqrestore(&fore200e->q_lock, flags);
fore200e         1150 drivers/atm/fore200e.c     spin_lock_irqsave(&fore200e->q_lock, flags);
fore200e         1151 drivers/atm/fore200e.c     fore200e_tx_irq(fore200e);
fore200e         1152 drivers/atm/fore200e.c     spin_unlock_irqrestore(&fore200e->q_lock, flags);
fore200e         1160 drivers/atm/fore200e.c     struct fore200e* fore200e = FORE200E_DEV((struct atm_dev*)dev);
fore200e         1162 drivers/atm/fore200e.c     if (fore200e->bus->irq_check(fore200e) == 0) {
fore200e         1164 drivers/atm/fore200e.c 	DPRINTK(3, "interrupt NOT triggered by device %d\n", fore200e->atm_dev->number);
fore200e         1167 drivers/atm/fore200e.c     DPRINTK(3, "interrupt triggered by device %d\n", fore200e->atm_dev->number);
fore200e         1170 drivers/atm/fore200e.c     tasklet_schedule(&fore200e->tx_tasklet);
fore200e         1171 drivers/atm/fore200e.c     tasklet_schedule(&fore200e->rx_tasklet);
fore200e         1173 drivers/atm/fore200e.c     fore200e_irq(fore200e);
fore200e         1176 drivers/atm/fore200e.c     fore200e->bus->irq_ack(fore200e);
fore200e         1185 drivers/atm/fore200e.c     struct fore200e* fore200e = (struct fore200e*) data;
fore200e         1188 drivers/atm/fore200e.c     DPRINTK(3, "tx tasklet scheduled for device %d\n", fore200e->atm_dev->number);
fore200e         1190 drivers/atm/fore200e.c     spin_lock_irqsave(&fore200e->q_lock, flags);
fore200e         1191 drivers/atm/fore200e.c     fore200e_tx_irq(fore200e);
fore200e         1192 drivers/atm/fore200e.c     spin_unlock_irqrestore(&fore200e->q_lock, flags);
fore200e         1199 drivers/atm/fore200e.c     struct fore200e* fore200e = (struct fore200e*) data;
fore200e         1202 drivers/atm/fore200e.c     DPRINTK(3, "rx tasklet scheduled for device %d\n", fore200e->atm_dev->number);
fore200e         1204 drivers/atm/fore200e.c     spin_lock_irqsave(&fore200e->q_lock, flags);
fore200e         1205 drivers/atm/fore200e.c     fore200e_rx_irq((struct fore200e*) data);
fore200e         1206 drivers/atm/fore200e.c     spin_unlock_irqrestore(&fore200e->q_lock, flags);
fore200e         1225 drivers/atm/fore200e.c fore200e_activate_vcin(struct fore200e* fore200e, int activate, struct atm_vcc* vcc, int mtu)
fore200e         1227 drivers/atm/fore200e.c     struct host_cmdq*        cmdq  = &fore200e->host_cmdq;
fore200e         1261 drivers/atm/fore200e.c 	fore200e->bus->write(mtu,                        &entry->cp_entry->cmd.activate_block.mtu);
fore200e         1262 drivers/atm/fore200e.c 	fore200e->bus->write(*(u32*)&vpvc,         (u32 __iomem *)&entry->cp_entry->cmd.activate_block.vpvc);
fore200e         1263 drivers/atm/fore200e.c 	fore200e->bus->write(*(u32*)&activ_opcode, (u32 __iomem *)&entry->cp_entry->cmd.activate_block.opcode);
fore200e         1266 drivers/atm/fore200e.c 	fore200e->bus->write(*(u32*)&vpvc,         (u32 __iomem *)&entry->cp_entry->cmd.deactivate_block.vpvc);
fore200e         1267 drivers/atm/fore200e.c 	fore200e->bus->write(*(u32*)&deactiv_opcode, (u32 __iomem *)&entry->cp_entry->cmd.deactivate_block.opcode);
fore200e         1270 drivers/atm/fore200e.c     ok = fore200e_poll(fore200e, entry->status, STATUS_COMPLETE, 400);
fore200e         1308 drivers/atm/fore200e.c     struct fore200e*        fore200e = FORE200E_DEV(vcc->dev);
fore200e         1318 drivers/atm/fore200e.c     spin_lock_irqsave(&fore200e->q_lock, flags);
fore200e         1320 drivers/atm/fore200e.c     vc_map = FORE200E_VC_MAP(fore200e, vpi, vci);
fore200e         1323 drivers/atm/fore200e.c 	spin_unlock_irqrestore(&fore200e->q_lock, flags);
fore200e         1326 drivers/atm/fore200e.c 	       fore200e->atm_dev->number, vpi, vci);
fore200e         1333 drivers/atm/fore200e.c     spin_unlock_irqrestore(&fore200e->q_lock, flags);
fore200e         1352 drivers/atm/fore200e.c 	mutex_lock(&fore200e->rate_mtx);
fore200e         1353 drivers/atm/fore200e.c 	if (fore200e->available_cell_rate < vcc->qos.txtp.max_pcr) {
fore200e         1354 drivers/atm/fore200e.c 	    mutex_unlock(&fore200e->rate_mtx);
fore200e         1362 drivers/atm/fore200e.c 	fore200e->available_cell_rate -= vcc->qos.txtp.max_pcr;
fore200e         1363 drivers/atm/fore200e.c 	mutex_unlock(&fore200e->rate_mtx);
fore200e         1373 drivers/atm/fore200e.c     if (fore200e_activate_vcin(fore200e, 1, vcc, vcc->qos.rxtp.max_sdu) < 0) {
fore200e         1382 drivers/atm/fore200e.c 	fore200e->available_cell_rate += vcc->qos.txtp.max_pcr;
fore200e         1405 drivers/atm/fore200e.c     vc_map->incarn = ++fore200e->incarn_count;
fore200e         1418 drivers/atm/fore200e.c     struct fore200e*        fore200e;
fore200e         1423 drivers/atm/fore200e.c     fore200e = FORE200E_DEV(vcc->dev);
fore200e         1432 drivers/atm/fore200e.c     fore200e_activate_vcin(fore200e, 0, vcc, 0);
fore200e         1434 drivers/atm/fore200e.c     spin_lock_irqsave(&fore200e->q_lock, flags);
fore200e         1436 drivers/atm/fore200e.c     vc_map = FORE200E_VC_MAP(fore200e, vcc->vpi, vcc->vci);
fore200e         1446 drivers/atm/fore200e.c     spin_unlock_irqrestore(&fore200e->q_lock, flags);
fore200e         1451 drivers/atm/fore200e.c 	mutex_lock(&fore200e->rate_mtx);
fore200e         1452 drivers/atm/fore200e.c 	fore200e->available_cell_rate += vcc->qos.txtp.max_pcr;
fore200e         1453 drivers/atm/fore200e.c 	mutex_unlock(&fore200e->rate_mtx);
fore200e         1469 drivers/atm/fore200e.c     struct fore200e*        fore200e;
fore200e         1488 drivers/atm/fore200e.c     fore200e = FORE200E_DEV(vcc->dev);
fore200e         1491 drivers/atm/fore200e.c     if (!fore200e)
fore200e         1494 drivers/atm/fore200e.c     txq = &fore200e->host_txq;
fore200e         1521 drivers/atm/fore200e.c 	DPRINTK(2, "misaligned tx PDU on device %s\n", fore200e->name);
fore200e         1529 drivers/atm/fore200e.c 	DPRINTK(2, "incomplete tx AAL0 PDU on device %s\n", fore200e->name);
fore200e         1554 drivers/atm/fore200e.c     vc_map = FORE200E_VC_MAP(fore200e, vcc->vpi, vcc->vci);
fore200e         1559 drivers/atm/fore200e.c     spin_lock_irqsave(&fore200e->q_lock, flags);
fore200e         1566 drivers/atm/fore200e.c 	fore200e_tx_irq(fore200e);
fore200e         1570 drivers/atm/fore200e.c 	    spin_unlock_irqrestore(&fore200e->q_lock, flags);
fore200e         1580 drivers/atm/fore200e.c 	    fore200e->tx_sat++;
fore200e         1582 drivers/atm/fore200e.c 		    fore200e->name, fore200e->cp_queues->heartbeat);
fore200e         1603 drivers/atm/fore200e.c     tpd->tsd[ 0 ].buffer = dma_map_single(fore200e->dev, data, tx_len,
fore200e         1605 drivers/atm/fore200e.c     if (dma_mapping_error(fore200e->dev, tpd->tsd[0].buffer)) {
fore200e         1608 drivers/atm/fore200e.c 	spin_unlock_irqrestore(&fore200e->q_lock, flags);
fore200e         1660 drivers/atm/fore200e.c     fore200e->bus->write(*(u32*)&tpd_haddr, (u32 __iomem *)&entry->cp_entry->tpd_haddr);
fore200e         1662 drivers/atm/fore200e.c     spin_unlock_irqrestore(&fore200e->q_lock, flags);
fore200e         1669 drivers/atm/fore200e.c fore200e_getstats(struct fore200e* fore200e)
fore200e         1671 drivers/atm/fore200e.c     struct host_cmdq*       cmdq  = &fore200e->host_cmdq;
fore200e         1677 drivers/atm/fore200e.c     if (fore200e->stats == NULL) {
fore200e         1678 drivers/atm/fore200e.c 	fore200e->stats = kzalloc(sizeof(struct stats), GFP_KERNEL);
fore200e         1679 drivers/atm/fore200e.c 	if (fore200e->stats == NULL)
fore200e         1683 drivers/atm/fore200e.c     stats_dma_addr = dma_map_single(fore200e->dev, fore200e->stats,
fore200e         1685 drivers/atm/fore200e.c     if (dma_mapping_error(fore200e->dev, stats_dma_addr))
fore200e         1693 drivers/atm/fore200e.c     fore200e->bus->write(stats_dma_addr, &entry->cp_entry->cmd.stats_block.stats_haddr);
fore200e         1697 drivers/atm/fore200e.c     fore200e->bus->write(*(u32*)&opcode, (u32 __iomem *)&entry->cp_entry->cmd.stats_block.opcode);
fore200e         1699 drivers/atm/fore200e.c     ok = fore200e_poll(fore200e, entry->status, STATUS_COMPLETE, 400);
fore200e         1703 drivers/atm/fore200e.c     dma_unmap_single(fore200e->dev, stats_dma_addr, sizeof(struct stats), DMA_FROM_DEVICE);
fore200e         1706 drivers/atm/fore200e.c 	printk(FORE200E "unable to get statistics from device %s\n", fore200e->name);
fore200e         1740 drivers/atm/fore200e.c fore200e_get_oc3(struct fore200e* fore200e, struct oc3_regs* regs)
fore200e         1742 drivers/atm/fore200e.c     struct host_cmdq*       cmdq  = &fore200e->host_cmdq;
fore200e         1748 drivers/atm/fore200e.c     oc3_regs_dma_addr = fore200e->bus->dma_map(fore200e, regs, sizeof(struct oc3_regs), DMA_FROM_DEVICE);
fore200e         1757 drivers/atm/fore200e.c     fore200e->bus->write(oc3_regs_dma_addr, &entry->cp_entry->cmd.oc3_block.regs_haddr);
fore200e         1761 drivers/atm/fore200e.c     fore200e->bus->write(*(u32*)&opcode, (u32*)&entry->cp_entry->cmd.oc3_block.opcode);
fore200e         1763 drivers/atm/fore200e.c     ok = fore200e_poll(fore200e, entry->status, STATUS_COMPLETE, 400);
fore200e         1767 drivers/atm/fore200e.c     fore200e->bus->dma_unmap(fore200e, oc3_regs_dma_addr, sizeof(struct oc3_regs), DMA_FROM_DEVICE);
fore200e         1770 drivers/atm/fore200e.c 	printk(FORE200E "unable to get OC-3 regs of device %s\n", fore200e->name);
fore200e         1780 drivers/atm/fore200e.c fore200e_set_oc3(struct fore200e* fore200e, u32 reg, u32 value, u32 mask)
fore200e         1782 drivers/atm/fore200e.c     struct host_cmdq*       cmdq  = &fore200e->host_cmdq;
fore200e         1796 drivers/atm/fore200e.c     fore200e->bus->write(0, &entry->cp_entry->cmd.oc3_block.regs_haddr);
fore200e         1800 drivers/atm/fore200e.c     fore200e->bus->write(*(u32*)&opcode, (u32 __iomem *)&entry->cp_entry->cmd.oc3_block.opcode);
fore200e         1802 drivers/atm/fore200e.c     ok = fore200e_poll(fore200e, entry->status, STATUS_COMPLETE, 400);
fore200e         1807 drivers/atm/fore200e.c 	printk(FORE200E "unable to set OC-3 reg 0x%02x of device %s\n", reg, fore200e->name);
fore200e         1816 drivers/atm/fore200e.c fore200e_setloop(struct fore200e* fore200e, int loop_mode)
fore200e         1843 drivers/atm/fore200e.c     error = fore200e_set_oc3(fore200e, SUNI_MCT, mct_value, mct_mask);
fore200e         1845 drivers/atm/fore200e.c 	fore200e->loop_mode = loop_mode;
fore200e         1852 drivers/atm/fore200e.c fore200e_fetch_stats(struct fore200e* fore200e, struct sonet_stats __user *arg)
fore200e         1856 drivers/atm/fore200e.c     if (fore200e_getstats(fore200e) < 0)
fore200e         1859 drivers/atm/fore200e.c     tmp.section_bip = be32_to_cpu(fore200e->stats->oc3.section_bip8_errors);
fore200e         1860 drivers/atm/fore200e.c     tmp.line_bip    = be32_to_cpu(fore200e->stats->oc3.line_bip24_errors);
fore200e         1861 drivers/atm/fore200e.c     tmp.path_bip    = be32_to_cpu(fore200e->stats->oc3.path_bip8_errors);
fore200e         1862 drivers/atm/fore200e.c     tmp.line_febe   = be32_to_cpu(fore200e->stats->oc3.line_febe_errors);
fore200e         1863 drivers/atm/fore200e.c     tmp.path_febe   = be32_to_cpu(fore200e->stats->oc3.path_febe_errors);
fore200e         1864 drivers/atm/fore200e.c     tmp.corr_hcs    = be32_to_cpu(fore200e->stats->oc3.corr_hcs_errors);
fore200e         1865 drivers/atm/fore200e.c     tmp.uncorr_hcs  = be32_to_cpu(fore200e->stats->oc3.ucorr_hcs_errors);
fore200e         1866 drivers/atm/fore200e.c     tmp.tx_cells    = be32_to_cpu(fore200e->stats->aal0.cells_transmitted)  +
fore200e         1867 drivers/atm/fore200e.c 	              be32_to_cpu(fore200e->stats->aal34.cells_transmitted) +
fore200e         1868 drivers/atm/fore200e.c 	              be32_to_cpu(fore200e->stats->aal5.cells_transmitted);
fore200e         1869 drivers/atm/fore200e.c     tmp.rx_cells    = be32_to_cpu(fore200e->stats->aal0.cells_received)     +
fore200e         1870 drivers/atm/fore200e.c 	              be32_to_cpu(fore200e->stats->aal34.cells_received)    +
fore200e         1871 drivers/atm/fore200e.c 	              be32_to_cpu(fore200e->stats->aal5.cells_received);
fore200e         1883 drivers/atm/fore200e.c     struct fore200e* fore200e = FORE200E_DEV(dev);
fore200e         1890 drivers/atm/fore200e.c 	return fore200e_fetch_stats(fore200e, (struct sonet_stats __user *)arg);
fore200e         1896 drivers/atm/fore200e.c 	return fore200e_setloop(fore200e, (int)(unsigned long)arg);
fore200e         1899 drivers/atm/fore200e.c 	return put_user(fore200e->loop_mode, (int __user *)arg) ? -EFAULT : 0;
fore200e         1913 drivers/atm/fore200e.c     struct fore200e*     fore200e     = FORE200E_DEV(vcc->dev);
fore200e         1929 drivers/atm/fore200e.c 	    flags, fore200e->available_cell_rate);
fore200e         1933 drivers/atm/fore200e.c 	mutex_lock(&fore200e->rate_mtx);
fore200e         1934 drivers/atm/fore200e.c 	if (fore200e->available_cell_rate + vcc->qos.txtp.max_pcr < qos->txtp.max_pcr) {
fore200e         1935 drivers/atm/fore200e.c 	    mutex_unlock(&fore200e->rate_mtx);
fore200e         1939 drivers/atm/fore200e.c 	fore200e->available_cell_rate += vcc->qos.txtp.max_pcr;
fore200e         1940 drivers/atm/fore200e.c 	fore200e->available_cell_rate -= qos->txtp.max_pcr;
fore200e         1942 drivers/atm/fore200e.c 	mutex_unlock(&fore200e->rate_mtx);
fore200e         1958 drivers/atm/fore200e.c static int fore200e_irq_request(struct fore200e *fore200e)
fore200e         1960 drivers/atm/fore200e.c     if (request_irq(fore200e->irq, fore200e_interrupt, IRQF_SHARED, fore200e->name, fore200e->atm_dev) < 0) {
fore200e         1963 drivers/atm/fore200e.c 	       fore200e_irq_itoa(fore200e->irq), fore200e->name);
fore200e         1968 drivers/atm/fore200e.c 	   fore200e_irq_itoa(fore200e->irq), fore200e->name);
fore200e         1971 drivers/atm/fore200e.c     tasklet_init(&fore200e->tx_tasklet, fore200e_tx_tasklet, (unsigned long)fore200e);
fore200e         1972 drivers/atm/fore200e.c     tasklet_init(&fore200e->rx_tasklet, fore200e_rx_tasklet, (unsigned long)fore200e);
fore200e         1975 drivers/atm/fore200e.c     fore200e->state = FORE200E_STATE_IRQ;
fore200e         1980 drivers/atm/fore200e.c static int fore200e_get_esi(struct fore200e *fore200e)
fore200e         1988 drivers/atm/fore200e.c     ok = fore200e->bus->prom_read(fore200e, prom);
fore200e         1995 drivers/atm/fore200e.c 	   fore200e->name, 
fore200e         2000 drivers/atm/fore200e.c 	fore200e->esi[ i ] = fore200e->atm_dev->esi[ i ] = prom->mac_addr[ i + 2 ];
fore200e         2009 drivers/atm/fore200e.c static int fore200e_alloc_rx_buf(struct fore200e *fore200e)
fore200e         2019 drivers/atm/fore200e.c 	    bsq = &fore200e->host_bsq[ scheme ][ magn ];
fore200e         2045 drivers/atm/fore200e.c 		if (fore200e_chunk_alloc(fore200e,
fore200e         2046 drivers/atm/fore200e.c 					 &buffer[ i ].data, size, fore200e->bus->buffer_alignment,
fore200e         2050 drivers/atm/fore200e.c 			fore200e_chunk_free(fore200e, &buffer[ --i ].data);
fore200e         2069 drivers/atm/fore200e.c     fore200e->state = FORE200E_STATE_ALLOC_BUF;
fore200e         2074 drivers/atm/fore200e.c static int fore200e_init_bs_queue(struct fore200e *fore200e)
fore200e         2086 drivers/atm/fore200e.c 	    bsq = &fore200e->host_bsq[ scheme ][ magn ];
fore200e         2089 drivers/atm/fore200e.c 	    if (fore200e_dma_chunk_alloc(fore200e,
fore200e         2093 drivers/atm/fore200e.c 					       fore200e->bus->status_alignment) < 0) {
fore200e         2098 drivers/atm/fore200e.c 	    if (fore200e_dma_chunk_alloc(fore200e,
fore200e         2102 drivers/atm/fore200e.c 					       fore200e->bus->descr_alignment) < 0) {
fore200e         2104 drivers/atm/fore200e.c 		fore200e_dma_chunk_free(fore200e, &bsq->status);
fore200e         2109 drivers/atm/fore200e.c 	    cp_entry = fore200e->virt_base + 
fore200e         2110 drivers/atm/fore200e.c 		       fore200e->bus->read(&fore200e->cp_queues->cp_bsq[ scheme ][ magn ]);
fore200e         2125 drivers/atm/fore200e.c 		fore200e->bus->write(FORE200E_DMA_INDEX(bsq->status.dma_addr, enum status, i), 
fore200e         2131 drivers/atm/fore200e.c     fore200e->state = FORE200E_STATE_INIT_BSQ;
fore200e         2136 drivers/atm/fore200e.c static int fore200e_init_rx_queue(struct fore200e *fore200e)
fore200e         2138 drivers/atm/fore200e.c     struct host_rxq*     rxq =  &fore200e->host_rxq;
fore200e         2145 drivers/atm/fore200e.c     if (fore200e_dma_chunk_alloc(fore200e,
fore200e         2149 drivers/atm/fore200e.c 				       fore200e->bus->status_alignment) < 0) {
fore200e         2154 drivers/atm/fore200e.c     if (fore200e_dma_chunk_alloc(fore200e,
fore200e         2158 drivers/atm/fore200e.c 				       fore200e->bus->descr_alignment) < 0) {
fore200e         2160 drivers/atm/fore200e.c 	fore200e_dma_chunk_free(fore200e, &rxq->status);
fore200e         2165 drivers/atm/fore200e.c     cp_entry = fore200e->virt_base + fore200e->bus->read(&fore200e->cp_queues->cp_rxq);
fore200e         2180 drivers/atm/fore200e.c 	fore200e->bus->write(FORE200E_DMA_INDEX(rxq->status.dma_addr, enum status, i), 
fore200e         2183 drivers/atm/fore200e.c 	fore200e->bus->write(FORE200E_DMA_INDEX(rxq->rpd.dma_addr, struct rpd, i),
fore200e         2190 drivers/atm/fore200e.c     fore200e->state = FORE200E_STATE_INIT_RXQ;
fore200e         2195 drivers/atm/fore200e.c static int fore200e_init_tx_queue(struct fore200e *fore200e)
fore200e         2197 drivers/atm/fore200e.c     struct host_txq*     txq =  &fore200e->host_txq;
fore200e         2204 drivers/atm/fore200e.c     if (fore200e_dma_chunk_alloc(fore200e,
fore200e         2208 drivers/atm/fore200e.c 				       fore200e->bus->status_alignment) < 0) {
fore200e         2213 drivers/atm/fore200e.c     if (fore200e_dma_chunk_alloc(fore200e,
fore200e         2217 drivers/atm/fore200e.c 				       fore200e->bus->descr_alignment) < 0) {
fore200e         2219 drivers/atm/fore200e.c 	fore200e_dma_chunk_free(fore200e, &txq->status);
fore200e         2224 drivers/atm/fore200e.c     cp_entry = fore200e->virt_base + fore200e->bus->read(&fore200e->cp_queues->cp_txq);
fore200e         2239 drivers/atm/fore200e.c 	fore200e->bus->write(FORE200E_DMA_INDEX(txq->status.dma_addr, enum status, i), 
fore200e         2252 drivers/atm/fore200e.c     fore200e->state = FORE200E_STATE_INIT_TXQ;
fore200e         2257 drivers/atm/fore200e.c static int fore200e_init_cmd_queue(struct fore200e *fore200e)
fore200e         2259 drivers/atm/fore200e.c     struct host_cmdq*     cmdq =  &fore200e->host_cmdq;
fore200e         2266 drivers/atm/fore200e.c     if (fore200e_dma_chunk_alloc(fore200e,
fore200e         2270 drivers/atm/fore200e.c 				       fore200e->bus->status_alignment) < 0) {
fore200e         2275 drivers/atm/fore200e.c     cp_entry = fore200e->virt_base + fore200e->bus->read(&fore200e->cp_queues->cp_cmdq);
fore200e         2286 drivers/atm/fore200e.c 	fore200e->bus->write(FORE200E_DMA_INDEX(cmdq->status.dma_addr, enum status, i), 
fore200e         2293 drivers/atm/fore200e.c     fore200e->state = FORE200E_STATE_INIT_CMDQ;
fore200e         2298 drivers/atm/fore200e.c static void fore200e_param_bs_queue(struct fore200e *fore200e,
fore200e         2303 drivers/atm/fore200e.c     struct bs_spec __iomem * bs_spec = &fore200e->cp_queues->init.bs_spec[ scheme ][ magn ];
fore200e         2305 drivers/atm/fore200e.c     fore200e->bus->write(queue_length,                           &bs_spec->queue_length);
fore200e         2306 drivers/atm/fore200e.c     fore200e->bus->write(fore200e_rx_buf_size[ scheme ][ magn ], &bs_spec->buffer_size);
fore200e         2307 drivers/atm/fore200e.c     fore200e->bus->write(pool_size,                              &bs_spec->pool_size);
fore200e         2308 drivers/atm/fore200e.c     fore200e->bus->write(supply_blksize,                         &bs_spec->supply_blksize);
fore200e         2312 drivers/atm/fore200e.c static int fore200e_initialize(struct fore200e *fore200e)
fore200e         2317 drivers/atm/fore200e.c     DPRINTK(2, "device %s being initialized\n", fore200e->name);
fore200e         2319 drivers/atm/fore200e.c     mutex_init(&fore200e->rate_mtx);
fore200e         2320 drivers/atm/fore200e.c     spin_lock_init(&fore200e->q_lock);
fore200e         2322 drivers/atm/fore200e.c     cpq = fore200e->cp_queues = fore200e->virt_base + FORE200E_CP_QUEUES_OFFSET;
fore200e         2325 drivers/atm/fore200e.c     fore200e->bus->write(1, &cpq->imask);
fore200e         2327 drivers/atm/fore200e.c     if (fore200e->bus->irq_enable)
fore200e         2328 drivers/atm/fore200e.c 	fore200e->bus->irq_enable(fore200e);
fore200e         2330 drivers/atm/fore200e.c     fore200e->bus->write(NBR_CONNECT, &cpq->init.num_connect);
fore200e         2332 drivers/atm/fore200e.c     fore200e->bus->write(QUEUE_SIZE_CMD, &cpq->init.cmd_queue_len);
fore200e         2333 drivers/atm/fore200e.c     fore200e->bus->write(QUEUE_SIZE_RX,  &cpq->init.rx_queue_len);
fore200e         2334 drivers/atm/fore200e.c     fore200e->bus->write(QUEUE_SIZE_TX,  &cpq->init.tx_queue_len);
fore200e         2336 drivers/atm/fore200e.c     fore200e->bus->write(RSD_EXTENSION,  &cpq->init.rsd_extension);
fore200e         2337 drivers/atm/fore200e.c     fore200e->bus->write(TSD_EXTENSION,  &cpq->init.tsd_extension);
fore200e         2341 drivers/atm/fore200e.c 	    fore200e_param_bs_queue(fore200e, scheme, magn,
fore200e         2347 drivers/atm/fore200e.c     fore200e->bus->write(STATUS_PENDING,    &cpq->init.status);
fore200e         2348 drivers/atm/fore200e.c     fore200e->bus->write(OPCODE_INITIALIZE, &cpq->init.opcode);
fore200e         2350 drivers/atm/fore200e.c     ok = fore200e_io_poll(fore200e, &cpq->init.status, STATUS_COMPLETE, 3000);
fore200e         2352 drivers/atm/fore200e.c 	printk(FORE200E "device %s initialization failed\n", fore200e->name);
fore200e         2356 drivers/atm/fore200e.c     printk(FORE200E "device %s initialized\n", fore200e->name);
fore200e         2358 drivers/atm/fore200e.c     fore200e->state = FORE200E_STATE_INITIALIZE;
fore200e         2363 drivers/atm/fore200e.c static void fore200e_monitor_putc(struct fore200e *fore200e, char c)
fore200e         2365 drivers/atm/fore200e.c     struct cp_monitor __iomem * monitor = fore200e->cp_monitor;
fore200e         2370 drivers/atm/fore200e.c     fore200e->bus->write(((u32) c) | FORE200E_CP_MONITOR_UART_AVAIL, &monitor->soft_uart.send);
fore200e         2374 drivers/atm/fore200e.c static int fore200e_monitor_getc(struct fore200e *fore200e)
fore200e         2376 drivers/atm/fore200e.c     struct cp_monitor __iomem * monitor = fore200e->cp_monitor;
fore200e         2382 drivers/atm/fore200e.c 	c = (int) fore200e->bus->read(&monitor->soft_uart.recv);
fore200e         2386 drivers/atm/fore200e.c 	    fore200e->bus->write(FORE200E_CP_MONITOR_UART_FREE, &monitor->soft_uart.recv);
fore200e         2398 drivers/atm/fore200e.c static void fore200e_monitor_puts(struct fore200e *fore200e, char *str)
fore200e         2403 drivers/atm/fore200e.c 	while (fore200e_monitor_getc(fore200e) >= 0);
fore200e         2405 drivers/atm/fore200e.c 	fore200e_monitor_putc(fore200e, *str++);
fore200e         2408 drivers/atm/fore200e.c     while (fore200e_monitor_getc(fore200e) >= 0);
fore200e         2417 drivers/atm/fore200e.c static int fore200e_load_and_start_fw(struct fore200e *fore200e)
fore200e         2427 drivers/atm/fore200e.c     sprintf(buf, "%s%s", fore200e->bus->proc_name, FW_EXT);
fore200e         2428 drivers/atm/fore200e.c     if ((err = request_firmware(&firmware, buf, fore200e->dev)) < 0) {
fore200e         2429 drivers/atm/fore200e.c 	printk(FORE200E "problem loading firmware image %s\n", fore200e->bus->model_name);
fore200e         2436 drivers/atm/fore200e.c     load_addr = fore200e->virt_base + le32_to_cpu(fw_header->load_offset);
fore200e         2439 drivers/atm/fore200e.c 	    fore200e->name, load_addr, fw_size);
fore200e         2442 drivers/atm/fore200e.c 	printk(FORE200E "corrupted %s firmware image\n", fore200e->bus->model_name);
fore200e         2447 drivers/atm/fore200e.c 	fore200e->bus->write(le32_to_cpu(*fw_data), load_addr);
fore200e         2449 drivers/atm/fore200e.c     DPRINTK(2, "device %s firmware being started\n", fore200e->name);
fore200e         2457 drivers/atm/fore200e.c     fore200e_monitor_puts(fore200e, buf);
fore200e         2459 drivers/atm/fore200e.c     if (fore200e_io_poll(fore200e, &fore200e->cp_monitor->bstat, BSTAT_CP_RUNNING, 1000) == 0) {
fore200e         2460 drivers/atm/fore200e.c 	printk(FORE200E "device %s firmware didn't start\n", fore200e->name);
fore200e         2464 drivers/atm/fore200e.c     printk(FORE200E "device %s firmware started\n", fore200e->name);
fore200e         2466 drivers/atm/fore200e.c     fore200e->state = FORE200E_STATE_START_FW;
fore200e         2475 drivers/atm/fore200e.c static int fore200e_register(struct fore200e *fore200e, struct device *parent)
fore200e         2479 drivers/atm/fore200e.c     DPRINTK(2, "device %s being registered\n", fore200e->name);
fore200e         2481 drivers/atm/fore200e.c     atm_dev = atm_dev_register(fore200e->bus->proc_name, parent, &fore200e_ops,
fore200e         2484 drivers/atm/fore200e.c 	printk(FORE200E "unable to register device %s\n", fore200e->name);
fore200e         2488 drivers/atm/fore200e.c     atm_dev->dev_data = fore200e;
fore200e         2489 drivers/atm/fore200e.c     fore200e->atm_dev = atm_dev;
fore200e         2494 drivers/atm/fore200e.c     fore200e->available_cell_rate = ATM_OC3_PCR;
fore200e         2496 drivers/atm/fore200e.c     fore200e->state = FORE200E_STATE_REGISTER;
fore200e         2501 drivers/atm/fore200e.c static int fore200e_init(struct fore200e *fore200e, struct device *parent)
fore200e         2503 drivers/atm/fore200e.c     if (fore200e_register(fore200e, parent) < 0)
fore200e         2506 drivers/atm/fore200e.c     if (fore200e->bus->configure(fore200e) < 0)
fore200e         2509 drivers/atm/fore200e.c     if (fore200e->bus->map(fore200e) < 0)
fore200e         2512 drivers/atm/fore200e.c     if (fore200e_reset(fore200e, 1) < 0)
fore200e         2515 drivers/atm/fore200e.c     if (fore200e_load_and_start_fw(fore200e) < 0)
fore200e         2518 drivers/atm/fore200e.c     if (fore200e_initialize(fore200e) < 0)
fore200e         2521 drivers/atm/fore200e.c     if (fore200e_init_cmd_queue(fore200e) < 0)
fore200e         2524 drivers/atm/fore200e.c     if (fore200e_init_tx_queue(fore200e) < 0)
fore200e         2527 drivers/atm/fore200e.c     if (fore200e_init_rx_queue(fore200e) < 0)
fore200e         2530 drivers/atm/fore200e.c     if (fore200e_init_bs_queue(fore200e) < 0)
fore200e         2533 drivers/atm/fore200e.c     if (fore200e_alloc_rx_buf(fore200e) < 0)
fore200e         2536 drivers/atm/fore200e.c     if (fore200e_get_esi(fore200e) < 0)
fore200e         2539 drivers/atm/fore200e.c     if (fore200e_irq_request(fore200e) < 0)
fore200e         2542 drivers/atm/fore200e.c     fore200e_supply(fore200e);
fore200e         2545 drivers/atm/fore200e.c     fore200e->state = FORE200E_STATE_COMPLETE;
fore200e         2554 drivers/atm/fore200e.c 	struct fore200e *fore200e;
fore200e         2562 drivers/atm/fore200e.c 	fore200e = kzalloc(sizeof(struct fore200e), GFP_KERNEL);
fore200e         2563 drivers/atm/fore200e.c 	if (!fore200e)
fore200e         2566 drivers/atm/fore200e.c 	fore200e->bus = &fore200e_sbus_ops;
fore200e         2567 drivers/atm/fore200e.c 	fore200e->dev = &op->dev;
fore200e         2568 drivers/atm/fore200e.c 	fore200e->irq = op->archdata.irqs[0];
fore200e         2569 drivers/atm/fore200e.c 	fore200e->phys_base = op->resource[0].start;
fore200e         2571 drivers/atm/fore200e.c 	sprintf(fore200e->name, "SBA-200E-%d", index);
fore200e         2573 drivers/atm/fore200e.c 	err = fore200e_init(fore200e, &op->dev);
fore200e         2575 drivers/atm/fore200e.c 		fore200e_shutdown(fore200e);
fore200e         2576 drivers/atm/fore200e.c 		kfree(fore200e);
fore200e         2581 drivers/atm/fore200e.c 	dev_set_drvdata(&op->dev, fore200e);
fore200e         2588 drivers/atm/fore200e.c 	struct fore200e *fore200e = dev_get_drvdata(&op->dev);
fore200e         2590 drivers/atm/fore200e.c 	fore200e_shutdown(fore200e);
fore200e         2591 drivers/atm/fore200e.c 	kfree(fore200e);
fore200e         2618 drivers/atm/fore200e.c     struct fore200e* fore200e;
fore200e         2632 drivers/atm/fore200e.c     fore200e = kzalloc(sizeof(struct fore200e), GFP_KERNEL);
fore200e         2633 drivers/atm/fore200e.c     if (fore200e == NULL) {
fore200e         2638 drivers/atm/fore200e.c     fore200e->bus       = &fore200e_pci_ops;
fore200e         2639 drivers/atm/fore200e.c     fore200e->dev	= &pci_dev->dev;
fore200e         2640 drivers/atm/fore200e.c     fore200e->irq       = pci_dev->irq;
fore200e         2641 drivers/atm/fore200e.c     fore200e->phys_base = pci_resource_start(pci_dev, 0);
fore200e         2643 drivers/atm/fore200e.c     sprintf(fore200e->name, "PCA-200E-%d", index - 1);
fore200e         2648 drivers/atm/fore200e.c 	   fore200e->phys_base, fore200e_irq_itoa(fore200e->irq));
fore200e         2650 drivers/atm/fore200e.c     sprintf(fore200e->name, "PCA-200E-%d", index);
fore200e         2652 drivers/atm/fore200e.c     err = fore200e_init(fore200e, &pci_dev->dev);
fore200e         2654 drivers/atm/fore200e.c 	fore200e_shutdown(fore200e);
fore200e         2659 drivers/atm/fore200e.c     pci_set_drvdata(pci_dev, fore200e);
fore200e         2665 drivers/atm/fore200e.c     kfree(fore200e);
fore200e         2674 drivers/atm/fore200e.c     struct fore200e *fore200e;
fore200e         2676 drivers/atm/fore200e.c     fore200e = pci_get_drvdata(pci_dev);
fore200e         2678 drivers/atm/fore200e.c     fore200e_shutdown(fore200e);
fore200e         2679 drivers/atm/fore200e.c     kfree(fore200e);
fore200e         2736 drivers/atm/fore200e.c     struct fore200e*     fore200e  = FORE200E_DEV(dev);
fore200e         2744 drivers/atm/fore200e.c 	if (fore200e_getstats(fore200e) < 0)
fore200e         2749 drivers/atm/fore200e.c 		       "   internal name:\t\t%s\n", fore200e->name);
fore200e         2752 drivers/atm/fore200e.c 	if (fore200e->bus->proc_read)
fore200e         2753 drivers/atm/fore200e.c 	    len += fore200e->bus->proc_read(fore200e, page + len);
fore200e         2761 drivers/atm/fore200e.c 		fore200e_irq_itoa(fore200e->irq),
fore200e         2762 drivers/atm/fore200e.c 		(void*)fore200e->phys_base,
fore200e         2763 drivers/atm/fore200e.c 		fore200e->virt_base,
fore200e         2764 drivers/atm/fore200e.c 		fore200e->esi,
fore200e         2765 drivers/atm/fore200e.c 		fore200e->esi[4] * 256 + fore200e->esi[5]);
fore200e         2776 drivers/atm/fore200e.c 		       fore200e->host_bsq[ BUFFER_SCHEME_ONE ][ BUFFER_MAGN_SMALL ].freebuf_count,
fore200e         2777 drivers/atm/fore200e.c 		       fore200e->host_bsq[ BUFFER_SCHEME_ONE ][ BUFFER_MAGN_LARGE ].freebuf_count,
fore200e         2778 drivers/atm/fore200e.c 		       fore200e->host_bsq[ BUFFER_SCHEME_TWO ][ BUFFER_MAGN_SMALL ].freebuf_count,
fore200e         2779 drivers/atm/fore200e.c 		       fore200e->host_bsq[ BUFFER_SCHEME_TWO ][ BUFFER_MAGN_LARGE ].freebuf_count);
fore200e         2782 drivers/atm/fore200e.c 	u32 hb = fore200e->bus->read(&fore200e->cp_queues->heartbeat);
fore200e         2813 drivers/atm/fore200e.c 	u32 fw_release     = fore200e->bus->read(&fore200e->cp_queues->fw_release);
fore200e         2814 drivers/atm/fore200e.c 	u32 mon960_release = fore200e->bus->read(&fore200e->cp_queues->mon960_release);
fore200e         2815 drivers/atm/fore200e.c 	u32 oc3_revision   = fore200e->bus->read(&fore200e->cp_queues->oc3_revision);
fore200e         2816 drivers/atm/fore200e.c 	u32 media_index    = FORE200E_MEDIA_INDEX(fore200e->bus->read(&fore200e->cp_queues->media_type));
fore200e         2822 drivers/atm/fore200e.c 	switch (fore200e->loop_mode) {
fore200e         2846 drivers/atm/fore200e.c 	struct cp_monitor __iomem * cp_monitor = fore200e->cp_monitor;
fore200e         2853 drivers/atm/fore200e.c 		       fore200e->bus->read(&cp_monitor->mon_version),
fore200e         2854 drivers/atm/fore200e.c 		       fore200e->bus->read(&cp_monitor->bstat));
fore200e         2864 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->phy.crc_header_errors),
fore200e         2865 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->phy.framing_errors));
fore200e         2877 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->oc3.section_bip8_errors),
fore200e         2878 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->oc3.path_bip8_errors),
fore200e         2879 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->oc3.line_bip24_errors),
fore200e         2880 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->oc3.line_febe_errors),
fore200e         2881 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->oc3.path_febe_errors),
fore200e         2882 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->oc3.corr_hcs_errors),
fore200e         2883 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->oc3.ucorr_hcs_errors));
fore200e         2894 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->atm.cells_transmitted),
fore200e         2895 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->atm.cells_received),
fore200e         2896 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->atm.vpi_bad_range),
fore200e         2897 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->atm.vpi_no_conn),
fore200e         2898 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->atm.vci_bad_range),
fore200e         2899 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->atm.vci_no_conn));
fore200e         2907 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->aal0.cells_transmitted),
fore200e         2908 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->aal0.cells_received),
fore200e         2909 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->aal0.cells_dropped));
fore200e         2925 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->aal34.cells_transmitted),
fore200e         2926 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->aal34.cells_received),
fore200e         2927 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->aal34.cells_dropped),
fore200e         2928 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->aal34.cells_crc_errors),
fore200e         2929 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->aal34.cells_protocol_errors),
fore200e         2930 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->aal34.cspdus_transmitted),
fore200e         2931 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->aal34.cspdus_received),
fore200e         2932 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->aal34.cspdus_dropped),
fore200e         2933 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->aal34.cspdus_protocol_errors));
fore200e         2949 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->aal5.cells_transmitted),
fore200e         2950 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->aal5.cells_received),
fore200e         2951 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->aal5.cells_dropped),
fore200e         2952 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->aal5.congestion_experienced),
fore200e         2953 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->aal5.cspdus_transmitted),
fore200e         2954 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->aal5.cspdus_received),
fore200e         2955 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->aal5.cspdus_dropped),
fore200e         2956 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->aal5.cspdus_crc_errors),
fore200e         2957 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->aal5.cspdus_protocol_errors));
fore200e         2968 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->aux.small_b1_failed),
fore200e         2969 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->aux.large_b1_failed),
fore200e         2970 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->aux.small_b2_failed),
fore200e         2971 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->aux.large_b2_failed),
fore200e         2972 drivers/atm/fore200e.c 		       be32_to_cpu(fore200e->stats->aux.rpd_alloc_failed),
fore200e         2973 drivers/atm/fore200e.c 		       fore200e->tx_sat);
fore200e         2978 drivers/atm/fore200e.c 		       fore200e->stats->aux.receive_carrier ? "ON" : "OFF!");
fore200e         2988 drivers/atm/fore200e.c 	vcc = fore200e->vc_map[i].vcc;
fore200e         2993 drivers/atm/fore200e.c 	spin_lock_irqsave(&fore200e->q_lock, flags);
fore200e         3011 drivers/atm/fore200e.c 	    spin_unlock_irqrestore(&fore200e->q_lock, flags);
fore200e         3015 drivers/atm/fore200e.c 	spin_unlock_irqrestore(&fore200e->q_lock, flags);
fore200e           65 drivers/atm/fore200e.h #define FORE200E_DEV(d)          ((struct fore200e*)((d)->dev_data))
fore200e          796 drivers/atm/fore200e.h struct fore200e;
fore200e          808 drivers/atm/fore200e.h     int                  (*configure)(struct fore200e*); 
fore200e          809 drivers/atm/fore200e.h     int                  (*map)(struct fore200e*); 
fore200e          810 drivers/atm/fore200e.h     void                 (*reset)(struct fore200e*);
fore200e          811 drivers/atm/fore200e.h     int                  (*prom_read)(struct fore200e*, struct prom_data*);
fore200e          812 drivers/atm/fore200e.h     void                 (*unmap)(struct fore200e*);
fore200e          813 drivers/atm/fore200e.h     void                 (*irq_enable)(struct fore200e*);
fore200e          814 drivers/atm/fore200e.h     int                  (*irq_check)(struct fore200e*);
fore200e          815 drivers/atm/fore200e.h     void                 (*irq_ack)(struct fore200e*);
fore200e          816 drivers/atm/fore200e.h     int                  (*proc_read)(struct fore200e*, char*);
fore200e          826 drivers/atm/fore200e.h #define FORE200E_VC_MAP(fore200e, vpi, vci)  \
fore200e          827 drivers/atm/fore200e.h         (& (fore200e)->vc_map[ ((vpi) << FORE200E_VCI_BITS) | (vci) ])