Re: Linux 2.4.21-pre7

Benjamin Herrenschmidt
2003-04-09T10:50:26Z

On Wed, 2003-04-09 at 12:20, mikpe@csd.uu.se wrote:

> Ok, I can understand what happened, but shouldn't these fixes be
> cc:d to or at last announced on LKML as well? It could be a month
> before Marcelo does a -pre8 or -rc1.

Well.. Most PPC users use the PPC trees and most pmac users use
mine, so I didn't bother, but here it is:

diff -urN linux-2.4/drivers/ide/ppc/pmac.c linuxppc_benh_devel/drivers/ide/ppc/pmac.c
--- linux-2.4/drivers/ide/ppc/pmac.c 2003-04-05 21:45:19.000000000 +0200
+++ linuxppc_benh_devel/drivers/ide/ppc/pmac.c 2003-04-05 16:56:00.000000000 +0200
@@ -1,5 +1,5 @@
/*
- * linux/drivers/ide/ppc/ide-pmac.c
+ * linux/drivers/ide/ppc/pmac.c
*
* Support for IDE interfaces on PowerMacs.
* These IDE interfaces are memory-mapped and have a DBDMA channel
@@ -408,7 +408,7 @@
else
writel(pmif->timings[0],
(unsigned *)(IDE_DATA_REG+IDE_TIMING_CONFIG));
- io_flush(readl((unsigned *)(IDE_DATA_REG+IDE_TIMING_CONFIG)));
+ (void)readl((unsigned *)(IDE_DATA_REG+IDE_TIMING_CONFIG));
}

static void __pmac
@@ -430,7 +430,7 @@
writel(pmif->timings[2],
(unsigned *)(IDE_DATA_REG + IDE_KAUAI_ULTRA_CONFIG));
}
- io_flush(readl((unsigned *)(IDE_DATA_REG + IDE_KAUAI_PIO_CONFIG)));
+ (void)readl((unsigned *)(IDE_DATA_REG + IDE_KAUAI_PIO_CONFIG));
}

static void __pmac
@@ -454,7 +454,6 @@

writeb(value, port);
tmp = readl((unsigned *)(IDE_DATA_REG + IDE_TIMING_CONFIG));
- io_flush(value);
}

static int __pmac
@@ -469,7 +468,7 @@
SELECT_MASK(drive, 0);
udelay(1);
/* Get rid of pending error state */
- io_flush(hwif->INB(IDE_STATUS_REG));
+ (void)hwif->INB(IDE_STATUS_REG);
/* Timeout bumped for some powerbooks */
if (wait_for_ready(drive, 2000)) {
/* Timeout bumped for some powerbooks */
@@ -1139,7 +1138,7 @@
/* Tell common code _not_ to mess with resources */
hwif->mmio = 2;
hwif->hwif_data = pmif;
- pmac_ide_init_hwif_ports(&hwif->hw, base, 0, &hwif->irq);
+ pmac_ide_init_hwif_ports(&hwif->hw, regbase, 0, &hwif->irq);
memcpy(hwif->io_ports, hwif->hw.io_ports, sizeof(hwif->io_ports));
hwif->chipset = ide_pmac;
hwif->noprobe = !hwif->io_ports[IDE_DATA_OFFSET] || in_bay;
@@ -1568,7 +1567,7 @@
if (ata4 && (pmif->timings[unit] & TR_66_UDMA_EN)) {
writel(pmif->timings[unit]+0x00800000UL,
(unsigned *)(IDE_DATA_REG+IDE_TIMING_CONFIG));
- io_flush(readl((unsigned *)(IDE_DATA_REG + IDE_TIMING_CONFIG)));
+ (void)readl((unsigned *)(IDE_DATA_REG + IDE_TIMING_CONFIG));
}

drive->waiting_for_dma = 1;
@@ -1624,7 +1623,7 @@
if (ata4 && (pmif->timings[unit] & TR_66_UDMA_EN)) {
writel(pmif->timings[unit],
(unsigned *)(IDE_DATA_REG+IDE_TIMING_CONFIG));
- io_flush(readl((unsigned *)(IDE_DATA_REG + IDE_TIMING_CONFIG)));
+ (void)readl((unsigned *)(IDE_DATA_REG + IDE_TIMING_CONFIG));
}

drive->waiting_for_dma = 1;
@@ -1674,7 +1673,7 @@

writel((RUN << 16) | RUN, &dma->control);
/* Make sure it gets to the controller right now */
- io_flush(readl(&dma->control));
+ (void)readl(&dma->control);
return 0;
}

@@ -1791,11 +1790,10 @@
printk(KERN_ERR "ide-pmac(%s): can't request DMA resource !\n", np->name);
return;
}
+ pmif->dma_regs =
+ (volatile struct dbdma_regs*)ioremap(np->addrs[1].address, 0x200);
}

- pmif->dma_regs =
- (volatile struct dbdma_regs*)ioremap(np->addrs[1].address, 0x200);
-
/*
* Allocate space for the DBDMA commands.
* The +2 is +1 for the stop command and +1 to allow for
@@ -1863,7 +1861,7 @@
SELECT_DRIVE(drive);
SELECT_MASK(drive, 0);
hwif->OUTB(drive->select.all, IDE_SELECT_REG);
- io_flush(hwif->INB(IDE_SELECT_REG));
+ (void) hwif->INB(IDE_SELECT_REG);
udelay(100);
hwif->OUTB(0x00, IDE_SECTOR_REG);
hwif->OUTB(0x00, IDE_NSECTOR_REG);