Lines Matching refs:base

66 #define swim_write(base, reg, v) 	out_8(&(base)->write_##reg, (v))  argument
67 #define swim_read(base, reg) in_8(&(base)->read_##reg) argument
90 #define iwm_write(base, reg, v) out_8(&(base)->reg, (v)) argument
91 #define iwm_read(base, reg) in_8(&(base)->reg) argument
212 struct swim __iomem *base; member
219 extern int swim_read_sector_header(struct swim __iomem *base,
221 extern int swim_read_sector_data(struct swim __iomem *base,
225 static inline void set_swim_mode(struct swim __iomem *base, int enable) in set_swim_mode() argument
231 swim_write(base, mode0, 0xf8); in set_swim_mode()
235 iwm_base = (struct iwm __iomem *)base; in set_swim_mode()
250 static inline int get_swim_mode(struct swim __iomem *base) in get_swim_mode() argument
256 swim_write(base, phase, 0xf5); in get_swim_mode()
257 if (swim_read(base, phase) != 0xf5) in get_swim_mode()
259 swim_write(base, phase, 0xf6); in get_swim_mode()
260 if (swim_read(base, phase) != 0xf6) in get_swim_mode()
262 swim_write(base, phase, 0xf7); in get_swim_mode()
263 if (swim_read(base, phase) != 0xf7) in get_swim_mode()
272 static inline void swim_select(struct swim __iomem *base, int sel) in swim_select() argument
274 swim_write(base, phase, RELAX); in swim_select()
278 swim_write(base, phase, sel & CA_MASK); in swim_select()
281 static inline void swim_action(struct swim __iomem *base, int action) in swim_action() argument
287 swim_select(base, action); in swim_action()
289 swim_write(base, phase, (LSTRB<<4) | LSTRB); in swim_action()
291 swim_write(base, phase, (LSTRB<<4) | ((~LSTRB) & 0x0F)); in swim_action()
297 static inline int swim_readbit(struct swim __iomem *base, int bit) in swim_readbit() argument
301 swim_select(base, bit); in swim_readbit()
305 stat = swim_read(base, handshake); in swim_readbit()
310 static inline void swim_drive(struct swim __iomem *base, in swim_drive() argument
314 swim_write(base, mode0, EXTERNAL_DRIVE); /* clear drive 1 bit */ in swim_drive()
315 swim_write(base, mode1, INTERNAL_DRIVE); /* set drive 0 bit */ in swim_drive()
317 swim_write(base, mode0, INTERNAL_DRIVE); /* clear drive 0 bit */ in swim_drive()
318 swim_write(base, mode1, EXTERNAL_DRIVE); /* set drive 1 bit */ in swim_drive()
322 static inline void swim_motor(struct swim __iomem *base, in swim_motor() argument
328 swim_action(base, MOTOR_ON); in swim_motor()
331 swim_select(base, RELAX); in swim_motor()
332 if (swim_readbit(base, MOTOR_ON)) in swim_motor()
338 swim_action(base, MOTOR_OFF); in swim_motor()
339 swim_select(base, RELAX); in swim_motor()
343 static inline void swim_eject(struct swim __iomem *base) in swim_eject() argument
347 swim_action(base, EJECT); in swim_eject()
350 swim_select(base, RELAX); in swim_eject()
351 if (!swim_readbit(base, DISK_IN)) in swim_eject()
356 swim_select(base, RELAX); in swim_eject()
359 static inline void swim_head(struct swim __iomem *base, enum head head) in swim_head() argument
364 swim_select(base, READ_DATA_1); in swim_head()
366 swim_select(base, READ_DATA_0); in swim_head()
369 static inline int swim_step(struct swim __iomem *base) in swim_step() argument
373 swim_action(base, STEP); in swim_step()
380 swim_select(base, RELAX); in swim_step()
381 if (!swim_readbit(base, STEP)) in swim_step()
387 static inline int swim_track00(struct swim __iomem *base) in swim_track00() argument
391 swim_action(base, SEEK_NEGATIVE); in swim_track00()
395 swim_select(base, RELAX); in swim_track00()
396 if (swim_readbit(base, TRACK_ZERO)) in swim_track00()
399 if (swim_step(base)) in swim_track00()
403 if (swim_readbit(base, TRACK_ZERO)) in swim_track00()
409 static inline int swim_seek(struct swim __iomem *base, int step) in swim_seek() argument
415 swim_action(base, SEEK_NEGATIVE); in swim_seek()
418 swim_action(base, SEEK_POSITIVE); in swim_seek()
421 if (swim_step(base)) in swim_seek()
430 struct swim __iomem *base = fs->swd->base; in swim_track() local
433 ret = swim_seek(base, track - fs->track); in swim_track()
438 swim_track00(base); in swim_track()
447 struct swim __iomem *base = fs->swd->base; in floppy_eject() local
449 swim_drive(base, fs->location); in floppy_eject()
450 swim_motor(base, OFF); in floppy_eject()
451 swim_eject(base); in floppy_eject()
463 struct swim __iomem *base = fs->swd->base; in swim_read_sector() local
471 swim_write(base, mode1, MOTON); in swim_read_sector()
472 swim_head(base, side); in swim_read_sector()
473 swim_write(base, mode0, side); in swim_read_sector()
477 ret = swim_read_sector_header(base, &header); in swim_read_sector()
481 ret = swim_read_sector_data(base, buffer); in swim_read_sector()
487 swim_write(base, mode0, MOTON); in swim_read_sector()
500 struct swim __iomem *base = fs->swd->base; in floppy_read_sectors() local
506 swim_drive(base, fs->location); in floppy_read_sectors()
593 struct swim __iomem *base = fs->swd->base; in setup_medium() local
595 if (swim_readbit(base, DISK_IN)) { in setup_medium()
598 fs->write_protected = swim_readbit(base, WRITE_PROT); in setup_medium()
599 fs->type = swim_readbit(base, ONEMEG_MEDIA); in setup_medium()
601 if (swim_track00(base)) in setup_medium()
605 swim_track00(base); in setup_medium()
620 struct swim __iomem *base = fs->swd->base; in floppy_open() local
631 swim_write(base, setup, S_IBM_DRIVE | S_FCLK_DIV2); in floppy_open()
633 swim_drive(base, INTERNAL_DRIVE); in floppy_open()
634 swim_motor(base, ON); in floppy_open()
635 swim_action(base, SETMFM); in floppy_open()
661 swim_motor(base, OFF); in floppy_open()
679 struct swim __iomem *base = fs->swd->base; in floppy_release() local
688 swim_motor(base, OFF); in floppy_release()
752 struct swim __iomem *base = fs->swd->base; in floppy_revalidate() local
754 swim_drive(base, fs->location); in floppy_revalidate()
760 swim_motor(base, OFF); in floppy_revalidate()
792 struct swim __iomem *base = swd->base; in swim_add_floppy() local
796 swim_drive(base, location); in swim_add_floppy()
798 swim_motor(base, OFF); in swim_add_floppy()
800 if (swim_readbit(base, SINGLE_SIDED)) in swim_add_floppy()
816 struct swim __iomem *base = swd->base; in swim_floppy_init() local
820 swim_drive(base, INTERNAL_DRIVE); in swim_floppy_init()
821 if (swim_readbit(base, DRIVE_PRESENT)) in swim_floppy_init()
823 swim_drive(base, EXTERNAL_DRIVE); in swim_floppy_init()
824 if (swim_readbit(base, DRIVE_PRESENT)) in swim_floppy_init()
918 swd->base = swim_base; in swim_probe()
958 iounmap(swd->base); in swim_remove()