Lines Matching refs:epf_test

90 	struct pci_epf_test *epf_test = param;  in pci_epf_test_dma_callback()  local
93 epf_test->transfer_status = in pci_epf_test_dma_callback()
94 dmaengine_tx_status(epf_test->transfer_chan, in pci_epf_test_dma_callback()
95 epf_test->transfer_cookie, &state); in pci_epf_test_dma_callback()
96 if (epf_test->transfer_status == DMA_COMPLETE || in pci_epf_test_dma_callback()
97 epf_test->transfer_status == DMA_ERROR) in pci_epf_test_dma_callback()
98 complete(&epf_test->transfer_complete); in pci_epf_test_dma_callback()
119 static int pci_epf_test_data_transfer(struct pci_epf_test *epf_test, in pci_epf_test_data_transfer() argument
125 epf_test->dma_chan_tx : epf_test->dma_chan_rx; in pci_epf_test_data_transfer()
128 struct pci_epf *epf = epf_test->epf; in pci_epf_test_data_transfer()
139 if (epf_test->dma_private) { in pci_epf_test_data_transfer()
162 reinit_completion(&epf_test->transfer_complete); in pci_epf_test_data_transfer()
163 epf_test->transfer_chan = chan; in pci_epf_test_data_transfer()
165 tx->callback_param = epf_test; in pci_epf_test_data_transfer()
166 epf_test->transfer_cookie = dmaengine_submit(tx); in pci_epf_test_data_transfer()
168 ret = dma_submit_error(epf_test->transfer_cookie); in pci_epf_test_data_transfer()
175 ret = wait_for_completion_interruptible(&epf_test->transfer_complete); in pci_epf_test_data_transfer()
181 if (epf_test->transfer_status == DMA_ERROR) { in pci_epf_test_data_transfer()
215 static int pci_epf_test_init_dma_chan(struct pci_epf_test *epf_test) in pci_epf_test_init_dma_chan() argument
217 struct pci_epf *epf = epf_test->epf; in pci_epf_test_init_dma_chan()
235 epf_test->dma_chan_rx = dma_chan; in pci_epf_test_init_dma_chan()
245 epf_test->dma_chan_tx = dma_chan; in pci_epf_test_init_dma_chan()
246 epf_test->dma_private = true; in pci_epf_test_init_dma_chan()
248 init_completion(&epf_test->transfer_complete); in pci_epf_test_init_dma_chan()
253 dma_release_channel(epf_test->dma_chan_rx); in pci_epf_test_init_dma_chan()
254 epf_test->dma_chan_tx = NULL; in pci_epf_test_init_dma_chan()
267 init_completion(&epf_test->transfer_complete); in pci_epf_test_init_dma_chan()
269 epf_test->dma_chan_tx = epf_test->dma_chan_rx = dma_chan; in pci_epf_test_init_dma_chan()
280 static void pci_epf_test_clean_dma_chan(struct pci_epf_test *epf_test) in pci_epf_test_clean_dma_chan() argument
282 if (!epf_test->dma_supported) in pci_epf_test_clean_dma_chan()
285 dma_release_channel(epf_test->dma_chan_tx); in pci_epf_test_clean_dma_chan()
286 if (epf_test->dma_chan_tx == epf_test->dma_chan_rx) { in pci_epf_test_clean_dma_chan()
287 epf_test->dma_chan_tx = NULL; in pci_epf_test_clean_dma_chan()
288 epf_test->dma_chan_rx = NULL; in pci_epf_test_clean_dma_chan()
292 dma_release_channel(epf_test->dma_chan_rx); in pci_epf_test_clean_dma_chan()
293 epf_test->dma_chan_rx = NULL; in pci_epf_test_clean_dma_chan()
298 static void pci_epf_test_print_rate(struct pci_epf_test *epf_test, in pci_epf_test_print_rate() argument
311 dev_info(&epf_test->epf->dev, in pci_epf_test_print_rate()
317 static void pci_epf_test_copy(struct pci_epf_test *epf_test, in pci_epf_test_copy() argument
326 struct pci_epf *epf = epf_test->epf; in pci_epf_test_copy()
364 if (epf_test->dma_private) { in pci_epf_test_copy()
370 ret = pci_epf_test_data_transfer(epf_test, dst_phys_addr, in pci_epf_test_copy()
389 pci_epf_test_print_rate(epf_test, "COPY", reg->size, &start, &end, in pci_epf_test_copy()
411 static void pci_epf_test_read(struct pci_epf_test *epf_test, in pci_epf_test_read() argument
421 struct pci_epf *epf = epf_test->epf; in pci_epf_test_read()
458 ret = pci_epf_test_data_transfer(epf_test, dst_phys_addr, in pci_epf_test_read()
473 pci_epf_test_print_rate(epf_test, "READ", reg->size, &start, &end, in pci_epf_test_read()
496 static void pci_epf_test_write(struct pci_epf_test *epf_test, in pci_epf_test_write() argument
505 struct pci_epf *epf = epf_test->epf; in pci_epf_test_write()
546 ret = pci_epf_test_data_transfer(epf_test, phys_addr, in pci_epf_test_write()
562 pci_epf_test_print_rate(epf_test, "WRITE", reg->size, &start, &end, in pci_epf_test_write()
587 static void pci_epf_test_raise_irq(struct pci_epf_test *epf_test, in pci_epf_test_raise_irq() argument
590 struct pci_epf *epf = epf_test->epf; in pci_epf_test_raise_irq()
636 struct pci_epf_test *epf_test = container_of(work, struct pci_epf_test, in pci_epf_test_cmd_handler() local
638 struct pci_epf *epf = epf_test->epf; in pci_epf_test_cmd_handler()
640 enum pci_barno test_reg_bar = epf_test->test_reg_bar; in pci_epf_test_cmd_handler()
641 struct pci_epf_test_reg *reg = epf_test->reg[test_reg_bar]; in pci_epf_test_cmd_handler()
651 !epf_test->dma_supported) { in pci_epf_test_cmd_handler()
665 pci_epf_test_raise_irq(epf_test, reg); in pci_epf_test_cmd_handler()
668 pci_epf_test_write(epf_test, reg); in pci_epf_test_cmd_handler()
669 pci_epf_test_raise_irq(epf_test, reg); in pci_epf_test_cmd_handler()
672 pci_epf_test_read(epf_test, reg); in pci_epf_test_cmd_handler()
673 pci_epf_test_raise_irq(epf_test, reg); in pci_epf_test_cmd_handler()
676 pci_epf_test_copy(epf_test, reg); in pci_epf_test_cmd_handler()
677 pci_epf_test_raise_irq(epf_test, reg); in pci_epf_test_cmd_handler()
685 queue_delayed_work(kpcitest_workqueue, &epf_test->cmd_handler, in pci_epf_test_cmd_handler()
691 struct pci_epf_test *epf_test = epf_get_drvdata(epf); in pci_epf_test_unbind() local
696 cancel_delayed_work(&epf_test->cmd_handler); in pci_epf_test_unbind()
697 pci_epf_test_clean_dma_chan(epf_test); in pci_epf_test_unbind()
701 if (epf_test->reg[bar]) { in pci_epf_test_unbind()
704 pci_epf_free_space(epf, epf_test->reg[bar], bar, in pci_epf_test_unbind()
717 struct pci_epf_test *epf_test = epf_get_drvdata(epf); in pci_epf_test_set_bar() local
718 enum pci_barno test_reg_bar = epf_test->test_reg_bar; in pci_epf_test_set_bar()
721 epc_features = epf_test->epc_features; in pci_epf_test_set_bar()
738 pci_epf_free_space(epf, epf_test->reg[bar], bar, in pci_epf_test_set_bar()
751 struct pci_epf_test *epf_test = epf_get_drvdata(epf); in pci_epf_test_core_init() local
790 epf_test->test_reg_bar, in pci_epf_test_core_init()
791 epf_test->msix_table_offset); in pci_epf_test_core_init()
803 struct pci_epf_test *epf_test = epf_get_drvdata(epf); in pci_epf_test_link_up() local
805 queue_delayed_work(kpcitest_workqueue, &epf_test->cmd_handler, in pci_epf_test_link_up()
818 struct pci_epf_test *epf_test = epf_get_drvdata(epf); in pci_epf_test_alloc_space() local
827 enum pci_barno test_reg_bar = epf_test->test_reg_bar; in pci_epf_test_alloc_space()
831 epc_features = epf_test->epc_features; in pci_epf_test_alloc_space()
838 epf_test->msix_table_offset = test_reg_bar_size; in pci_epf_test_alloc_space()
856 epf_test->reg[test_reg_bar] = base; in pci_epf_test_alloc_space()
874 epf_test->reg[bar] = base; in pci_epf_test_alloc_space()
900 struct pci_epf_test *epf_test = epf_get_drvdata(epf); in pci_epf_test_bind() local
923 epf_test->test_reg_bar = test_reg_bar; in pci_epf_test_bind()
924 epf_test->epc_features = epc_features; in pci_epf_test_bind()
936 epf_test->dma_supported = true; in pci_epf_test_bind()
938 ret = pci_epf_test_init_dma_chan(epf_test); in pci_epf_test_bind()
940 epf_test->dma_supported = false; in pci_epf_test_bind()
943 queue_work(kpcitest_workqueue, &epf_test->cmd_handler.work); in pci_epf_test_bind()
958 struct pci_epf_test *epf_test; in pci_epf_test_probe() local
961 epf_test = devm_kzalloc(dev, sizeof(*epf_test), GFP_KERNEL); in pci_epf_test_probe()
962 if (!epf_test) in pci_epf_test_probe()
966 epf_test->epf = epf; in pci_epf_test_probe()
968 INIT_DELAYED_WORK(&epf_test->cmd_handler, pci_epf_test_cmd_handler); in pci_epf_test_probe()
972 epf_set_drvdata(epf, epf_test); in pci_epf_test_probe()