> >> + if (t.active > 16) > >> + t.active = 16; > > Erm, clamping active time is not a right thing to do. Right thing to do > was to bail out. I didn't do it in the legacy driver rewrite though... As far as I can work out its a "can't happen" > >> + pci_read_config_byte(pdev, ARTIM23, ®); > > It's not even expensive, it may be just unsafe. You have to serialize the channels and idle both so its very expensive - or is that what you meant by unsafe. > >> + /* CMD640 detected, commiserations */ > >> + pci_write_config_byte(pdev, 0x5C, 0x00); > > > magic number > > Indeed, completely undocumented. And I don't even see it in the legacy > driver... Should be 0x5B which is still undocumented. Will fix that. > It's used to be a well known fact (soon after Intel put that chip on their > motherboards :-) that PCI0640 may return bad data on command block reads if > another channel has data port I/O going on. That's why the interrupts needed > to be disabled during PIO in the legacy driver (and the channels serialized). I was under the impression this was only the situation with the FIFO/readahead logic enabled, as with the RZ1000 ? Can you clarify that at all ? Alan - 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