Lines Matching refs:epf_test
87 struct pci_epf_test *epf_test = param; in pci_epf_test_dma_callback() local
89 complete(&epf_test->transfer_complete); in pci_epf_test_dma_callback()
110 static int pci_epf_test_data_transfer(struct pci_epf_test *epf_test, in pci_epf_test_data_transfer() argument
116 epf_test->dma_chan_tx : epf_test->dma_chan_rx; in pci_epf_test_data_transfer()
119 struct pci_epf *epf = epf_test->epf; in pci_epf_test_data_transfer()
131 if (epf_test->dma_private) { in pci_epf_test_data_transfer()
155 tx->callback_param = epf_test; in pci_epf_test_data_transfer()
157 reinit_completion(&epf_test->transfer_complete); in pci_epf_test_data_transfer()
166 ret = wait_for_completion_interruptible(&epf_test->transfer_complete); in pci_epf_test_data_transfer()
199 static int pci_epf_test_init_dma_chan(struct pci_epf_test *epf_test) in pci_epf_test_init_dma_chan() argument
201 struct pci_epf *epf = epf_test->epf; in pci_epf_test_init_dma_chan()
219 epf_test->dma_chan_rx = dma_chan; in pci_epf_test_init_dma_chan()
229 epf_test->dma_chan_tx = dma_chan; in pci_epf_test_init_dma_chan()
230 epf_test->dma_private = true; in pci_epf_test_init_dma_chan()
232 init_completion(&epf_test->transfer_complete); in pci_epf_test_init_dma_chan()
237 dma_release_channel(epf_test->dma_chan_rx); in pci_epf_test_init_dma_chan()
238 epf_test->dma_chan_tx = NULL; in pci_epf_test_init_dma_chan()
251 init_completion(&epf_test->transfer_complete); in pci_epf_test_init_dma_chan()
253 epf_test->dma_chan_tx = epf_test->dma_chan_rx = dma_chan; in pci_epf_test_init_dma_chan()
264 static void pci_epf_test_clean_dma_chan(struct pci_epf_test *epf_test) in pci_epf_test_clean_dma_chan() argument
266 if (!epf_test->dma_supported) in pci_epf_test_clean_dma_chan()
269 dma_release_channel(epf_test->dma_chan_tx); in pci_epf_test_clean_dma_chan()
270 if (epf_test->dma_chan_tx == epf_test->dma_chan_rx) { in pci_epf_test_clean_dma_chan()
271 epf_test->dma_chan_tx = NULL; in pci_epf_test_clean_dma_chan()
272 epf_test->dma_chan_rx = NULL; in pci_epf_test_clean_dma_chan()
276 dma_release_channel(epf_test->dma_chan_rx); in pci_epf_test_clean_dma_chan()
277 epf_test->dma_chan_rx = NULL; in pci_epf_test_clean_dma_chan()
312 static int pci_epf_test_copy(struct pci_epf_test *epf_test) in pci_epf_test_copy() argument
321 struct pci_epf *epf = epf_test->epf; in pci_epf_test_copy()
324 enum pci_barno test_reg_bar = epf_test->test_reg_bar; in pci_epf_test_copy()
325 struct pci_epf_test_reg *reg = epf_test->reg[test_reg_bar]; in pci_epf_test_copy()
362 if (!epf_test->dma_supported) { in pci_epf_test_copy()
368 if (epf_test->dma_private) { in pci_epf_test_copy()
374 ret = pci_epf_test_data_transfer(epf_test, dst_phys_addr, in pci_epf_test_copy()
411 static int 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()
425 enum pci_barno test_reg_bar = epf_test->test_reg_bar; in pci_epf_test_read()
426 struct pci_epf_test_reg *reg = epf_test->reg[test_reg_bar]; in pci_epf_test_read()
452 if (!epf_test->dma_supported) { in pci_epf_test_read()
467 ret = pci_epf_test_data_transfer(epf_test, dst_phys_addr, in pci_epf_test_read()
501 static int pci_epf_test_write(struct pci_epf_test *epf_test) in pci_epf_test_write() argument
510 struct pci_epf *epf = epf_test->epf; in pci_epf_test_write()
514 enum pci_barno test_reg_bar = epf_test->test_reg_bar; in pci_epf_test_write()
515 struct pci_epf_test_reg *reg = epf_test->reg[test_reg_bar]; in pci_epf_test_write()
544 if (!epf_test->dma_supported) { in pci_epf_test_write()
560 ret = pci_epf_test_data_transfer(epf_test, phys_addr, in pci_epf_test_write()
597 static void pci_epf_test_raise_irq(struct pci_epf_test *epf_test, u8 irq_type, in pci_epf_test_raise_irq() argument
600 struct pci_epf *epf = epf_test->epf; in pci_epf_test_raise_irq()
603 enum pci_barno test_reg_bar = epf_test->test_reg_bar; in pci_epf_test_raise_irq()
604 struct pci_epf_test_reg *reg = epf_test->reg[test_reg_bar]; in pci_epf_test_raise_irq()
632 struct pci_epf_test *epf_test = container_of(work, struct pci_epf_test, in pci_epf_test_cmd_handler() local
634 struct pci_epf *epf = epf_test->epf; in pci_epf_test_cmd_handler()
637 enum pci_barno test_reg_bar = epf_test->test_reg_bar; in pci_epf_test_cmd_handler()
638 struct pci_epf_test_reg *reg = epf_test->reg[test_reg_bar]; in pci_epf_test_cmd_handler()
660 ret = pci_epf_test_write(epf_test); in pci_epf_test_cmd_handler()
665 pci_epf_test_raise_irq(epf_test, reg->irq_type, in pci_epf_test_cmd_handler()
671 ret = pci_epf_test_read(epf_test); in pci_epf_test_cmd_handler()
676 pci_epf_test_raise_irq(epf_test, reg->irq_type, in pci_epf_test_cmd_handler()
682 ret = pci_epf_test_copy(epf_test); in pci_epf_test_cmd_handler()
687 pci_epf_test_raise_irq(epf_test, reg->irq_type, in pci_epf_test_cmd_handler()
713 queue_delayed_work(kpcitest_workqueue, &epf_test->cmd_handler, in pci_epf_test_cmd_handler()
719 struct pci_epf_test *epf_test = epf_get_drvdata(epf); in pci_epf_test_unbind() local
724 cancel_delayed_work(&epf_test->cmd_handler); in pci_epf_test_unbind()
725 pci_epf_test_clean_dma_chan(epf_test); in pci_epf_test_unbind()
729 if (epf_test->reg[bar]) { in pci_epf_test_unbind()
732 pci_epf_free_space(epf, epf_test->reg[bar], bar, in pci_epf_test_unbind()
745 struct pci_epf_test *epf_test = epf_get_drvdata(epf); in pci_epf_test_set_bar() local
746 enum pci_barno test_reg_bar = epf_test->test_reg_bar; in pci_epf_test_set_bar()
749 epc_features = epf_test->epc_features; in pci_epf_test_set_bar()
766 pci_epf_free_space(epf, epf_test->reg[bar], bar, in pci_epf_test_set_bar()
779 struct pci_epf_test *epf_test = epf_get_drvdata(epf); in pci_epf_test_core_init() local
818 epf_test->test_reg_bar, in pci_epf_test_core_init()
819 epf_test->msix_table_offset); in pci_epf_test_core_init()
833 struct pci_epf_test *epf_test = epf_get_drvdata(epf); in pci_epf_test_notifier() local
844 queue_delayed_work(kpcitest_workqueue, &epf_test->cmd_handler, in pci_epf_test_notifier()
858 struct pci_epf_test *epf_test = epf_get_drvdata(epf); in pci_epf_test_alloc_space() local
867 enum pci_barno test_reg_bar = epf_test->test_reg_bar; in pci_epf_test_alloc_space()
871 epc_features = epf_test->epc_features; in pci_epf_test_alloc_space()
878 epf_test->msix_table_offset = test_reg_bar_size; in pci_epf_test_alloc_space()
896 epf_test->reg[test_reg_bar] = base; in pci_epf_test_alloc_space()
914 epf_test->reg[bar] = base; in pci_epf_test_alloc_space()
940 struct pci_epf_test *epf_test = epf_get_drvdata(epf); in pci_epf_test_bind() local
963 epf_test->test_reg_bar = test_reg_bar; in pci_epf_test_bind()
964 epf_test->epc_features = epc_features; in pci_epf_test_bind()
976 epf_test->dma_supported = true; in pci_epf_test_bind()
978 ret = pci_epf_test_init_dma_chan(epf_test); in pci_epf_test_bind()
980 epf_test->dma_supported = false; in pci_epf_test_bind()
986 queue_work(kpcitest_workqueue, &epf_test->cmd_handler.work); in pci_epf_test_bind()
1001 struct pci_epf_test *epf_test; in pci_epf_test_probe() local
1004 epf_test = devm_kzalloc(dev, sizeof(*epf_test), GFP_KERNEL); in pci_epf_test_probe()
1005 if (!epf_test) in pci_epf_test_probe()
1009 epf_test->epf = epf; in pci_epf_test_probe()
1011 INIT_DELAYED_WORK(&epf_test->cmd_handler, pci_epf_test_cmd_handler); in pci_epf_test_probe()
1013 epf_set_drvdata(epf, epf_test); in pci_epf_test_probe()