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