patch-2.3.4 linux/drivers/block/ns87415.c
Next file: linux/drivers/block/paride/paride.c
Previous file: linux/drivers/block/loop.c
Back to the patch index
Back to the overall index
- Lines: 26
- Date:
Sat May 29 11:09:04 1999
- Orig file:
v2.3.3/linux/drivers/block/ns87415.c
- Orig date:
Fri May 14 18:55:14 1999
diff -u --recursive --new-file v2.3.3/linux/drivers/block/ns87415.c linux/drivers/block/ns87415.c
@@ -49,8 +49,25 @@
new = use_dma ? ((new & ~other) | bit) : (new & ~bit);
if (new != *old) {
+ unsigned char stat;
+
+ /*
+ * Don't change DMA engine settings while Write Buffers
+ * are busy.
+ */
+ (void) pci_read_config_byte(dev, 0x43, &stat);
+ while (stat & 0x03) {
+ udelay(1);
+ (void) pci_read_config_byte(dev, 0x43, &stat);
+ }
+
*old = new;
(void) pci_write_config_dword(dev, 0x40, new);
+
+ /*
+ * And let things settle...
+ */
+ udelay(10);
}
__restore_flags(flags); /* local CPU only */
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)