Lines Matching refs:bridge
125 struct mvebu_sw_pci_bridge bridge; member
353 if (port->bridge.iolimit < port->bridge.iobase || in mvebu_pcie_handle_iobase_change()
354 port->bridge.iolimitupper < port->bridge.iobaseupper || in mvebu_pcie_handle_iobase_change()
355 !(port->bridge.command & PCI_COMMAND_IO)) { in mvebu_pcie_handle_iobase_change()
381 iobase = ((port->bridge.iobase & 0xF0) << 8) | in mvebu_pcie_handle_iobase_change()
382 (port->bridge.iobaseupper << 16); in mvebu_pcie_handle_iobase_change()
384 port->iowin_size = ((0xFFF | ((port->bridge.iolimit & 0xF0) << 8) | in mvebu_pcie_handle_iobase_change()
385 (port->bridge.iolimitupper << 16)) - in mvebu_pcie_handle_iobase_change()
396 if (port->bridge.memlimit < port->bridge.membase || in mvebu_pcie_handle_membase_change()
397 !(port->bridge.command & PCI_COMMAND_MEMORY)) { in mvebu_pcie_handle_membase_change()
416 port->memwin_base = ((port->bridge.membase & 0xFFF0) << 16); in mvebu_pcie_handle_membase_change()
418 (((port->bridge.memlimit & 0xFFF0) << 16) | 0xFFFFF) - in mvebu_pcie_handle_membase_change()
432 struct mvebu_sw_pci_bridge *bridge = &port->bridge; in mvebu_sw_pci_bridge_init() local
434 memset(bridge, 0, sizeof(struct mvebu_sw_pci_bridge)); in mvebu_sw_pci_bridge_init()
436 bridge->class = PCI_CLASS_BRIDGE_PCI; in mvebu_sw_pci_bridge_init()
437 bridge->vendor = PCI_VENDOR_ID_MARVELL; in mvebu_sw_pci_bridge_init()
438 bridge->device = mvebu_readl(port, PCIE_DEV_ID_OFF) >> 16; in mvebu_sw_pci_bridge_init()
439 bridge->revision = mvebu_readl(port, PCIE_DEV_REV_OFF) & 0xff; in mvebu_sw_pci_bridge_init()
440 bridge->header_type = PCI_HEADER_TYPE_BRIDGE; in mvebu_sw_pci_bridge_init()
441 bridge->cache_line_size = 0x10; in mvebu_sw_pci_bridge_init()
444 bridge->iobase = PCI_IO_RANGE_TYPE_32; in mvebu_sw_pci_bridge_init()
445 bridge->iolimit = PCI_IO_RANGE_TYPE_32; in mvebu_sw_pci_bridge_init()
455 struct mvebu_sw_pci_bridge *bridge = &port->bridge; in mvebu_sw_pci_bridge_read() local
459 *value = bridge->device << 16 | bridge->vendor; in mvebu_sw_pci_bridge_read()
463 *value = bridge->command; in mvebu_sw_pci_bridge_read()
467 *value = bridge->class << 16 | bridge->interface << 8 | in mvebu_sw_pci_bridge_read()
468 bridge->revision; in mvebu_sw_pci_bridge_read()
472 *value = bridge->bist << 24 | bridge->header_type << 16 | in mvebu_sw_pci_bridge_read()
473 bridge->latency_timer << 8 | bridge->cache_line_size; in mvebu_sw_pci_bridge_read()
477 *value = bridge->bar[((where & ~3) - PCI_BASE_ADDRESS_0) / 4]; in mvebu_sw_pci_bridge_read()
481 *value = (bridge->secondary_latency_timer << 24 | in mvebu_sw_pci_bridge_read()
482 bridge->subordinate_bus << 16 | in mvebu_sw_pci_bridge_read()
483 bridge->secondary_bus << 8 | in mvebu_sw_pci_bridge_read()
484 bridge->primary_bus); in mvebu_sw_pci_bridge_read()
489 *value = bridge->secondary_status << 16; in mvebu_sw_pci_bridge_read()
491 *value = (bridge->secondary_status << 16 | in mvebu_sw_pci_bridge_read()
492 bridge->iolimit << 8 | in mvebu_sw_pci_bridge_read()
493 bridge->iobase); in mvebu_sw_pci_bridge_read()
497 *value = (bridge->memlimit << 16 | bridge->membase); in mvebu_sw_pci_bridge_read()
505 *value = (bridge->iolimitupper << 16 | bridge->iobaseupper); in mvebu_sw_pci_bridge_read()
534 struct mvebu_sw_pci_bridge *bridge = &port->bridge; in mvebu_sw_pci_bridge_write() local
556 u32 old = bridge->command; in mvebu_sw_pci_bridge_write()
561 bridge->command = value & 0xffff; in mvebu_sw_pci_bridge_write()
562 if ((old ^ bridge->command) & PCI_COMMAND_IO) in mvebu_sw_pci_bridge_write()
564 if ((old ^ bridge->command) & PCI_COMMAND_MEMORY) in mvebu_sw_pci_bridge_write()
570 bridge->bar[((where & ~3) - PCI_BASE_ADDRESS_0) / 4] = value; in mvebu_sw_pci_bridge_write()
579 bridge->iobase = (value & 0xff) | PCI_IO_RANGE_TYPE_32; in mvebu_sw_pci_bridge_write()
580 bridge->iolimit = ((value >> 8) & 0xff) | PCI_IO_RANGE_TYPE_32; in mvebu_sw_pci_bridge_write()
585 bridge->membase = value & 0xffff; in mvebu_sw_pci_bridge_write()
586 bridge->memlimit = value >> 16; in mvebu_sw_pci_bridge_write()
591 bridge->iobaseupper = value & 0xffff; in mvebu_sw_pci_bridge_write()
592 bridge->iolimitupper = value >> 16; in mvebu_sw_pci_bridge_write()
597 bridge->primary_bus = value & 0xff; in mvebu_sw_pci_bridge_write()
598 bridge->secondary_bus = (value >> 8) & 0xff; in mvebu_sw_pci_bridge_write()
599 bridge->subordinate_bus = (value >> 16) & 0xff; in mvebu_sw_pci_bridge_write()
600 bridge->secondary_latency_timer = (value >> 24) & 0xff; in mvebu_sw_pci_bridge_write()
601 mvebu_pcie_set_local_bus_nr(port, bridge->secondary_bus); in mvebu_sw_pci_bridge_write()
628 bus->number >= port->bridge.secondary_bus && in mvebu_pcie_find_port()
629 bus->number <= port->bridge.subordinate_bus) in mvebu_pcie_find_port()
662 if (bus->number == port->bridge.secondary_bus && in mvebu_pcie_wr_conf()
703 if (bus->number == port->bridge.secondary_bus && in mvebu_pcie_rd_conf()