Lines Matching defs:tsi148_bridge
116 static u32 tsi148_MB_irqhandler(struct vme_bridge *tsi148_bridge, u32 stat)
123 bridge = tsi148_bridge->driver_priv;
128 dev_err(tsi148_bridge->parent, "VME Mailbox %d received"
140 static u32 tsi148_PERR_irqhandler(struct vme_bridge *tsi148_bridge)
144 bridge = tsi148_bridge->driver_priv;
146 dev_err(tsi148_bridge->parent, "PCI Exception at address: 0x%08x:%08x, "
152 dev_err(tsi148_bridge->parent, "PCI-X attribute reg: %08x, PCI-X split "
165 static u32 tsi148_VERR_irqhandler(struct vme_bridge *tsi148_bridge)
173 bridge = tsi148_bridge->driver_priv;
184 dev_err(tsi148_bridge->parent, "VME Bus Exception Overflow "
189 vme_bus_error_handler(tsi148_bridge, error_addr, error_am);
191 dev_err(tsi148_bridge->parent,
214 static u32 tsi148_VIRQ_irqhandler(struct vme_bridge *tsi148_bridge,
220 bridge = tsi148_bridge->driver_priv;
231 vme_irq_handler(tsi148_bridge, i, vec);
247 struct vme_bridge *tsi148_bridge;
250 tsi148_bridge = ptr;
252 bridge = tsi148_bridge->driver_priv;
277 serviced |= tsi148_MB_irqhandler(tsi148_bridge, stat);
281 serviced |= tsi148_PERR_irqhandler(tsi148_bridge);
285 serviced |= tsi148_VERR_irqhandler(tsi148_bridge);
296 serviced |= tsi148_VIRQ_irqhandler(tsi148_bridge, stat);
304 static int tsi148_irq_init(struct vme_bridge *tsi148_bridge)
311 pdev = to_pci_dev(tsi148_bridge->parent);
313 bridge = tsi148_bridge->driver_priv;
318 driver_name, tsi148_bridge);
320 dev_err(tsi148_bridge->parent, "Can't get assigned pci irq "
365 static void tsi148_irq_exit(struct vme_bridge *tsi148_bridge,
368 struct tsi148_driver *bridge = tsi148_bridge->driver_priv;
378 free_irq(pdev->irq, tsi148_bridge);
399 static void tsi148_irq_set(struct vme_bridge *tsi148_bridge, int level,
406 bridge = tsi148_bridge->driver_priv;
419 pdev = to_pci_dev(tsi148_bridge->parent);
437 static int tsi148_irq_generate(struct vme_bridge *tsi148_bridge, int level,
443 bridge = tsi148_bridge->driver_priv;
481 struct vme_bridge *tsi148_bridge;
484 tsi148_bridge = image->parent;
485 bridge = tsi148_bridge->driver_priv;
507 dev_err(tsi148_bridge->parent, "Invalid address space\n");
525 dev_err(tsi148_bridge->parent, "Invalid VME base alignment\n");
529 dev_err(tsi148_bridge->parent, "Invalid VME bound alignment\n");
533 dev_err(tsi148_bridge->parent, "Invalid PCI Offset "
722 struct vme_bridge *tsi148_bridge;
724 tsi148_bridge = image->parent;
726 pdev = to_pci_dev(tsi148_bridge->parent);
755 sprintf((char *)image->bus_resource.name, "%s.%d", tsi148_bridge->name,
766 dev_err(tsi148_bridge->parent, "Failed to allocate mem "
776 dev_err(tsi148_bridge->parent, "Failed to remap resource\n");
818 struct vme_bridge *tsi148_bridge;
823 tsi148_bridge = image->parent;
825 bridge = tsi148_bridge->driver_priv;
827 pdev = to_pci_dev(tsi148_bridge->parent);
831 dev_err(tsi148_bridge->parent, "Invalid VME Window "
838 dev_err(tsi148_bridge->parent, "Size must be non-zero for "
853 dev_err(tsi148_bridge->parent, "Unable to allocate memory for "
882 dev_err(tsi148_bridge->parent, "Invalid PCI base alignment\n");
888 dev_err(tsi148_bridge->parent, "Invalid PCI bound alignment\n");
894 dev_err(tsi148_bridge->parent, "Invalid VME Offset "
941 dev_warn(tsi148_bridge->parent, "Currently not setting "
958 dev_err(tsi148_bridge->parent, "Invalid data width\n");
995 dev_err(tsi148_bridge->parent, "Invalid address space\n");
1182 struct vme_bridge *tsi148_bridge;
1187 tsi148_bridge = image->parent;
1194 handler = vme_register_error_handler(tsi148_bridge, aspace,
1272 struct vme_bridge *tsi148_bridge;
1275 tsi148_bridge = image->parent;
1277 bridge = tsi148_bridge->driver_priv;
1284 handler = vme_register_error_handler(tsi148_bridge, aspace,
1345 dev_warn(tsi148_bridge->parent,
1633 struct vme_bridge *tsi148_bridge;
1635 tsi148_bridge = list->parent->parent;
1646 dev_err(tsi148_bridge->parent, "Descriptor not aligned to 8 "
1695 tsi148_bridge->parent, &entry->descriptor.dsat,
1701 dev_err(tsi148_bridge->parent, "Invalid source type\n");
1732 tsi148_bridge->parent, &entry->descriptor.ddat,
1738 dev_err(tsi148_bridge->parent, "Invalid destination type\n");
1750 entry->dma_handle = dma_map_single(tsi148_bridge->parent,
1754 if (dma_mapping_error(tsi148_bridge->parent, entry->dma_handle)) {
1755 dev_err(tsi148_bridge->parent, "DMA mapping error\n");
1786 static int tsi148_dma_busy(struct vme_bridge *tsi148_bridge, int channel)
1791 bridge = tsi148_bridge->driver_priv;
1815 struct vme_bridge *tsi148_bridge;
1820 tsi148_bridge = ctrlr->parent;
1822 bridge = tsi148_bridge->driver_priv;
1882 dev_err(tsi148_bridge->parent, "DMA Error. DSTA=%08X\n", val);
1905 struct vme_bridge *tsi148_bridge = list->parent->parent;
1912 dma_unmap_single(tsi148_bridge->parent, entry->dma_handle,
1932 struct vme_bridge *tsi148_bridge;
1935 tsi148_bridge = lm->parent;
1937 bridge = tsi148_bridge->driver_priv;
1945 dev_err(tsi148_bridge->parent, "Location monitor "
1966 dev_err(tsi148_bridge->parent, "Invalid address space\n");
2049 struct vme_bridge *tsi148_bridge;
2052 tsi148_bridge = lm->parent;
2054 bridge = tsi148_bridge->driver_priv;
2062 dev_err(tsi148_bridge->parent, "Location monitor not properly "
2070 dev_err(tsi148_bridge->parent, "Existing callback attached\n");
2142 static int tsi148_slot_get(struct vme_bridge *tsi148_bridge)
2147 bridge = tsi148_bridge->driver_priv;
2192 static int tsi148_crcsr_init(struct vme_bridge *tsi148_bridge,
2200 bridge = tsi148_bridge->driver_priv;
2206 dev_err(tsi148_bridge->parent, "Failed to allocate memory for "
2220 vstat = tsi148_slot_get(tsi148_bridge);
2224 dev_info(tsi148_bridge->parent, "Setting CR/CSR offset\n");
2227 dev_info(tsi148_bridge->parent, "CR/CSR Offset: %d\n", cbar);
2231 dev_info(tsi148_bridge->parent, "CR/CSR already enabled\n");
2233 dev_info(tsi148_bridge->parent, "Enabling CR/CSR space\n");
2247 dev_err(tsi148_bridge->parent, "Configuring flush image"
2255 static void tsi148_crcsr_exit(struct vme_bridge *tsi148_bridge,
2261 bridge = tsi148_bridge->driver_priv;
2281 struct vme_bridge *tsi148_bridge;
2291 tsi148_bridge = kzalloc(sizeof(*tsi148_bridge), GFP_KERNEL);
2292 if (!tsi148_bridge) {
2296 vme_init_bridge(tsi148_bridge);
2304 tsi148_bridge->driver_priv = tsi148_device;
2344 tsi148_bridge->parent = &pdev->dev;
2345 strcpy(tsi148_bridge->name, driver_name);
2348 retval = tsi148_irq_init(tsi148_bridge);
2370 tsi148_device->flush_image->parent = tsi148_bridge;
2386 master_image->parent = tsi148_bridge;
2402 &tsi148_bridge->master_resources);
2412 slave_image->parent = tsi148_bridge;
2423 &tsi148_bridge->slave_resources);
2433 dma_ctrlr->parent = tsi148_bridge;
2444 &tsi148_bridge->dma_resources);
2453 lm->parent = tsi148_bridge;
2458 list_add_tail(&lm->list, &tsi148_bridge->lm_resources);
2460 tsi148_bridge->slave_get = tsi148_slave_get;
2461 tsi148_bridge->slave_set = tsi148_slave_set;
2462 tsi148_bridge->master_get = tsi148_master_get;
2463 tsi148_bridge->master_set = tsi148_master_set;
2464 tsi148_bridge->master_read = tsi148_master_read;
2465 tsi148_bridge->master_write = tsi148_master_write;
2466 tsi148_bridge->master_rmw = tsi148_master_rmw;
2467 tsi148_bridge->dma_list_add = tsi148_dma_list_add;
2468 tsi148_bridge->dma_list_exec = tsi148_dma_list_exec;
2469 tsi148_bridge->dma_list_empty = tsi148_dma_list_empty;
2470 tsi148_bridge->irq_set = tsi148_irq_set;
2471 tsi148_bridge->irq_generate = tsi148_irq_generate;
2472 tsi148_bridge->lm_set = tsi148_lm_set;
2473 tsi148_bridge->lm_get = tsi148_lm_get;
2474 tsi148_bridge->lm_attach = tsi148_lm_attach;
2475 tsi148_bridge->lm_detach = tsi148_lm_detach;
2476 tsi148_bridge->slot_get = tsi148_slot_get;
2477 tsi148_bridge->alloc_consistent = tsi148_alloc_consistent;
2478 tsi148_bridge->free_consistent = tsi148_free_consistent;
2493 retval = tsi148_crcsr_init(tsi148_bridge, pdev);
2499 retval = vme_register_bridge(tsi148_bridge);
2505 pci_set_drvdata(pdev, tsi148_bridge);
2516 tsi148_crcsr_exit(tsi148_bridge, pdev);
2520 list_for_each_safe(pos, n, &tsi148_bridge->lm_resources) {
2527 list_for_each_safe(pos, n, &tsi148_bridge->dma_resources) {
2534 list_for_each_safe(pos, n, &tsi148_bridge->slave_resources) {
2541 list_for_each_safe(pos, n, &tsi148_bridge->master_resources) {
2548 tsi148_irq_exit(tsi148_bridge, pdev);
2559 kfree(tsi148_bridge);
2574 struct vme_bridge *tsi148_bridge = pci_get_drvdata(pdev);
2576 bridge = tsi148_bridge->driver_priv;
2620 tsi148_irq_exit(tsi148_bridge, pdev);
2622 vme_unregister_bridge(tsi148_bridge);
2624 tsi148_crcsr_exit(tsi148_bridge, pdev);
2627 list_for_each_safe(pos, tmplist, &tsi148_bridge->dma_resources) {
2634 list_for_each_safe(pos, tmplist, &tsi148_bridge->slave_resources) {
2641 list_for_each_safe(pos, tmplist, &tsi148_bridge->master_resources) {
2654 kfree(tsi148_bridge->driver_priv);
2656 kfree(tsi148_bridge);