Hi. (I have not been able to find a probable current maintainer for this code.) The following patch makes drivers/scsi/seagate.c use ioremap instead of isa_{read, write}. It applies against ac12 and 241p11. Please comment, esp. on the size of the remappings. --- linux-ac12-clean/drivers/scsi/seagate.c Sun Nov 12 04:01:11 2000 +++ linux-ac12/drivers/scsi/seagate.c Sun Jan 28 21:52:39 2001 @@ -256,10 +256,31 @@ MODULE_PARM(irq, "i"); #define retcode(result) (((result) << 16) | (message << 8) | status) -#define STATUS ((u8) isa_readb(st0x_cr_sr)) -#define DATA ((u8) isa_readb(st0x_dr)) -#define WRITE_CONTROL(d) { isa_writeb((d), st0x_cr_sr); } -#define WRITE_DATA(d) { isa_writeb((d), st0x_dr); } +#define STATUS ((u8) read_data(st0x_cr_sr)) +#define DATA ((u8) read_data(st0x_dr)) +#define WRITE_CONTROL(d) write_data(d, st0x_cr_sr) +#define WRITE_DATA(d) write_data(d, st0x_dr) + +static inline u8 read_data(unsigned long offset) { + void *ptr = ioremap(offset, sizeof(u8)); + u8 ret; + + if (!ptr) + return 1; + ret = readb(ptr); + iounmap(ptr); + return ret; +} + +static inline int write_data(int data, unsigned long offset) { + void *ptr = ioremap(offset, sizeof(u8)); + + if (!ptr) + return 1; + writeb(data, ptr); + iounmap(ptr); + return 0; +} void st0x_setup (char *str, int *ints) { -- Regards, Rasmus([EMAIL PROTECTED]) I've never had major knee surgery on any other part of my body. -Winston Bennett, University of Kentucky basketball forward - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] Please read the FAQ at http://www.tux.org/lkml/