mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-05-24 10:39:52 +00:00
atp870u: Remove ugly gotos #3
Signed-off-by: Ondrej Zary <linux@rainbow-software.org> Reviewed-by: Hannes Reinicke <hare@suse.de> Acked-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
468b896815
commit
832e9ac6de
1 changed files with 6 additions and 12 deletions
|
@ -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;
|
||||||
|
|
Loading…
Add table
Reference in a new issue