Lines Matching refs:ca91cx42_bridge

93 static u32 ca91cx42_VERR_irqhandler(struct vme_bridge *ca91cx42_bridge)  in ca91cx42_VERR_irqhandler()  argument
98 bridge = ca91cx42_bridge->driver_priv; in ca91cx42_VERR_irqhandler()
103 dev_err(ca91cx42_bridge->parent, "ca91cx42_VERR_irqhandler DMA " in ca91cx42_VERR_irqhandler()
110 static u32 ca91cx42_LERR_irqhandler(struct vme_bridge *ca91cx42_bridge) in ca91cx42_LERR_irqhandler() argument
115 bridge = ca91cx42_bridge->driver_priv; in ca91cx42_LERR_irqhandler()
120 dev_err(ca91cx42_bridge->parent, "ca91cx42_LERR_irqhandler DMA " in ca91cx42_LERR_irqhandler()
127 static u32 ca91cx42_VIRQ_irqhandler(struct vme_bridge *ca91cx42_bridge, in ca91cx42_VIRQ_irqhandler() argument
133 bridge = ca91cx42_bridge->driver_priv; in ca91cx42_VIRQ_irqhandler()
141 vme_irq_handler(ca91cx42_bridge, i, vec); in ca91cx42_VIRQ_irqhandler()
153 struct vme_bridge *ca91cx42_bridge; in ca91cx42_irqhandler() local
156 ca91cx42_bridge = ptr; in ca91cx42_irqhandler()
158 bridge = ca91cx42_bridge->driver_priv; in ca91cx42_irqhandler()
179 serviced |= ca91cx42_VERR_irqhandler(ca91cx42_bridge); in ca91cx42_irqhandler()
181 serviced |= ca91cx42_LERR_irqhandler(ca91cx42_bridge); in ca91cx42_irqhandler()
186 serviced |= ca91cx42_VIRQ_irqhandler(ca91cx42_bridge, stat); in ca91cx42_irqhandler()
194 static int ca91cx42_irq_init(struct vme_bridge *ca91cx42_bridge) in ca91cx42_irq_init() argument
200 bridge = ca91cx42_bridge->driver_priv; in ca91cx42_irq_init()
203 pdev = to_pci_dev(ca91cx42_bridge->parent); in ca91cx42_irq_init()
214 driver_name, ca91cx42_bridge); in ca91cx42_irq_init()
239 struct vme_bridge *ca91cx42_bridge; in ca91cx42_irq_exit() local
249 ca91cx42_bridge = container_of((void *)bridge, struct vme_bridge, in ca91cx42_irq_exit()
251 free_irq(pdev->irq, ca91cx42_bridge); in ca91cx42_irq_exit()
269 static void ca91cx42_irq_set(struct vme_bridge *ca91cx42_bridge, int level, in ca91cx42_irq_set() argument
277 bridge = ca91cx42_bridge->driver_priv; in ca91cx42_irq_set()
290 pdev = to_pci_dev(ca91cx42_bridge->parent); in ca91cx42_irq_set()
296 static int ca91cx42_irq_generate(struct vme_bridge *ca91cx42_bridge, int level, in ca91cx42_irq_generate() argument
302 bridge = ca91cx42_bridge->driver_priv; in ca91cx42_irq_generate()
340 struct vme_bridge *ca91cx42_bridge; in ca91cx42_slave_set() local
343 ca91cx42_bridge = image->parent; in ca91cx42_slave_set()
345 bridge = ca91cx42_bridge->driver_priv; in ca91cx42_slave_set()
370 dev_err(ca91cx42_bridge->parent, "Invalid address space\n"); in ca91cx42_slave_set()
388 dev_err(ca91cx42_bridge->parent, "Invalid VME base " in ca91cx42_slave_set()
393 dev_err(ca91cx42_bridge->parent, "Invalid VME bound " in ca91cx42_slave_set()
398 dev_err(ca91cx42_bridge->parent, "Invalid PCI Offset " in ca91cx42_slave_set()
505 struct vme_bridge *ca91cx42_bridge; in ca91cx42_alloc_resource() local
507 ca91cx42_bridge = image->parent; in ca91cx42_alloc_resource()
510 if (!ca91cx42_bridge->parent) { in ca91cx42_alloc_resource()
511 dev_err(ca91cx42_bridge->parent, "Dev entry NULL\n"); in ca91cx42_alloc_resource()
514 pdev = to_pci_dev(ca91cx42_bridge->parent); in ca91cx42_alloc_resource()
540 ca91cx42_bridge->name, image->number); in ca91cx42_alloc_resource()
550 dev_err(ca91cx42_bridge->parent, "Failed to allocate mem " in ca91cx42_alloc_resource()
560 dev_err(ca91cx42_bridge->parent, "Failed to remap resource\n"); in ca91cx42_alloc_resource()
597 struct vme_bridge *ca91cx42_bridge; in ca91cx42_master_set() local
600 ca91cx42_bridge = image->parent; in ca91cx42_master_set()
602 bridge = ca91cx42_bridge->driver_priv; in ca91cx42_master_set()
613 dev_err(ca91cx42_bridge->parent, "Invalid VME Window " in ca91cx42_master_set()
619 dev_err(ca91cx42_bridge->parent, "Invalid VME Window " in ca91cx42_master_set()
634 dev_err(ca91cx42_bridge->parent, "Unable to allocate memory " in ca91cx42_master_set()
678 dev_err(ca91cx42_bridge->parent, "Invalid data width\n"); in ca91cx42_master_set()
710 dev_err(ca91cx42_bridge->parent, "Invalid address space\n"); in ca91cx42_master_set()
1162 static int ca91cx42_dma_busy(struct vme_bridge *ca91cx42_bridge) in ca91cx42_dma_busy() argument
1167 bridge = ca91cx42_bridge->driver_priv; in ca91cx42_dma_busy()
1488 static int ca91cx42_slot_get(struct vme_bridge *ca91cx42_bridge) in ca91cx42_slot_get() argument
1493 bridge = ca91cx42_bridge->driver_priv; in ca91cx42_slot_get()
1535 static int ca91cx42_crcsr_init(struct vme_bridge *ca91cx42_bridge, in ca91cx42_crcsr_init() argument
1542 bridge = ca91cx42_bridge->driver_priv; in ca91cx42_crcsr_init()
1544 slot = ca91cx42_slot_get(ca91cx42_bridge); in ca91cx42_crcsr_init()
1576 static void ca91cx42_crcsr_exit(struct vme_bridge *ca91cx42_bridge, in ca91cx42_crcsr_exit() argument
1582 bridge = ca91cx42_bridge->driver_priv; in ca91cx42_crcsr_exit()
1601 struct vme_bridge *ca91cx42_bridge; in ca91cx42_probe() local
1611 ca91cx42_bridge = kzalloc(sizeof(*ca91cx42_bridge), GFP_KERNEL); in ca91cx42_probe()
1612 if (!ca91cx42_bridge) { in ca91cx42_probe()
1616 vme_init_bridge(ca91cx42_bridge); in ca91cx42_probe()
1624 ca91cx42_bridge->driver_priv = ca91cx42_device; in ca91cx42_probe()
1663 ca91cx42_bridge->parent = &pdev->dev; in ca91cx42_probe()
1664 strcpy(ca91cx42_bridge->name, driver_name); in ca91cx42_probe()
1667 retval = ca91cx42_irq_init(ca91cx42_bridge); in ca91cx42_probe()
1680 master_image->parent = ca91cx42_bridge; in ca91cx42_probe()
1693 &ca91cx42_bridge->master_resources); in ca91cx42_probe()
1703 slave_image->parent = ca91cx42_bridge; in ca91cx42_probe()
1717 &ca91cx42_bridge->slave_resources); in ca91cx42_probe()
1727 dma_ctrlr->parent = ca91cx42_bridge; in ca91cx42_probe()
1736 &ca91cx42_bridge->dma_resources); in ca91cx42_probe()
1745 lm->parent = ca91cx42_bridge; in ca91cx42_probe()
1750 list_add_tail(&lm->list, &ca91cx42_bridge->lm_resources); in ca91cx42_probe()
1752 ca91cx42_bridge->slave_get = ca91cx42_slave_get; in ca91cx42_probe()
1753 ca91cx42_bridge->slave_set = ca91cx42_slave_set; in ca91cx42_probe()
1754 ca91cx42_bridge->master_get = ca91cx42_master_get; in ca91cx42_probe()
1755 ca91cx42_bridge->master_set = ca91cx42_master_set; in ca91cx42_probe()
1756 ca91cx42_bridge->master_read = ca91cx42_master_read; in ca91cx42_probe()
1757 ca91cx42_bridge->master_write = ca91cx42_master_write; in ca91cx42_probe()
1758 ca91cx42_bridge->master_rmw = ca91cx42_master_rmw; in ca91cx42_probe()
1759 ca91cx42_bridge->dma_list_add = ca91cx42_dma_list_add; in ca91cx42_probe()
1760 ca91cx42_bridge->dma_list_exec = ca91cx42_dma_list_exec; in ca91cx42_probe()
1761 ca91cx42_bridge->dma_list_empty = ca91cx42_dma_list_empty; in ca91cx42_probe()
1762 ca91cx42_bridge->irq_set = ca91cx42_irq_set; in ca91cx42_probe()
1763 ca91cx42_bridge->irq_generate = ca91cx42_irq_generate; in ca91cx42_probe()
1764 ca91cx42_bridge->lm_set = ca91cx42_lm_set; in ca91cx42_probe()
1765 ca91cx42_bridge->lm_get = ca91cx42_lm_get; in ca91cx42_probe()
1766 ca91cx42_bridge->lm_attach = ca91cx42_lm_attach; in ca91cx42_probe()
1767 ca91cx42_bridge->lm_detach = ca91cx42_lm_detach; in ca91cx42_probe()
1768 ca91cx42_bridge->slot_get = ca91cx42_slot_get; in ca91cx42_probe()
1769 ca91cx42_bridge->alloc_consistent = ca91cx42_alloc_consistent; in ca91cx42_probe()
1770 ca91cx42_bridge->free_consistent = ca91cx42_free_consistent; in ca91cx42_probe()
1776 ca91cx42_slot_get(ca91cx42_bridge)); in ca91cx42_probe()
1778 if (ca91cx42_crcsr_init(ca91cx42_bridge, pdev)) in ca91cx42_probe()
1784 retval = vme_register_bridge(ca91cx42_bridge); in ca91cx42_probe()
1790 pci_set_drvdata(pdev, ca91cx42_bridge); in ca91cx42_probe()
1795 ca91cx42_crcsr_exit(ca91cx42_bridge, pdev); in ca91cx42_probe()
1798 list_for_each_safe(pos, n, &ca91cx42_bridge->lm_resources) { in ca91cx42_probe()
1805 list_for_each_safe(pos, n, &ca91cx42_bridge->dma_resources) { in ca91cx42_probe()
1812 list_for_each_safe(pos, n, &ca91cx42_bridge->slave_resources) { in ca91cx42_probe()
1819 list_for_each_safe(pos, n, &ca91cx42_bridge->master_resources) { in ca91cx42_probe()
1837 kfree(ca91cx42_bridge); in ca91cx42_probe()
1851 struct vme_bridge *ca91cx42_bridge = pci_get_drvdata(pdev); in ca91cx42_remove() local
1853 bridge = ca91cx42_bridge->driver_priv; in ca91cx42_remove()
1877 vme_unregister_bridge(ca91cx42_bridge); in ca91cx42_remove()
1879 ca91cx42_crcsr_exit(ca91cx42_bridge, pdev); in ca91cx42_remove()
1882 list_for_each_safe(pos, n, &ca91cx42_bridge->lm_resources) { in ca91cx42_remove()
1889 list_for_each_safe(pos, n, &ca91cx42_bridge->dma_resources) { in ca91cx42_remove()
1896 list_for_each_safe(pos, n, &ca91cx42_bridge->slave_resources) { in ca91cx42_remove()
1903 list_for_each_safe(pos, n, &ca91cx42_bridge->master_resources) { in ca91cx42_remove()
1918 kfree(ca91cx42_bridge); in ca91cx42_remove()