Commit f9c589e
xhci: TD-fragment, align the unsplittable case with a bounce buffer
If the last trb before a link is not packet size aligned, and is not
splittable then use a bounce buffer for that chunk of max packet size
unalignable data.
Allocate a max packet size bounce buffer for every segment of a bulk
endpoint ring at the same time as allocating the ring.
If we need to align the data before the link trb in that segment then
copy the data to the segment bounce buffer, dma map it, and enqueue it.
Once the td finishes, or is cancelled, unmap it.
For in transfers we need to first map the bounce buffer, then queue it,
after it finishes, copy the bounce buffer to the original sg list, and
finally unmap it
Signed-off-by: Mathias Nyman <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>1 parent 474ed23 commit f9c589e
4 files changed
+155
-40
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
40 | | - | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
41 | 43 | | |
42 | 44 | | |
43 | 45 | | |
| |||
53 | 55 | | |
54 | 56 | | |
55 | 57 | | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
56 | 66 | | |
57 | 67 | | |
58 | 68 | | |
| |||
70 | 80 | | |
71 | 81 | | |
72 | 82 | | |
| 83 | + | |
73 | 84 | | |
74 | 85 | | |
75 | 86 | | |
| |||
317 | 328 | | |
318 | 329 | | |
319 | 330 | | |
320 | | - | |
| 331 | + | |
321 | 332 | | |
322 | 333 | | |
323 | 334 | | |
324 | | - | |
| 335 | + | |
325 | 336 | | |
326 | 337 | | |
327 | 338 | | |
| |||
330 | 341 | | |
331 | 342 | | |
332 | 343 | | |
333 | | - | |
| 344 | + | |
334 | 345 | | |
335 | 346 | | |
336 | 347 | | |
| |||
360 | 371 | | |
361 | 372 | | |
362 | 373 | | |
363 | | - | |
| 374 | + | |
364 | 375 | | |
365 | 376 | | |
366 | 377 | | |
| |||
370 | 381 | | |
371 | 382 | | |
372 | 383 | | |
| 384 | + | |
373 | 385 | | |
374 | 386 | | |
375 | 387 | | |
376 | 388 | | |
377 | 389 | | |
378 | 390 | | |
379 | | - | |
| 391 | + | |
| 392 | + | |
380 | 393 | | |
381 | 394 | | |
382 | 395 | | |
| |||
470 | 483 | | |
471 | 484 | | |
472 | 485 | | |
473 | | - | |
| 486 | + | |
| 487 | + | |
474 | 488 | | |
475 | 489 | | |
476 | 490 | | |
| |||
652 | 666 | | |
653 | 667 | | |
654 | 668 | | |
655 | | - | |
| 669 | + | |
| 670 | + | |
656 | 671 | | |
657 | 672 | | |
658 | 673 | | |
| |||
704 | 719 | | |
705 | 720 | | |
706 | 721 | | |
| 722 | + | |
707 | 723 | | |
708 | 724 | | |
709 | | - | |
| 725 | + | |
| 726 | + | |
710 | 727 | | |
711 | 728 | | |
712 | 729 | | |
| |||
1003 | 1020 | | |
1004 | 1021 | | |
1005 | 1022 | | |
1006 | | - | |
| 1023 | + | |
1007 | 1024 | | |
1008 | 1025 | | |
1009 | 1026 | | |
| |||
1434 | 1451 | | |
1435 | 1452 | | |
1436 | 1453 | | |
1437 | | - | |
1438 | | - | |
1439 | | - | |
1440 | | - | |
1441 | | - | |
1442 | | - | |
1443 | | - | |
1444 | | - | |
1445 | | - | |
1446 | | - | |
1447 | | - | |
1448 | | - | |
1449 | | - | |
1450 | | - | |
1451 | | - | |
1452 | | - | |
1453 | 1454 | | |
1454 | 1455 | | |
1455 | 1456 | | |
| |||
1479 | 1480 | | |
1480 | 1481 | | |
1481 | 1482 | | |
| 1483 | + | |
| 1484 | + | |
| 1485 | + | |
| 1486 | + | |
| 1487 | + | |
| 1488 | + | |
| 1489 | + | |
| 1490 | + | |
| 1491 | + | |
| 1492 | + | |
| 1493 | + | |
| 1494 | + | |
| 1495 | + | |
| 1496 | + | |
| 1497 | + | |
| 1498 | + | |
| 1499 | + | |
1482 | 1500 | | |
1483 | 1501 | | |
1484 | 1502 | | |
| |||
2409 | 2427 | | |
2410 | 2428 | | |
2411 | 2429 | | |
2412 | | - | |
| 2430 | + | |
2413 | 2431 | | |
2414 | 2432 | | |
2415 | 2433 | | |
| |||
2454 | 2472 | | |
2455 | 2473 | | |
2456 | 2474 | | |
2457 | | - | |
| 2475 | + | |
2458 | 2476 | | |
2459 | 2477 | | |
2460 | 2478 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
66 | 66 | | |
67 | 67 | | |
68 | 68 | | |
| 69 | + | |
69 | 70 | | |
70 | 71 | | |
71 | 72 | | |
| |||
626 | 627 | | |
627 | 628 | | |
628 | 629 | | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
629 | 655 | | |
630 | 656 | | |
631 | 657 | | |
| |||
745 | 771 | | |
746 | 772 | | |
747 | 773 | | |
| 774 | + | |
| 775 | + | |
748 | 776 | | |
749 | 777 | | |
750 | 778 | | |
| |||
767 | 795 | | |
768 | 796 | | |
769 | 797 | | |
| 798 | + | |
| 799 | + | |
| 800 | + | |
770 | 801 | | |
771 | 802 | | |
772 | 803 | | |
| |||
1865 | 1896 | | |
1866 | 1897 | | |
1867 | 1898 | | |
| 1899 | + | |
| 1900 | + | |
| 1901 | + | |
| 1902 | + | |
1868 | 1903 | | |
1869 | 1904 | | |
1870 | 1905 | | |
| |||
3116 | 3151 | | |
3117 | 3152 | | |
3118 | 3153 | | |
| 3154 | + | |
3119 | 3155 | | |
3120 | | - | |
| 3156 | + | |
3121 | 3157 | | |
| 3158 | + | |
3122 | 3159 | | |
3123 | 3160 | | |
| 3161 | + | |
3124 | 3162 | | |
3125 | 3163 | | |
3126 | 3164 | | |
| |||
3129 | 3167 | | |
3130 | 3168 | | |
3131 | 3169 | | |
| 3170 | + | |
| 3171 | + | |
| 3172 | + | |
3132 | 3173 | | |
3133 | 3174 | | |
3134 | 3175 | | |
| 3176 | + | |
3135 | 3177 | | |
3136 | 3178 | | |
| 3179 | + | |
| 3180 | + | |
| 3181 | + | |
| 3182 | + | |
| 3183 | + | |
| 3184 | + | |
| 3185 | + | |
| 3186 | + | |
| 3187 | + | |
| 3188 | + | |
| 3189 | + | |
| 3190 | + | |
| 3191 | + | |
| 3192 | + | |
| 3193 | + | |
| 3194 | + | |
| 3195 | + | |
| 3196 | + | |
| 3197 | + | |
| 3198 | + | |
| 3199 | + | |
| 3200 | + | |
| 3201 | + | |
| 3202 | + | |
| 3203 | + | |
| 3204 | + | |
| 3205 | + | |
| 3206 | + | |
| 3207 | + | |
| 3208 | + | |
| 3209 | + | |
| 3210 | + | |
| 3211 | + | |
3137 | 3212 | | |
3138 | 3213 | | |
3139 | 3214 | | |
| |||
3152 | 3227 | | |
3153 | 3228 | | |
3154 | 3229 | | |
3155 | | - | |
| 3230 | + | |
3156 | 3231 | | |
3157 | | - | |
| 3232 | + | |
3158 | 3233 | | |
3159 | 3234 | | |
3160 | 3235 | | |
| |||
3194 | 3269 | | |
3195 | 3270 | | |
3196 | 3271 | | |
| 3272 | + | |
3197 | 3273 | | |
3198 | 3274 | | |
3199 | 3275 | | |
| |||
3222 | 3298 | | |
3223 | 3299 | | |
3224 | 3300 | | |
3225 | | - | |
3226 | | - | |
| 3301 | + | |
| 3302 | + | |
| 3303 | + | |
| 3304 | + | |
| 3305 | + | |
| 3306 | + | |
3227 | 3307 | | |
3228 | | - | |
| 3308 | + | |
| 3309 | + | |
| 3310 | + | |
3229 | 3311 | | |
3230 | 3312 | | |
3231 | 3313 | | |
| |||
3244 | 3326 | | |
3245 | 3327 | | |
3246 | 3328 | | |
3247 | | - | |
3248 | | - | |
| 3329 | + | |
| 3330 | + | |
3249 | 3331 | | |
3250 | 3332 | | |
3251 | 3333 | | |
3252 | 3334 | | |
3253 | | - | |
| 3335 | + | |
3254 | 3336 | | |
3255 | | - | |
| 3337 | + | |
3256 | 3338 | | |
3257 | 3339 | | |
| 3340 | + | |
3258 | 3341 | | |
3259 | 3342 | | |
3260 | 3343 | | |
3261 | 3344 | | |
| 3345 | + | |
3262 | 3346 | | |
3263 | 3347 | | |
| 3348 | + | |
| 3349 | + | |
3264 | 3350 | | |
3265 | 3351 | | |
3266 | 3352 | | |
| |||
0 commit comments