Commit 832e9ac6 authored by Ondrej Zary's avatar Ondrej Zary Committed by Martin K. Petersen

atp870u: Remove ugly gotos #3

Signed-off-by: default avatarOndrej Zary <linux@rainbow-software.org>
Reviewed-by: default avatarHannes Reinicke <hare@suse.de>
Acked-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 468b8968
...@@ -880,34 +880,28 @@ static unsigned char fun_scam(struct atp_unit *dev, unsigned short int *val) ...@@ -880,34 +880,28 @@ static unsigned char fun_scam(struct atp_unit *dev, unsigned short int *val)
unsigned char j; unsigned char j;
outw(*val, dev->ioport[0] + 0x1c); outw(*val, dev->ioport[0] + 0x1c);
FUN_D7:
for (i = 0; i < 10; i++) { /* stable >= bus settle delay(400 ns) */ for (i = 0; i < 10; i++) { /* stable >= bus settle delay(400 ns) */
k = inw(dev->ioport[0] + 0x1c); k = inw(dev->ioport[0] + 0x1c);
j = (unsigned char) (k >> 8); j = (unsigned char) (k >> 8);
if ((k & 0x8000) != 0) { /* DB7 all release? */ if ((k & 0x8000) != 0) /* DB7 all release? */
goto FUN_D7; i = 0;
}
} }
*val |= 0x4000; /* assert DB6 */ *val |= 0x4000; /* assert DB6 */
outw(*val, dev->ioport[0] + 0x1c); outw(*val, dev->ioport[0] + 0x1c);
*val &= 0xdfff; /* assert DB5 */ *val &= 0xdfff; /* assert DB5 */
outw(*val, dev->ioport[0] + 0x1c); outw(*val, dev->ioport[0] + 0x1c);
FUN_D5:
for (i = 0; i < 10; i++) { /* stable >= bus settle delay(400 ns) */ for (i = 0; i < 10; i++) { /* stable >= bus settle delay(400 ns) */
if ((inw(dev->ioport[0] + 0x1c) & 0x2000) != 0) { /* DB5 all release? */ if ((inw(dev->ioport[0] + 0x1c) & 0x2000) != 0) /* DB5 all release? */
goto FUN_D5; i = 0;
}
} }
*val |= 0x8000; /* no DB4-0, assert DB7 */ *val |= 0x8000; /* no DB4-0, assert DB7 */
*val &= 0xe0ff; *val &= 0xe0ff;
outw(*val, dev->ioport[0] + 0x1c); outw(*val, dev->ioport[0] + 0x1c);
*val &= 0xbfff; /* release DB6 */ *val &= 0xbfff; /* release DB6 */
outw(*val, dev->ioport[0] + 0x1c); outw(*val, dev->ioport[0] + 0x1c);
FUN_D6:
for (i = 0; i < 10; i++) { /* stable >= bus settle delay(400 ns) */ for (i = 0; i < 10; i++) { /* stable >= bus settle delay(400 ns) */
if ((inw(dev->ioport[0] + 0x1c) & 0x4000) != 0) { /* DB6 all release? */ if ((inw(dev->ioport[0] + 0x1c) & 0x4000) != 0) /* DB6 all release? */
goto FUN_D6; i = 0;
}
} }
return j; return j;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment