Hi!
I have found a couple bugs in the VIA IDE kernel I'm now maintaining
that manifest themselves on hardware I don't have:
1) On old SWDMA devices the timing is programmed incorrectly. This will
result in DMA timeouts or data corruption.
2) On UDMA devices used with vt82c596a (old buggy VIA MobileSouth), the
chip will get confused, which will result in DMA timeouts and UDMA
being disabled. No data corruption here, just very poor performance.
3) One extra sprintf was forgotten in the via_display_info function.
This is harmless, but a bug nevertheless.
Here goes a detailed description of the patch that fixes the above three
bugs:
Chunk1:
Changes version number
Chunk2:
Removes UDMA66 unknown southbridge entry. We can't try to program
unknown southbridges to UDMA66, because that can result in crashes
(as shown by vt82c596a). UDMA33 should be safe, because the only
southbridge that doesn't support it is vt82c586.
Chunk3:
Fix SWDMA modes. By a typo there were 0's everywhere. This is
important, without this fix SWDMA devices will be programmed
incorrectly.
Chunk4:
Change version number in /proc
Chunk5:
Remove the sprintf().
Chunk6:
Don't program UDMA66 enable bit on UDMA33 controllers. They *should*
ignore it, but 596a doesn't, resulting in timeouts on boot. This is
critical. Also don't program UDMA at all on the old vt82c586.
Chunk7:
The correct way to check for 596a.
Chunk8:
Remove the old check for 596a. It doesn't work, because the 596a doesn't
ignore the UDMA66 bits as it should. Don't set UDMA66 on 596a at
all, it causes crashes. Critical.
I hope this will get into test9-pre6, because otherwise it's quite
unusable for vt82c596a users.
TIA.
-- Vojtech Pavlik SuSE Labs
This archive was generated by hypermail 2b29 : Sat Sep 23 2000 - 21:00:24 EST