serverworks: remove crappy code
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Fri, 8 Jun 2007 13:14:27 +0000 (15:14 +0200)
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Fri, 8 Jun 2007 13:14:27 +0000 (15:14 +0200)
Remove crappy code noticed by Linus, see

http://lkml.org/lkml/2007/5/23/476

for details.

While at it simplify logic a bit.

There should be no functionality changes caused by this patch.

Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
drivers/ide/pci/serverworks.c

index 47bcd91c9b5f50e5434667ee32db50afaddd76e5..b04c99059c05bdb16b66f35cac7298bbfe51c187 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * linux/drivers/ide/pci/serverworks.c         Version 0.9     Mar 4 2007
+ * linux/drivers/ide/pci/serverworks.c         Version 0.10    Jun 2 2007
  *
  * Copyright (C) 1998-2000 Michel Aubry
  * Copyright (C) 1998-2000 Andrzej Krzysztofowicz
@@ -170,7 +170,6 @@ static int svwks_tune_chipset (ide_drive_t *drive, u8 xferspeed)
                if (!drive->init_speed) {
                        u8 dma_stat = inb(hwif->dma_status);
 
-dma_pio:
                        if (((ultra_enable << (7-drive->dn) & 0x80) == 0x80) &&
                            ((dma_stat & (1<<(5+unit))) == (1<<(5+unit)))) {
                                drive->current_speed = drive->init_speed = XFER_UDMA_0 + udma_modes[(ultra_timing >> (4*unit)) & ~(0xF0)];
@@ -179,7 +178,6 @@ dma_pio:
                                   ((dma_stat&(1<<(5+unit)))==(1<<(5+unit)))) {
                                u8 dmaspeed = dma_timing;
 
-                               dma_timing &= ~0xFFU;
                                if ((dmaspeed & 0x20) == 0x20)
                                        dmaspeed = XFER_MW_DMA_2;
                                else if ((dmaspeed & 0x21) == 0x21)
@@ -190,10 +188,11 @@ dma_pio:
                                        goto dma_pio;
                                drive->current_speed = drive->init_speed = dmaspeed;
                                return 0;
-                       } else if (pio_timing) {
+                       }
+dma_pio:
+                       if (pio_timing) {
                                u8 piospeed = pio_timing;
 
-                               pio_timing &= ~0xFFU;
                                if ((piospeed & 0x20) == 0x20)
                                        piospeed = XFER_PIO_4;
                                else if ((piospeed & 0x22) == 0x22)
@@ -214,8 +213,8 @@ dma_pio:
 
 oem_setup_failed:
 
-       pio_timing      &= ~0xFFU;
-       dma_timing      &= ~0xFFU;
+       pio_timing      = 0;
+       dma_timing      = 0;
        ultra_timing    &= ~(0x0F << (4*unit));
        ultra_enable    &= ~(0x01 << drive->dn);
        csb5_pio        &= ~(0x0F << (4*drive->dn));