20 #include <linux/kernel.h>
21 #include <linux/slab.h>
39 dma_addr = pci_map_single(solo_dev->
pdev, sys_addr, size,
44 pci_unmap_single(solo_dev->
pdev, dma_addr, size,
107 desc_dma = pci_map_single(solo_dev->
pdev, desc,
108 desc_count *
sizeof(*desc),
124 pci_unmap_single(solo_dev->
pdev, desc_dma,
125 desc_count *
sizeof(*desc),
130 else if (timeout == 0)
153 memset(pdesc, 0,
sizeof(*pdesc));
156 for (i = 0, idx = 1; idx < SOLO_NR_P2M_DESC && sg && size > 0;
162 if (sg_off >= sg_len) {
168 len =
min(sg_len, size);
171 ext_addr, len, 0, 0);
187 #define P2M_TEST_CHAR 0xbe
195 unsigned long long err_cnt = 0;
210 memset(wr_buf, P2M_TEST_CHAR, size);
211 memset(rd_buf, P2M_TEST_CHAR + 1, size);
216 for (i = 0; i <
size; i++)
217 if (wr_buf[i] != rd_buf[i])
226 #define TEST_CHUNK_SIZE (8 * 1024)
230 unsigned long long errs = 0;
237 for (i = 0; i <
size; i += TEST_CHUNK_SIZE)
238 for (d = 0; d < 4; d++)
239 errs += p2m_test(solo_dev, d, i, TEST_CHUNK_SIZE);
247 #define run_p2m_test(__solo) do {} while (0)