Commit 5ec52d5
committed
net: macb: restart tx after tx used bit read
On some platforms (currently detected only on sama5d4) TX might stuck
even the pachets are still present in DMA memories and TX start was
issued for them. This happens due to race condition between MACB driver
updating next TX buffer descriptor to be used and IP reading the same
descriptor. In such a case, the "TX USED BIT READ" interrupt is asserted.
GEM GXL/MACB user guide specifies that if a "TX USED BIT READ" interrupt
is asserted TX must be restarted. Restart TX if used bit is read and
packets are present in software TX queue. Packets are removed from software
TX queue if TX was successful for them (see macb_tx_interrupt()).
Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>1 parent 986475a commit 5ec52d5
1 file changed
Lines changed: 20 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
65 | | - | |
| 65 | + | |
| 66 | + | |
66 | 67 | | |
67 | 68 | | |
68 | 69 | | |
| |||
1307 | 1308 | | |
1308 | 1309 | | |
1309 | 1310 | | |
| 1311 | + | |
| 1312 | + | |
| 1313 | + | |
| 1314 | + | |
| 1315 | + | |
| 1316 | + | |
| 1317 | + | |
| 1318 | + | |
| 1319 | + | |
| 1320 | + | |
| 1321 | + | |
| 1322 | + | |
| 1323 | + | |
| 1324 | + | |
| 1325 | + | |
1310 | 1326 | | |
1311 | 1327 | | |
1312 | 1328 | | |
| |||
1364 | 1380 | | |
1365 | 1381 | | |
1366 | 1382 | | |
| 1383 | + | |
| 1384 | + | |
| 1385 | + | |
1367 | 1386 | | |
1368 | 1387 | | |
1369 | 1388 | | |
| |||
0 commit comments