make drivers/scsi/seagate.c use ioremap instead of isa_{read,write} (241p11)
PATCH 1/1 make drivers/scsi/seagate.c use ioremap instead of isa_{read,write} (241p11)
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.
drivers/scsi/seagate.c +25 -4
@@ -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) {
Signature · 9 lines
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/Quoted 6 lines · Rasmus Andersen
Hi.
(I have not been able to find a probable current maintainer for this code.)
Quoted 6 lines
The following patch makes
drivers/scsi/seagate.cuse ioremap instead of isa_{read, write}.It applies against ac12 and 241p11.
Please comment, esp. on the size of the remappings.
This isn't the proper way to use ioremap. You should only ioremap once when the driver is loaded and save the mapped address. Since ioremap special cases ISA addresses, it doesn't add much overhead the way you are doing it, but it is still not consistent with normal non-ISA usage of ioremap.
--
Brian Gerst
-
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/