tsi148_bridge 116 drivers/vme/bridges/vme_tsi148.c static u32 tsi148_MB_irqhandler(struct vme_bridge *tsi148_bridge, u32 stat) tsi148_bridge 123 drivers/vme/bridges/vme_tsi148.c bridge = tsi148_bridge->driver_priv; tsi148_bridge 128 drivers/vme/bridges/vme_tsi148.c dev_err(tsi148_bridge->parent, "VME Mailbox %d received" tsi148_bridge 140 drivers/vme/bridges/vme_tsi148.c static u32 tsi148_PERR_irqhandler(struct vme_bridge *tsi148_bridge) tsi148_bridge 144 drivers/vme/bridges/vme_tsi148.c bridge = tsi148_bridge->driver_priv; tsi148_bridge 146 drivers/vme/bridges/vme_tsi148.c dev_err(tsi148_bridge->parent, "PCI Exception at address: 0x%08x:%08x, " tsi148_bridge 152 drivers/vme/bridges/vme_tsi148.c dev_err(tsi148_bridge->parent, "PCI-X attribute reg: %08x, PCI-X split " tsi148_bridge 165 drivers/vme/bridges/vme_tsi148.c static u32 tsi148_VERR_irqhandler(struct vme_bridge *tsi148_bridge) tsi148_bridge 173 drivers/vme/bridges/vme_tsi148.c bridge = tsi148_bridge->driver_priv; tsi148_bridge 184 drivers/vme/bridges/vme_tsi148.c dev_err(tsi148_bridge->parent, "VME Bus Exception Overflow " tsi148_bridge 189 drivers/vme/bridges/vme_tsi148.c vme_bus_error_handler(tsi148_bridge, error_addr, error_am); tsi148_bridge 191 drivers/vme/bridges/vme_tsi148.c dev_err(tsi148_bridge->parent, tsi148_bridge 214 drivers/vme/bridges/vme_tsi148.c static u32 tsi148_VIRQ_irqhandler(struct vme_bridge *tsi148_bridge, tsi148_bridge 220 drivers/vme/bridges/vme_tsi148.c bridge = tsi148_bridge->driver_priv; tsi148_bridge 231 drivers/vme/bridges/vme_tsi148.c vme_irq_handler(tsi148_bridge, i, vec); tsi148_bridge 247 drivers/vme/bridges/vme_tsi148.c struct vme_bridge *tsi148_bridge; tsi148_bridge 250 drivers/vme/bridges/vme_tsi148.c tsi148_bridge = ptr; tsi148_bridge 252 drivers/vme/bridges/vme_tsi148.c bridge = tsi148_bridge->driver_priv; tsi148_bridge 277 drivers/vme/bridges/vme_tsi148.c serviced |= tsi148_MB_irqhandler(tsi148_bridge, stat); tsi148_bridge 281 drivers/vme/bridges/vme_tsi148.c serviced |= tsi148_PERR_irqhandler(tsi148_bridge); tsi148_bridge 285 drivers/vme/bridges/vme_tsi148.c serviced |= tsi148_VERR_irqhandler(tsi148_bridge); tsi148_bridge 296 drivers/vme/bridges/vme_tsi148.c serviced |= tsi148_VIRQ_irqhandler(tsi148_bridge, stat); tsi148_bridge 304 drivers/vme/bridges/vme_tsi148.c static int tsi148_irq_init(struct vme_bridge *tsi148_bridge) tsi148_bridge 311 drivers/vme/bridges/vme_tsi148.c pdev = to_pci_dev(tsi148_bridge->parent); tsi148_bridge 313 drivers/vme/bridges/vme_tsi148.c bridge = tsi148_bridge->driver_priv; tsi148_bridge 318 drivers/vme/bridges/vme_tsi148.c driver_name, tsi148_bridge); tsi148_bridge 320 drivers/vme/bridges/vme_tsi148.c dev_err(tsi148_bridge->parent, "Can't get assigned pci irq " tsi148_bridge 365 drivers/vme/bridges/vme_tsi148.c static void tsi148_irq_exit(struct vme_bridge *tsi148_bridge, tsi148_bridge 368 drivers/vme/bridges/vme_tsi148.c struct tsi148_driver *bridge = tsi148_bridge->driver_priv; tsi148_bridge 378 drivers/vme/bridges/vme_tsi148.c free_irq(pdev->irq, tsi148_bridge); tsi148_bridge 399 drivers/vme/bridges/vme_tsi148.c static void tsi148_irq_set(struct vme_bridge *tsi148_bridge, int level, tsi148_bridge 406 drivers/vme/bridges/vme_tsi148.c bridge = tsi148_bridge->driver_priv; tsi148_bridge 419 drivers/vme/bridges/vme_tsi148.c pdev = to_pci_dev(tsi148_bridge->parent); tsi148_bridge 437 drivers/vme/bridges/vme_tsi148.c static int tsi148_irq_generate(struct vme_bridge *tsi148_bridge, int level, tsi148_bridge 443 drivers/vme/bridges/vme_tsi148.c bridge = tsi148_bridge->driver_priv; tsi148_bridge 481 drivers/vme/bridges/vme_tsi148.c struct vme_bridge *tsi148_bridge; tsi148_bridge 484 drivers/vme/bridges/vme_tsi148.c tsi148_bridge = image->parent; tsi148_bridge 485 drivers/vme/bridges/vme_tsi148.c bridge = tsi148_bridge->driver_priv; tsi148_bridge 507 drivers/vme/bridges/vme_tsi148.c dev_err(tsi148_bridge->parent, "Invalid address space\n"); tsi148_bridge 525 drivers/vme/bridges/vme_tsi148.c dev_err(tsi148_bridge->parent, "Invalid VME base alignment\n"); tsi148_bridge 529 drivers/vme/bridges/vme_tsi148.c dev_err(tsi148_bridge->parent, "Invalid VME bound alignment\n"); tsi148_bridge 533 drivers/vme/bridges/vme_tsi148.c dev_err(tsi148_bridge->parent, "Invalid PCI Offset " tsi148_bridge 722 drivers/vme/bridges/vme_tsi148.c struct vme_bridge *tsi148_bridge; tsi148_bridge 724 drivers/vme/bridges/vme_tsi148.c tsi148_bridge = image->parent; tsi148_bridge 726 drivers/vme/bridges/vme_tsi148.c pdev = to_pci_dev(tsi148_bridge->parent); tsi148_bridge 755 drivers/vme/bridges/vme_tsi148.c sprintf((char *)image->bus_resource.name, "%s.%d", tsi148_bridge->name, tsi148_bridge 766 drivers/vme/bridges/vme_tsi148.c dev_err(tsi148_bridge->parent, "Failed to allocate mem " tsi148_bridge 776 drivers/vme/bridges/vme_tsi148.c dev_err(tsi148_bridge->parent, "Failed to remap resource\n"); tsi148_bridge 818 drivers/vme/bridges/vme_tsi148.c struct vme_bridge *tsi148_bridge; tsi148_bridge 823 drivers/vme/bridges/vme_tsi148.c tsi148_bridge = image->parent; tsi148_bridge 825 drivers/vme/bridges/vme_tsi148.c bridge = tsi148_bridge->driver_priv; tsi148_bridge 827 drivers/vme/bridges/vme_tsi148.c pdev = to_pci_dev(tsi148_bridge->parent); tsi148_bridge 831 drivers/vme/bridges/vme_tsi148.c dev_err(tsi148_bridge->parent, "Invalid VME Window " tsi148_bridge 838 drivers/vme/bridges/vme_tsi148.c dev_err(tsi148_bridge->parent, "Size must be non-zero for " tsi148_bridge 853 drivers/vme/bridges/vme_tsi148.c dev_err(tsi148_bridge->parent, "Unable to allocate memory for " tsi148_bridge 882 drivers/vme/bridges/vme_tsi148.c dev_err(tsi148_bridge->parent, "Invalid PCI base alignment\n"); tsi148_bridge 888 drivers/vme/bridges/vme_tsi148.c dev_err(tsi148_bridge->parent, "Invalid PCI bound alignment\n"); tsi148_bridge 894 drivers/vme/bridges/vme_tsi148.c dev_err(tsi148_bridge->parent, "Invalid VME Offset " tsi148_bridge 941 drivers/vme/bridges/vme_tsi148.c dev_warn(tsi148_bridge->parent, "Currently not setting " tsi148_bridge 958 drivers/vme/bridges/vme_tsi148.c dev_err(tsi148_bridge->parent, "Invalid data width\n"); tsi148_bridge 995 drivers/vme/bridges/vme_tsi148.c dev_err(tsi148_bridge->parent, "Invalid address space\n"); tsi148_bridge 1182 drivers/vme/bridges/vme_tsi148.c struct vme_bridge *tsi148_bridge; tsi148_bridge 1187 drivers/vme/bridges/vme_tsi148.c tsi148_bridge = image->parent; tsi148_bridge 1194 drivers/vme/bridges/vme_tsi148.c handler = vme_register_error_handler(tsi148_bridge, aspace, tsi148_bridge 1272 drivers/vme/bridges/vme_tsi148.c struct vme_bridge *tsi148_bridge; tsi148_bridge 1275 drivers/vme/bridges/vme_tsi148.c tsi148_bridge = image->parent; tsi148_bridge 1277 drivers/vme/bridges/vme_tsi148.c bridge = tsi148_bridge->driver_priv; tsi148_bridge 1284 drivers/vme/bridges/vme_tsi148.c handler = vme_register_error_handler(tsi148_bridge, aspace, tsi148_bridge 1345 drivers/vme/bridges/vme_tsi148.c dev_warn(tsi148_bridge->parent, tsi148_bridge 1633 drivers/vme/bridges/vme_tsi148.c struct vme_bridge *tsi148_bridge; tsi148_bridge 1635 drivers/vme/bridges/vme_tsi148.c tsi148_bridge = list->parent->parent; tsi148_bridge 1646 drivers/vme/bridges/vme_tsi148.c dev_err(tsi148_bridge->parent, "Descriptor not aligned to 8 " tsi148_bridge 1695 drivers/vme/bridges/vme_tsi148.c tsi148_bridge->parent, &entry->descriptor.dsat, tsi148_bridge 1701 drivers/vme/bridges/vme_tsi148.c dev_err(tsi148_bridge->parent, "Invalid source type\n"); tsi148_bridge 1732 drivers/vme/bridges/vme_tsi148.c tsi148_bridge->parent, &entry->descriptor.ddat, tsi148_bridge 1738 drivers/vme/bridges/vme_tsi148.c dev_err(tsi148_bridge->parent, "Invalid destination type\n"); tsi148_bridge 1750 drivers/vme/bridges/vme_tsi148.c entry->dma_handle = dma_map_single(tsi148_bridge->parent, tsi148_bridge 1754 drivers/vme/bridges/vme_tsi148.c if (dma_mapping_error(tsi148_bridge->parent, entry->dma_handle)) { tsi148_bridge 1755 drivers/vme/bridges/vme_tsi148.c dev_err(tsi148_bridge->parent, "DMA mapping error\n"); tsi148_bridge 1785 drivers/vme/bridges/vme_tsi148.c static int tsi148_dma_busy(struct vme_bridge *tsi148_bridge, int channel) tsi148_bridge 1790 drivers/vme/bridges/vme_tsi148.c bridge = tsi148_bridge->driver_priv; tsi148_bridge 1814 drivers/vme/bridges/vme_tsi148.c struct vme_bridge *tsi148_bridge; tsi148_bridge 1819 drivers/vme/bridges/vme_tsi148.c tsi148_bridge = ctrlr->parent; tsi148_bridge 1821 drivers/vme/bridges/vme_tsi148.c bridge = tsi148_bridge->driver_priv; tsi148_bridge 1881 drivers/vme/bridges/vme_tsi148.c dev_err(tsi148_bridge->parent, "DMA Error. DSTA=%08X\n", val); tsi148_bridge 1904 drivers/vme/bridges/vme_tsi148.c struct vme_bridge *tsi148_bridge = list->parent->parent; tsi148_bridge 1911 drivers/vme/bridges/vme_tsi148.c dma_unmap_single(tsi148_bridge->parent, entry->dma_handle, tsi148_bridge 1931 drivers/vme/bridges/vme_tsi148.c struct vme_bridge *tsi148_bridge; tsi148_bridge 1934 drivers/vme/bridges/vme_tsi148.c tsi148_bridge = lm->parent; tsi148_bridge 1936 drivers/vme/bridges/vme_tsi148.c bridge = tsi148_bridge->driver_priv; tsi148_bridge 1944 drivers/vme/bridges/vme_tsi148.c dev_err(tsi148_bridge->parent, "Location monitor " tsi148_bridge 1965 drivers/vme/bridges/vme_tsi148.c dev_err(tsi148_bridge->parent, "Invalid address space\n"); tsi148_bridge 2048 drivers/vme/bridges/vme_tsi148.c struct vme_bridge *tsi148_bridge; tsi148_bridge 2051 drivers/vme/bridges/vme_tsi148.c tsi148_bridge = lm->parent; tsi148_bridge 2053 drivers/vme/bridges/vme_tsi148.c bridge = tsi148_bridge->driver_priv; tsi148_bridge 2061 drivers/vme/bridges/vme_tsi148.c dev_err(tsi148_bridge->parent, "Location monitor not properly " tsi148_bridge 2069 drivers/vme/bridges/vme_tsi148.c dev_err(tsi148_bridge->parent, "Existing callback attached\n"); tsi148_bridge 2141 drivers/vme/bridges/vme_tsi148.c static int tsi148_slot_get(struct vme_bridge *tsi148_bridge) tsi148_bridge 2146 drivers/vme/bridges/vme_tsi148.c bridge = tsi148_bridge->driver_priv; tsi148_bridge 2191 drivers/vme/bridges/vme_tsi148.c static int tsi148_crcsr_init(struct vme_bridge *tsi148_bridge, tsi148_bridge 2199 drivers/vme/bridges/vme_tsi148.c bridge = tsi148_bridge->driver_priv; tsi148_bridge 2205 drivers/vme/bridges/vme_tsi148.c dev_err(tsi148_bridge->parent, "Failed to allocate memory for " tsi148_bridge 2219 drivers/vme/bridges/vme_tsi148.c vstat = tsi148_slot_get(tsi148_bridge); tsi148_bridge 2223 drivers/vme/bridges/vme_tsi148.c dev_info(tsi148_bridge->parent, "Setting CR/CSR offset\n"); tsi148_bridge 2226 drivers/vme/bridges/vme_tsi148.c dev_info(tsi148_bridge->parent, "CR/CSR Offset: %d\n", cbar); tsi148_bridge 2230 drivers/vme/bridges/vme_tsi148.c dev_info(tsi148_bridge->parent, "CR/CSR already enabled\n"); tsi148_bridge 2232 drivers/vme/bridges/vme_tsi148.c dev_info(tsi148_bridge->parent, "Enabling CR/CSR space\n"); tsi148_bridge 2246 drivers/vme/bridges/vme_tsi148.c dev_err(tsi148_bridge->parent, "Configuring flush image" tsi148_bridge 2254 drivers/vme/bridges/vme_tsi148.c static void tsi148_crcsr_exit(struct vme_bridge *tsi148_bridge, tsi148_bridge 2260 drivers/vme/bridges/vme_tsi148.c bridge = tsi148_bridge->driver_priv; tsi148_bridge 2280 drivers/vme/bridges/vme_tsi148.c struct vme_bridge *tsi148_bridge; tsi148_bridge 2290 drivers/vme/bridges/vme_tsi148.c tsi148_bridge = kzalloc(sizeof(*tsi148_bridge), GFP_KERNEL); tsi148_bridge 2291 drivers/vme/bridges/vme_tsi148.c if (!tsi148_bridge) { tsi148_bridge 2295 drivers/vme/bridges/vme_tsi148.c vme_init_bridge(tsi148_bridge); tsi148_bridge 2303 drivers/vme/bridges/vme_tsi148.c tsi148_bridge->driver_priv = tsi148_device; tsi148_bridge 2343 drivers/vme/bridges/vme_tsi148.c tsi148_bridge->parent = &pdev->dev; tsi148_bridge 2344 drivers/vme/bridges/vme_tsi148.c strcpy(tsi148_bridge->name, driver_name); tsi148_bridge 2347 drivers/vme/bridges/vme_tsi148.c retval = tsi148_irq_init(tsi148_bridge); tsi148_bridge 2369 drivers/vme/bridges/vme_tsi148.c tsi148_device->flush_image->parent = tsi148_bridge; tsi148_bridge 2385 drivers/vme/bridges/vme_tsi148.c master_image->parent = tsi148_bridge; tsi148_bridge 2401 drivers/vme/bridges/vme_tsi148.c &tsi148_bridge->master_resources); tsi148_bridge 2411 drivers/vme/bridges/vme_tsi148.c slave_image->parent = tsi148_bridge; tsi148_bridge 2422 drivers/vme/bridges/vme_tsi148.c &tsi148_bridge->slave_resources); tsi148_bridge 2432 drivers/vme/bridges/vme_tsi148.c dma_ctrlr->parent = tsi148_bridge; tsi148_bridge 2443 drivers/vme/bridges/vme_tsi148.c &tsi148_bridge->dma_resources); tsi148_bridge 2452 drivers/vme/bridges/vme_tsi148.c lm->parent = tsi148_bridge; tsi148_bridge 2457 drivers/vme/bridges/vme_tsi148.c list_add_tail(&lm->list, &tsi148_bridge->lm_resources); tsi148_bridge 2459 drivers/vme/bridges/vme_tsi148.c tsi148_bridge->slave_get = tsi148_slave_get; tsi148_bridge 2460 drivers/vme/bridges/vme_tsi148.c tsi148_bridge->slave_set = tsi148_slave_set; tsi148_bridge 2461 drivers/vme/bridges/vme_tsi148.c tsi148_bridge->master_get = tsi148_master_get; tsi148_bridge 2462 drivers/vme/bridges/vme_tsi148.c tsi148_bridge->master_set = tsi148_master_set; tsi148_bridge 2463 drivers/vme/bridges/vme_tsi148.c tsi148_bridge->master_read = tsi148_master_read; tsi148_bridge 2464 drivers/vme/bridges/vme_tsi148.c tsi148_bridge->master_write = tsi148_master_write; tsi148_bridge 2465 drivers/vme/bridges/vme_tsi148.c tsi148_bridge->master_rmw = tsi148_master_rmw; tsi148_bridge 2466 drivers/vme/bridges/vme_tsi148.c tsi148_bridge->dma_list_add = tsi148_dma_list_add; tsi148_bridge 2467 drivers/vme/bridges/vme_tsi148.c tsi148_bridge->dma_list_exec = tsi148_dma_list_exec; tsi148_bridge 2468 drivers/vme/bridges/vme_tsi148.c tsi148_bridge->dma_list_empty = tsi148_dma_list_empty; tsi148_bridge 2469 drivers/vme/bridges/vme_tsi148.c tsi148_bridge->irq_set = tsi148_irq_set; tsi148_bridge 2470 drivers/vme/bridges/vme_tsi148.c tsi148_bridge->irq_generate = tsi148_irq_generate; tsi148_bridge 2471 drivers/vme/bridges/vme_tsi148.c tsi148_bridge->lm_set = tsi148_lm_set; tsi148_bridge 2472 drivers/vme/bridges/vme_tsi148.c tsi148_bridge->lm_get = tsi148_lm_get; tsi148_bridge 2473 drivers/vme/bridges/vme_tsi148.c tsi148_bridge->lm_attach = tsi148_lm_attach; tsi148_bridge 2474 drivers/vme/bridges/vme_tsi148.c tsi148_bridge->lm_detach = tsi148_lm_detach; tsi148_bridge 2475 drivers/vme/bridges/vme_tsi148.c tsi148_bridge->slot_get = tsi148_slot_get; tsi148_bridge 2476 drivers/vme/bridges/vme_tsi148.c tsi148_bridge->alloc_consistent = tsi148_alloc_consistent; tsi148_bridge 2477 drivers/vme/bridges/vme_tsi148.c tsi148_bridge->free_consistent = tsi148_free_consistent; tsi148_bridge 2492 drivers/vme/bridges/vme_tsi148.c retval = tsi148_crcsr_init(tsi148_bridge, pdev); tsi148_bridge 2498 drivers/vme/bridges/vme_tsi148.c retval = vme_register_bridge(tsi148_bridge); tsi148_bridge 2504 drivers/vme/bridges/vme_tsi148.c pci_set_drvdata(pdev, tsi148_bridge); tsi148_bridge 2515 drivers/vme/bridges/vme_tsi148.c tsi148_crcsr_exit(tsi148_bridge, pdev); tsi148_bridge 2519 drivers/vme/bridges/vme_tsi148.c list_for_each_safe(pos, n, &tsi148_bridge->lm_resources) { tsi148_bridge 2526 drivers/vme/bridges/vme_tsi148.c list_for_each_safe(pos, n, &tsi148_bridge->dma_resources) { tsi148_bridge 2533 drivers/vme/bridges/vme_tsi148.c list_for_each_safe(pos, n, &tsi148_bridge->slave_resources) { tsi148_bridge 2540 drivers/vme/bridges/vme_tsi148.c list_for_each_safe(pos, n, &tsi148_bridge->master_resources) { tsi148_bridge 2547 drivers/vme/bridges/vme_tsi148.c tsi148_irq_exit(tsi148_bridge, pdev); tsi148_bridge 2558 drivers/vme/bridges/vme_tsi148.c kfree(tsi148_bridge); tsi148_bridge 2573 drivers/vme/bridges/vme_tsi148.c struct vme_bridge *tsi148_bridge = pci_get_drvdata(pdev); tsi148_bridge 2575 drivers/vme/bridges/vme_tsi148.c bridge = tsi148_bridge->driver_priv; tsi148_bridge 2619 drivers/vme/bridges/vme_tsi148.c tsi148_irq_exit(tsi148_bridge, pdev); tsi148_bridge 2621 drivers/vme/bridges/vme_tsi148.c vme_unregister_bridge(tsi148_bridge); tsi148_bridge 2623 drivers/vme/bridges/vme_tsi148.c tsi148_crcsr_exit(tsi148_bridge, pdev); tsi148_bridge 2626 drivers/vme/bridges/vme_tsi148.c list_for_each_safe(pos, tmplist, &tsi148_bridge->dma_resources) { tsi148_bridge 2633 drivers/vme/bridges/vme_tsi148.c list_for_each_safe(pos, tmplist, &tsi148_bridge->slave_resources) { tsi148_bridge 2640 drivers/vme/bridges/vme_tsi148.c list_for_each_safe(pos, tmplist, &tsi148_bridge->master_resources) { tsi148_bridge 2653 drivers/vme/bridges/vme_tsi148.c kfree(tsi148_bridge->driver_priv); tsi148_bridge 2655 drivers/vme/bridges/vme_tsi148.c kfree(tsi148_bridge);