xdbc               29 drivers/usb/early/xhci-dbc.c static struct xdbc_state xdbc;
xdbc               86 drivers/usb/early/xhci-dbc.c 	xdbc.xhci_start = val64;
xdbc               87 drivers/usb/early/xhci-dbc.c 	xdbc.xhci_length = sz64;
xdbc              155 drivers/usb/early/xhci-dbc.c 	offset = xhci_find_next_ext_cap(xdbc.xhci_base, 0, XHCI_EXT_CAPS_LEGACY);
xdbc              156 drivers/usb/early/xhci-dbc.c 	val = readl(xdbc.xhci_base + offset);
xdbc              159 drivers/usb/early/xhci-dbc.c 		writel(val | XHCI_HC_OS_OWNED, xdbc.xhci_base + offset);
xdbc              160 drivers/usb/early/xhci-dbc.c 		timeout = handshake(xdbc.xhci_base + offset, XHCI_HC_BIOS_OWNED, 0, 5000, 10);
xdbc              164 drivers/usb/early/xhci-dbc.c 			writel(val & ~XHCI_HC_BIOS_OWNED, xdbc.xhci_base + offset);
xdbc              169 drivers/usb/early/xhci-dbc.c 	val = readl(xdbc.xhci_base + offset + XHCI_LEGACY_CONTROL_OFFSET);
xdbc              172 drivers/usb/early/xhci-dbc.c 	writel(val, xdbc.xhci_base + offset + XHCI_LEGACY_CONTROL_OFFSET);
xdbc              209 drivers/usb/early/xhci-dbc.c 	if (ring != &xdbc.evt_ring) {
xdbc              237 drivers/usb/early/xhci-dbc.c 	xdbc_reset_ring(&xdbc.evt_ring);
xdbc              238 drivers/usb/early/xhci-dbc.c 	xdbc_reset_ring(&xdbc.in_ring);
xdbc              239 drivers/usb/early/xhci-dbc.c 	xdbc_reset_ring(&xdbc.out_ring);
xdbc              240 drivers/usb/early/xhci-dbc.c 	memset(xdbc.table_base, 0, PAGE_SIZE);
xdbc              241 drivers/usb/early/xhci-dbc.c 	memset(xdbc.out_buf, 0, PAGE_SIZE);
xdbc              244 drivers/usb/early/xhci-dbc.c 	xdbc.erst_size	= 16;
xdbc              245 drivers/usb/early/xhci-dbc.c 	xdbc.erst_base	= xdbc.table_base + index * XDBC_TABLE_ENTRY_SIZE;
xdbc              246 drivers/usb/early/xhci-dbc.c 	xdbc.erst_dma	= xdbc.table_dma + index * XDBC_TABLE_ENTRY_SIZE;
xdbc              249 drivers/usb/early/xhci-dbc.c 	entry = (struct xdbc_erst_entry *)xdbc.erst_base;
xdbc              251 drivers/usb/early/xhci-dbc.c 	entry->seg_addr		= cpu_to_le64(xdbc.evt_seg.dma);
xdbc              256 drivers/usb/early/xhci-dbc.c 	writel(1, &xdbc.xdbc_reg->ersts);
xdbc              257 drivers/usb/early/xhci-dbc.c 	xdbc_write64(xdbc.erst_dma, &xdbc.xdbc_reg->erstba);
xdbc              258 drivers/usb/early/xhci-dbc.c 	xdbc_write64(xdbc.evt_seg.dma, &xdbc.xdbc_reg->erdp);
xdbc              261 drivers/usb/early/xhci-dbc.c 	xdbc.dbcc_size	= 64 * 3;
xdbc              262 drivers/usb/early/xhci-dbc.c 	xdbc.dbcc_base	= xdbc.table_base + index * XDBC_TABLE_ENTRY_SIZE;
xdbc              263 drivers/usb/early/xhci-dbc.c 	xdbc.dbcc_dma	= xdbc.table_dma + index * XDBC_TABLE_ENTRY_SIZE;
xdbc              268 drivers/usb/early/xhci-dbc.c 	xdbc.string_size = sizeof(struct xdbc_strings);
xdbc              269 drivers/usb/early/xhci-dbc.c 	xdbc.string_base = xdbc.table_base + index * XDBC_TABLE_ENTRY_SIZE;
xdbc              270 drivers/usb/early/xhci-dbc.c 	xdbc.string_dma	 = xdbc.table_dma + index * XDBC_TABLE_ENTRY_SIZE;
xdbc              271 drivers/usb/early/xhci-dbc.c 	strings		 = (struct xdbc_strings *)xdbc.string_base;
xdbc              311 drivers/usb/early/xhci-dbc.c 	ctx = (struct xdbc_context *)xdbc.dbcc_base;
xdbc              313 drivers/usb/early/xhci-dbc.c 	ctx->info.string0	= cpu_to_le64(xdbc.string_dma);
xdbc              314 drivers/usb/early/xhci-dbc.c 	ctx->info.manufacturer	= cpu_to_le64(xdbc.string_dma + XDBC_MAX_STRING_LENGTH);
xdbc              315 drivers/usb/early/xhci-dbc.c 	ctx->info.product	= cpu_to_le64(xdbc.string_dma + XDBC_MAX_STRING_LENGTH * 2);
xdbc              316 drivers/usb/early/xhci-dbc.c 	ctx->info.serial	= cpu_to_le64(xdbc.string_dma + XDBC_MAX_STRING_LENGTH * 3);
xdbc              320 drivers/usb/early/xhci-dbc.c 	max_burst = DEBUG_MAX_BURST(readl(&xdbc.xdbc_reg->control));
xdbc              325 drivers/usb/early/xhci-dbc.c 	ep_out->deq		= cpu_to_le64(xdbc.out_seg.dma | xdbc.out_ring.cycle_state);
xdbc              332 drivers/usb/early/xhci-dbc.c 	ep_in->deq		= cpu_to_le64(xdbc.in_seg.dma | xdbc.in_ring.cycle_state);
xdbc              335 drivers/usb/early/xhci-dbc.c 	xdbc_write64(xdbc.dbcc_dma, &xdbc.xdbc_reg->dccp);
xdbc              338 drivers/usb/early/xhci-dbc.c 	writel(dev_info, &xdbc.xdbc_reg->devinfo1);
xdbc              341 drivers/usb/early/xhci-dbc.c 	writel(dev_info, &xdbc.xdbc_reg->devinfo2);
xdbc              343 drivers/usb/early/xhci-dbc.c 	xdbc.in_buf = xdbc.out_buf + XDBC_MAX_PACKET;
xdbc              344 drivers/usb/early/xhci-dbc.c 	xdbc.in_dma = xdbc.out_dma + XDBC_MAX_PACKET;
xdbc              354 drivers/usb/early/xhci-dbc.c 	cap_length = readl(xdbc.xhci_base) & 0xff;
xdbc              355 drivers/usb/early/xhci-dbc.c 	ops_reg = xdbc.xhci_base + cap_length;
xdbc              372 drivers/usb/early/xhci-dbc.c 		offset = xhci_find_next_ext_cap(xdbc.xhci_base, offset, XHCI_EXT_CAPS_PROTOCOL);
xdbc              376 drivers/usb/early/xhci-dbc.c 		val = readl(xdbc.xhci_base + offset);
xdbc              380 drivers/usb/early/xhci-dbc.c 		val = readl(xdbc.xhci_base + offset + 8);
xdbc              414 drivers/usb/early/xhci-dbc.c 	writel(DOOR_BELL_TARGET(target), &xdbc.xdbc_reg->doorbell);
xdbc              422 drivers/usb/early/xhci-dbc.c 	ctrl = readl(&xdbc.xdbc_reg->control);
xdbc              423 drivers/usb/early/xhci-dbc.c 	writel(ctrl | CTRL_DBC_ENABLE | CTRL_PORT_ENABLE, &xdbc.xdbc_reg->control);
xdbc              424 drivers/usb/early/xhci-dbc.c 	ret = handshake(&xdbc.xdbc_reg->control, CTRL_DBC_ENABLE, CTRL_DBC_ENABLE, 100000, 100);
xdbc              431 drivers/usb/early/xhci-dbc.c 	if (xdbc.vendor == PCI_VENDOR_ID_INTEL)
xdbc              435 drivers/usb/early/xhci-dbc.c 	ret = handshake(&xdbc.xdbc_reg->portsc, PORTSC_CONN_STATUS, PORTSC_CONN_STATUS, 5000000, 100);
xdbc              442 drivers/usb/early/xhci-dbc.c 	ret = handshake(&xdbc.xdbc_reg->control, CTRL_DBC_RUN, CTRL_DBC_RUN, 5000000, 100);
xdbc              449 drivers/usb/early/xhci-dbc.c 	status = readl(&xdbc.xdbc_reg->status);
xdbc              455 drivers/usb/early/xhci-dbc.c 	xdbc.port_number = DCST_DEBUG_PORT(status);
xdbc              458 drivers/usb/early/xhci-dbc.c 		   readl(&xdbc.xdbc_reg->control), xdbc.port_number);
xdbc              476 drivers/usb/early/xhci-dbc.c 	if (!(xdbc.flags & XDBC_FLAGS_INITIALIZED) ||
xdbc              477 drivers/usb/early/xhci-dbc.c 	    !(xdbc.flags & XDBC_FLAGS_CONFIGURED) ||
xdbc              478 drivers/usb/early/xhci-dbc.c 	    (!read && (xdbc.flags & XDBC_FLAGS_OUT_STALL)) ||
xdbc              479 drivers/usb/early/xhci-dbc.c 	    (read && (xdbc.flags & XDBC_FLAGS_IN_STALL))) {
xdbc              481 drivers/usb/early/xhci-dbc.c 		xdbc_trace("connection not ready, flags %08x\n", xdbc.flags);
xdbc              485 drivers/usb/early/xhci-dbc.c 	ring = (read ? &xdbc.in_ring : &xdbc.out_ring);
xdbc              497 drivers/usb/early/xhci-dbc.c 		memset(xdbc.in_buf, 0, XDBC_MAX_PACKET);
xdbc              498 drivers/usb/early/xhci-dbc.c 		addr = xdbc.in_dma;
xdbc              499 drivers/usb/early/xhci-dbc.c 		xdbc.flags |= XDBC_FLAGS_IN_PROCESS;
xdbc              501 drivers/usb/early/xhci-dbc.c 		memset(xdbc.out_buf, 0, XDBC_MAX_PACKET);
xdbc              502 drivers/usb/early/xhci-dbc.c 		memcpy(xdbc.out_buf, data, size);
xdbc              503 drivers/usb/early/xhci-dbc.c 		addr = xdbc.out_dma;
xdbc              504 drivers/usb/early/xhci-dbc.c 		xdbc.flags |= XDBC_FLAGS_OUT_PROCESS;
xdbc              528 drivers/usb/early/xhci-dbc.c 	xdbc.flags = 0;
xdbc              529 drivers/usb/early/xhci-dbc.c 	writel(0, &xdbc.xdbc_reg->control);
xdbc              530 drivers/usb/early/xhci-dbc.c 	ret = handshake(&xdbc.xdbc_reg->control, CTRL_DBC_ENABLE, 0, 100000, 10);
xdbc              542 drivers/usb/early/xhci-dbc.c 	xdbc.flags |= XDBC_FLAGS_INITIALIZED | XDBC_FLAGS_CONFIGURED;
xdbc              557 drivers/usb/early/xhci-dbc.c 	writel(0, &xdbc.xdbc_reg->control);
xdbc              558 drivers/usb/early/xhci-dbc.c 	ret = handshake(&xdbc.xdbc_reg->control, CTRL_DBC_ENABLE, 0, 100000, 100);
xdbc              563 drivers/usb/early/xhci-dbc.c 	xdbc.table_base = xdbc_get_page(&xdbc.table_dma);
xdbc              564 drivers/usb/early/xhci-dbc.c 	if (!xdbc.table_base)
xdbc              568 drivers/usb/early/xhci-dbc.c 	xdbc.out_buf = xdbc_get_page(&xdbc.out_dma);
xdbc              569 drivers/usb/early/xhci-dbc.c 	if (!xdbc.out_buf)
xdbc              573 drivers/usb/early/xhci-dbc.c 	ret = xdbc_alloc_ring(&xdbc.evt_seg, &xdbc.evt_ring);
xdbc              578 drivers/usb/early/xhci-dbc.c 	ret = xdbc_alloc_ring(&xdbc.in_seg, &xdbc.in_ring);
xdbc              582 drivers/usb/early/xhci-dbc.c 	ret = xdbc_alloc_ring(&xdbc.out_seg, &xdbc.out_ring);
xdbc              590 drivers/usb/early/xhci-dbc.c 		writel(0, &xdbc.xdbc_reg->control);
xdbc              594 drivers/usb/early/xhci-dbc.c 	xdbc.flags |= XDBC_FLAGS_INITIALIZED | XDBC_FLAGS_CONFIGURED;
xdbc              613 drivers/usb/early/xhci-dbc.c 	if (xdbc.xdbc_reg)
xdbc              628 drivers/usb/early/xhci-dbc.c 	xdbc.vendor	= read_pci_config_16(bus, dev, func, PCI_VENDOR_ID);
xdbc              629 drivers/usb/early/xhci-dbc.c 	xdbc.device	= read_pci_config_16(bus, dev, func, PCI_DEVICE_ID);
xdbc              630 drivers/usb/early/xhci-dbc.c 	xdbc.bus	= bus;
xdbc              631 drivers/usb/early/xhci-dbc.c 	xdbc.dev	= dev;
xdbc              632 drivers/usb/early/xhci-dbc.c 	xdbc.func	= func;
xdbc              635 drivers/usb/early/xhci-dbc.c 	xdbc.xhci_base = xdbc_map_pci_mmio(bus, dev, func);
xdbc              636 drivers/usb/early/xhci-dbc.c 	if (!xdbc.xhci_base)
xdbc              640 drivers/usb/early/xhci-dbc.c 	offset = xhci_find_next_ext_cap(xdbc.xhci_base, 0, XHCI_EXT_CAPS_DEBUG);
xdbc              643 drivers/usb/early/xhci-dbc.c 		early_iounmap(xdbc.xhci_base, xdbc.xhci_length);
xdbc              644 drivers/usb/early/xhci-dbc.c 		xdbc.xhci_base = NULL;
xdbc              645 drivers/usb/early/xhci-dbc.c 		xdbc.xhci_length = 0;
xdbc              649 drivers/usb/early/xhci-dbc.c 	xdbc.xdbc_reg = (struct xdbc_regs __iomem *)(xdbc.xhci_base + offset);
xdbc              658 drivers/usb/early/xhci-dbc.c 	if (!xdbc.xdbc_reg)
xdbc              663 drivers/usb/early/xhci-dbc.c 	raw_spin_lock_init(&xdbc.lock);
xdbc              669 drivers/usb/early/xhci-dbc.c 		xdbc_free_ring(&xdbc.evt_ring);
xdbc              670 drivers/usb/early/xhci-dbc.c 		xdbc_free_ring(&xdbc.out_ring);
xdbc              671 drivers/usb/early/xhci-dbc.c 		xdbc_free_ring(&xdbc.in_ring);
xdbc              673 drivers/usb/early/xhci-dbc.c 		if (xdbc.table_dma)
xdbc              674 drivers/usb/early/xhci-dbc.c 			memblock_free(xdbc.table_dma, PAGE_SIZE);
xdbc              676 drivers/usb/early/xhci-dbc.c 		if (xdbc.out_dma)
xdbc              677 drivers/usb/early/xhci-dbc.c 			memblock_free(xdbc.out_dma, PAGE_SIZE);
xdbc              679 drivers/usb/early/xhci-dbc.c 		xdbc.table_base = NULL;
xdbc              680 drivers/usb/early/xhci-dbc.c 		xdbc.out_buf = NULL;
xdbc              690 drivers/usb/early/xhci-dbc.c 	port_reg = readl(&xdbc.xdbc_reg->portsc);
xdbc              696 drivers/usb/early/xhci-dbc.c 			xdbc.flags = 0;
xdbc              711 drivers/usb/early/xhci-dbc.c 	writel(port_reg, &xdbc.xdbc_reg->portsc);
xdbc              732 drivers/usb/early/xhci-dbc.c 			xdbc.flags |= XDBC_FLAGS_OUT_STALL;
xdbc              734 drivers/usb/early/xhci-dbc.c 			xdbc.flags |= XDBC_FLAGS_IN_STALL;
xdbc              741 drivers/usb/early/xhci-dbc.c 		xdbc.flags &= ~XDBC_FLAGS_IN_PROCESS;
xdbc              744 drivers/usb/early/xhci-dbc.c 		xdbc.flags &= ~XDBC_FLAGS_OUT_PROCESS;
xdbc              757 drivers/usb/early/xhci-dbc.c 	cmd = read_pci_config_byte(xdbc.bus, xdbc.dev, xdbc.func, PCI_COMMAND);
xdbc              760 drivers/usb/early/xhci-dbc.c 		write_pci_config_byte(xdbc.bus, xdbc.dev, xdbc.func, PCI_COMMAND, cmd);
xdbc              763 drivers/usb/early/xhci-dbc.c 	if (!(xdbc.flags & XDBC_FLAGS_INITIALIZED))
xdbc              767 drivers/usb/early/xhci-dbc.c 	reg = readl(&xdbc.xdbc_reg->control);
xdbc              776 drivers/usb/early/xhci-dbc.c 	reg = readl(&xdbc.xdbc_reg->control);
xdbc              778 drivers/usb/early/xhci-dbc.c 		writel(reg, &xdbc.xdbc_reg->control);
xdbc              780 drivers/usb/early/xhci-dbc.c 			xdbc.flags |= XDBC_FLAGS_CONFIGURED;
xdbc              782 drivers/usb/early/xhci-dbc.c 			xdbc.flags &= ~XDBC_FLAGS_CONFIGURED;
xdbc              786 drivers/usb/early/xhci-dbc.c 	reg = readl(&xdbc.xdbc_reg->control);
xdbc              788 drivers/usb/early/xhci-dbc.c 		xdbc.flags |= XDBC_FLAGS_IN_STALL;
xdbc              790 drivers/usb/early/xhci-dbc.c 		xdbc.flags &= ~XDBC_FLAGS_IN_STALL;
xdbc              791 drivers/usb/early/xhci-dbc.c 		if (!(xdbc.flags & XDBC_FLAGS_IN_PROCESS))
xdbc              796 drivers/usb/early/xhci-dbc.c 		xdbc.flags |= XDBC_FLAGS_OUT_STALL;
xdbc              798 drivers/usb/early/xhci-dbc.c 		xdbc.flags &= ~XDBC_FLAGS_OUT_STALL;
xdbc              801 drivers/usb/early/xhci-dbc.c 	evt_trb = xdbc.evt_ring.dequeue;
xdbc              802 drivers/usb/early/xhci-dbc.c 	while ((le32_to_cpu(evt_trb->field[3]) & TRB_CYCLE) == xdbc.evt_ring.cycle_state) {
xdbc              820 drivers/usb/early/xhci-dbc.c 		++(xdbc.evt_ring.dequeue);
xdbc              821 drivers/usb/early/xhci-dbc.c 		if (xdbc.evt_ring.dequeue == &xdbc.evt_seg.trbs[TRBS_PER_SEGMENT]) {
xdbc              822 drivers/usb/early/xhci-dbc.c 			xdbc.evt_ring.dequeue = xdbc.evt_seg.trbs;
xdbc              823 drivers/usb/early/xhci-dbc.c 			xdbc.evt_ring.cycle_state ^= 1;
xdbc              826 drivers/usb/early/xhci-dbc.c 		evt_trb = xdbc.evt_ring.dequeue;
xdbc              832 drivers/usb/early/xhci-dbc.c 		xdbc_write64(__pa(xdbc.evt_ring.dequeue), &xdbc.xdbc_reg->erdp);
xdbc              842 drivers/usb/early/xhci-dbc.c 		if (!raw_spin_trylock_irqsave(&xdbc.lock, flags))
xdbc              845 drivers/usb/early/xhci-dbc.c 		raw_spin_lock_irqsave(&xdbc.lock, flags);
xdbc              851 drivers/usb/early/xhci-dbc.c 	if ((xdbc.flags & XDBC_FLAGS_OUT_PROCESS) && (timeout < 2000000)) {
xdbc              852 drivers/usb/early/xhci-dbc.c 		raw_spin_unlock_irqrestore(&xdbc.lock, flags);
xdbc              858 drivers/usb/early/xhci-dbc.c 	if (xdbc.flags & XDBC_FLAGS_OUT_PROCESS) {
xdbc              859 drivers/usb/early/xhci-dbc.c 		raw_spin_unlock_irqrestore(&xdbc.lock, flags);
xdbc              866 drivers/usb/early/xhci-dbc.c 	raw_spin_unlock_irqrestore(&xdbc.lock, flags);
xdbc              877 drivers/usb/early/xhci-dbc.c 	if (!xdbc.xdbc_reg)
xdbc              935 drivers/usb/early/xhci-dbc.c 		raw_spin_lock_irqsave(&xdbc.lock, flags);
xdbc              938 drivers/usb/early/xhci-dbc.c 		if (!(xdbc.flags & XDBC_FLAGS_INITIALIZED)) {
xdbc              939 drivers/usb/early/xhci-dbc.c 			raw_spin_unlock_irqrestore(&xdbc.lock, flags);
xdbc              943 drivers/usb/early/xhci-dbc.c 		raw_spin_unlock_irqrestore(&xdbc.lock, flags);
xdbc              948 drivers/usb/early/xhci-dbc.c 	writel(0, &xdbc.xdbc_reg->control);
xdbc              961 drivers/usb/early/xhci-dbc.c 	if (!(xdbc.flags & XDBC_FLAGS_INITIALIZED))
xdbc              974 drivers/usb/early/xhci-dbc.c 	base = ioremap_nocache(xdbc.xhci_start, xdbc.xhci_length);
xdbc              981 drivers/usb/early/xhci-dbc.c 	raw_spin_lock_irqsave(&xdbc.lock, flags);
xdbc              982 drivers/usb/early/xhci-dbc.c 	early_iounmap(xdbc.xhci_base, xdbc.xhci_length);
xdbc              983 drivers/usb/early/xhci-dbc.c 	xdbc.xhci_base = base;
xdbc              984 drivers/usb/early/xhci-dbc.c 	offset = xhci_find_next_ext_cap(xdbc.xhci_base, 0, XHCI_EXT_CAPS_DEBUG);
xdbc              985 drivers/usb/early/xhci-dbc.c 	xdbc.xdbc_reg = (struct xdbc_regs __iomem *)(xdbc.xhci_base + offset);
xdbc              986 drivers/usb/early/xhci-dbc.c 	raw_spin_unlock_irqrestore(&xdbc.lock, flags);
xdbc              993 drivers/usb/early/xhci-dbc.c 	xdbc_free_ring(&xdbc.evt_ring);
xdbc              994 drivers/usb/early/xhci-dbc.c 	xdbc_free_ring(&xdbc.out_ring);
xdbc              995 drivers/usb/early/xhci-dbc.c 	xdbc_free_ring(&xdbc.in_ring);
xdbc              996 drivers/usb/early/xhci-dbc.c 	memblock_free(xdbc.table_dma, PAGE_SIZE);
xdbc              997 drivers/usb/early/xhci-dbc.c 	memblock_free(xdbc.out_dma, PAGE_SIZE);
xdbc              998 drivers/usb/early/xhci-dbc.c 	writel(0, &xdbc.xdbc_reg->control);
xdbc              999 drivers/usb/early/xhci-dbc.c 	early_iounmap(xdbc.xhci_base, xdbc.xhci_length);