All, Here is another patch for ps2esdi. Get rid of pausing inb and outb. What documentatino I have seems to indicate it isn't necessary, and it works on my Thinkpad. The patch is also available at the following address incase my emailer mangles it. http://www.sound.net/~hald/projects/ps2esdi/ps2esdi-2.4.4-patch1 Hal Duston [EMAIL PROTECTED]
Get rid of pausing inb and outb. What documentation I have seems to indicate it isn't necessary, and it works on my Thinkpad. --- linux-2.4.5-pre4/drivers/block/ps2esdi.c Sun May 20 22:45:35 2001 +++ linux-2.4.5-pre4/drivers/block/ps2esdi.c.1 Sun May 20 23:53:53 2001 @@ -530,23 +530,23 @@ status = inb(ESDI_INTRPT); outb((status & 0xe0) | ATT_EOI, ESDI_ATTN); /* to be sure we don't have any interrupt pending... */ - outb_p(CTRL_ENABLE_INTR, ESDI_CONTROL); + outb(CTRL_ENABLE_INTR, ESDI_CONTROL); /* read the ESDI status port - if the controller is not busy, simply do a soft reset (fast) - otherwise we'll have to do a hard (slow) reset. */ - if (!(inb_p(ESDI_STATUS) & STATUS_BUSY)) { + if (!(inb(ESDI_STATUS) & STATUS_BUSY)) { /*BA */ printk("%s: soft reset...\n", DEVICE_NAME); - outb_p(CTRL_SOFT_RESET, ESDI_ATTN); + outb(CTRL_SOFT_RESET, ESDI_ATTN); } /* soft reset */ else { /*BA */ printk("%s: hard reset...\n", DEVICE_NAME); - outb_p(CTRL_HARD_RESET, ESDI_CONTROL); + outb(CTRL_HARD_RESET, ESDI_CONTROL); expire = jiffies + 2*HZ; while (time_before(jiffies, expire)); - outb_p(1, ESDI_CONTROL); + outb(1, ESDI_CONTROL); } /* hard reset */