Hello. Bartlomiej Zolnierkiewicz wrote:
Using default methods caused the chip's DMA PRD count registers, inadvertently starting DMA! While fixing it, also do:
nasty, this could possibly explain the following trm290.c hack:
Frankly speaking, I'm not sure it's that destructive: the register in question is accessed by inw()/outw() while the genric code would only "spoil" it by inb(). So, I don't know if this would be access to the same register as outw() does (that write starts DMA, and it is a number of 32-bit words in PRD table - 1). Actually, the PRD address is loaded by 32-bit write at address 2 bytes below the one in question, and so overlaps our register -- the chip must be looking at byte enables when deciding what register is addressed).
... #if 0 /* play it safe for now */
IDE_HFLAG_TRUST_BIOS_FOR_DMA |
#endif ...
- get rid of the 'ide_' prefixes in several functions for which the prefix in the method's name has been 'ide_' ectomized already;
- align the code hooking the IDE DMA methods in init_hwif_trm290()...
--- Fixed the header, added 'static' to the new method definitions. The patch is against Linus' kernel tree...
Signed-off-by: Sergei Shtylyov <sshtylyov@xxxxxxxxxxxxx>
applied
The next patch is cooking... :-) WBR, Sergei - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html