Lines Matching refs:reg

50 	void			*reg[PCI_STD_NUM_BARS];
318 struct pci_epf_test_reg *reg)
330 src_addr = pci_epc_mem_alloc_addr(epc, &src_phys_addr, reg->size);
333 reg->status = STATUS_SRC_ADDR_INVALID;
339 reg->src_addr, reg->size);
342 reg->status = STATUS_SRC_ADDR_INVALID;
346 dst_addr = pci_epc_mem_alloc_addr(epc, &dst_phys_addr, reg->size);
349 reg->status = STATUS_DST_ADDR_INVALID;
355 reg->dst_addr, reg->size);
358 reg->status = STATUS_DST_ADDR_INVALID;
363 if (reg->flags & FLAG_USE_DMA) {
371 src_phys_addr, reg->size, 0,
378 buf = kzalloc(reg->size, GFP_KERNEL);
384 memcpy_fromio(buf, src_addr, reg->size);
385 memcpy_toio(dst_addr, buf, reg->size);
389 pci_epf_test_print_rate(epf_test, "COPY", reg->size, &start, &end,
390 reg->flags & FLAG_USE_DMA);
396 pci_epc_mem_free_addr(epc, dst_phys_addr, dst_addr, reg->size);
402 pci_epc_mem_free_addr(epc, src_phys_addr, src_addr, reg->size);
406 reg->status |= STATUS_COPY_SUCCESS;
408 reg->status |= STATUS_COPY_FAIL;
412 struct pci_epf_test_reg *reg)
426 src_addr = pci_epc_mem_alloc_addr(epc, &phys_addr, reg->size);
429 reg->status = STATUS_SRC_ADDR_INVALID;
435 reg->src_addr, reg->size);
438 reg->status = STATUS_SRC_ADDR_INVALID;
442 buf = kzalloc(reg->size, GFP_KERNEL);
448 if (reg->flags & FLAG_USE_DMA) {
449 dst_phys_addr = dma_map_single(dma_dev, buf, reg->size,
459 phys_addr, reg->size,
460 reg->src_addr, DMA_DEV_TO_MEM);
465 dma_unmap_single(dma_dev, dst_phys_addr, reg->size,
469 memcpy_fromio(buf, src_addr, reg->size);
473 pci_epf_test_print_rate(epf_test, "READ", reg->size, &start, &end,
474 reg->flags & FLAG_USE_DMA);
476 crc32 = crc32_le(~0, buf, reg->size);
477 if (crc32 != reg->checksum)
487 pci_epc_mem_free_addr(epc, phys_addr, src_addr, reg->size);
491 reg->status |= STATUS_READ_SUCCESS;
493 reg->status |= STATUS_READ_FAIL;
497 struct pci_epf_test_reg *reg)
510 dst_addr = pci_epc_mem_alloc_addr(epc, &phys_addr, reg->size);
513 reg->status = STATUS_DST_ADDR_INVALID;
519 reg->dst_addr, reg->size);
522 reg->status = STATUS_DST_ADDR_INVALID;
526 buf = kzalloc(reg->size, GFP_KERNEL);
532 get_random_bytes(buf, reg->size);
533 reg->checksum = crc32_le(~0, buf, reg->size);
535 if (reg->flags & FLAG_USE_DMA) {
536 src_phys_addr = dma_map_single(dma_dev, buf, reg->size,
547 src_phys_addr, reg->size,
548 reg->dst_addr,
554 dma_unmap_single(dma_dev, src_phys_addr, reg->size,
558 memcpy_toio(dst_addr, buf, reg->size);
562 pci_epf_test_print_rate(epf_test, "WRITE", reg->size, &start, &end,
563 reg->flags & FLAG_USE_DMA);
578 pci_epc_mem_free_addr(epc, phys_addr, dst_addr, reg->size);
582 reg->status |= STATUS_WRITE_SUCCESS;
584 reg->status |= STATUS_WRITE_FAIL;
588 struct pci_epf_test_reg *reg)
593 u32 status = reg->status | STATUS_IRQ_RAISED;
600 WRITE_ONCE(reg->status, status);
602 switch (reg->irq_type) {
609 if (reg->irq_number > count || count <= 0) {
611 reg->irq_number, count);
615 PCI_EPC_IRQ_MSI, reg->irq_number);
619 if (reg->irq_number > count || count <= 0) {
621 reg->irq_number, count);
625 PCI_EPC_IRQ_MSIX, reg->irq_number);
641 struct pci_epf_test_reg *reg = epf_test->reg[test_reg_bar];
643 command = READ_ONCE(reg->command);
647 WRITE_ONCE(reg->command, 0);
648 WRITE_ONCE(reg->status, 0);
650 if ((READ_ONCE(reg->flags) & FLAG_USE_DMA) &&
656 if (reg->irq_type > IRQ_TYPE_MSIX) {
665 pci_epf_test_raise_irq(epf_test, reg);
668 pci_epf_test_write(epf_test, reg);
669 pci_epf_test_raise_irq(epf_test, reg);
672 pci_epf_test_read(epf_test, reg);
673 pci_epf_test_raise_irq(epf_test, reg);
676 pci_epf_test_copy(epf_test, reg);
677 pci_epf_test_raise_irq(epf_test, reg);
701 if (epf_test->reg[bar]) {
704 pci_epf_free_space(epf, epf_test->reg[bar], bar,
738 pci_epf_free_space(epf, epf_test->reg[bar], bar,
856 epf_test->reg[test_reg_bar] = base;
874 epf_test->reg[bar] = base;