| .. | .. |
|---|
| 307 | 307 | |
|---|
| 308 | 308 | #ifdef CONFIG_USB_EHCI_TT_NEWSCHED |
|---|
| 309 | 309 | |
|---|
| 310 | | -/* Which uframe does the low/fullspeed transfer start in? |
|---|
| 311 | | - * |
|---|
| 312 | | - * The parameter is the mask of ssplits in "H-frame" terms |
|---|
| 313 | | - * and this returns the transfer start uframe in "B-frame" terms, |
|---|
| 314 | | - * which allows both to match, e.g. a ssplit in "H-frame" uframe 0 |
|---|
| 315 | | - * will cause a transfer in "B-frame" uframe 0. "B-frames" lag |
|---|
| 316 | | - * "H-frames" by 1 uframe. See the EHCI spec sec 4.5 and figure 4.7. |
|---|
| 317 | | - */ |
|---|
| 318 | | -static inline unsigned char tt_start_uframe(struct ehci_hcd *ehci, __hc32 mask) |
|---|
| 319 | | -{ |
|---|
| 320 | | - unsigned char smask = hc32_to_cpu(ehci, mask) & QH_SMASK; |
|---|
| 321 | | - |
|---|
| 322 | | - if (!smask) { |
|---|
| 323 | | - ehci_err(ehci, "invalid empty smask!\n"); |
|---|
| 324 | | - /* uframe 7 can't have bw so this will indicate failure */ |
|---|
| 325 | | - return 7; |
|---|
| 326 | | - } |
|---|
| 327 | | - return ffs(smask) - 1; |
|---|
| 328 | | -} |
|---|
| 329 | | - |
|---|
| 330 | 310 | static const unsigned char |
|---|
| 331 | 311 | max_tt_usecs[] = { 125, 125, 125, 125, 125, 125, 30, 0 }; |
|---|
| 332 | 312 | |
|---|
| .. | .. |
|---|
| 2475 | 2455 | ehci_dbg(ehci, "corrupt type %d frame %d shadow %p\n", |
|---|
| 2476 | 2456 | type, frame, q.ptr); |
|---|
| 2477 | 2457 | /* BUG(); */ |
|---|
| 2478 | | - /* FALL THROUGH */ |
|---|
| 2458 | + fallthrough; |
|---|
| 2479 | 2459 | case Q_TYPE_QH: |
|---|
| 2480 | 2460 | case Q_TYPE_FSTN: |
|---|
| 2481 | 2461 | /* End of the iTDs and siTDs */ |
|---|