aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/include/asm/floppy.h
diff options
context:
space:
mode:
authorWilly Tarreau <w@1wt.eu>2020-03-01 20:55:54 +0100
committerJens Axboe <axboe@kernel.dk>2020-03-16 08:26:58 -0600
commite2032464fe189c33005a6296fa67c47d2fea4d05 (patch)
tree680f1d6330335d05a7cda5489476e42342d2c01e /arch/arm/include/asm/floppy.h
parentfloppy: introduce new functions fdc_inb() and fdc_outb() (diff)
downloadlinux-dev-e2032464fe189c33005a6296fa67c47d2fea4d05.tar.xz
linux-dev-e2032464fe189c33005a6296fa67c47d2fea4d05.zip
floppy: separate the FDC's base address from its registers
FDC registers FD_STATUS, FD_DATA, FD_DOR, FD_DIR and FD_DCR used to be defined relative to FD_IOPORT, which is the FDC's base address, itself a macro depending on the "fdc" local or global variable. This patch changes this so that the register macros above now only reference the address offset, and that the FDC's address is explicitly passed in each call to fd_inb() and fd_outb(), thus removing the macro. With this change there is no more implicit usage of the local/global "fdc" variable. One place in the ARM code used to check if the port was equal to FD_DOR, this was changed to testing the register by applying a mask to the port, as was already done in the sparc code. There are still occurrences of fd_inb() and fd_outb() in the PARISC code and these ones remain unaffected since they already used to work with a base address and a register offset. The sparc, m68k and parisc code could now be slightly cleaned up to benefit from the macro definitions above instead of the equivalent hard-coded values. Link: https://lore.kernel.org/r/20200301195555.11154-6-w@1wt.eu Cc: Ian Molton <spyro@f2s.com> Cc: Russell King <linux@armlinux.org.uk> Cc: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Denis Efremov <efremov@linux.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'arch/arm/include/asm/floppy.h')
-rw-r--r--arch/arm/include/asm/floppy.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm/include/asm/floppy.h b/arch/arm/include/asm/floppy.h
index 34ebd86bf58b..79fa327238e8 100644
--- a/arch/arm/include/asm/floppy.h
+++ b/arch/arm/include/asm/floppy.h
@@ -12,7 +12,7 @@
#define fd_outb(val,port) \
do { \
int new_val = (val); \
- if ((port) == (u32)FD_DOR) { \
+ if (((port) & 7) == FD_DOR) { \
if (new_val & 0xf0) \
new_val = (new_val & 0x0c) | \
floppy_selects[new_val & 3]; \