## Automatically generated incremental diff
## From:   linux-2.4.23-bk17
## To:     linux-2.4.23-bk18
## Robot:  $Id: make-incremental-diff,v 1.11 2002/02/20 02:59:33 hpa Exp $

diff -urN linux-2.4.23-bk17/Documentation/SubmittingDrivers linux-2.4.23-bk18/Documentation/SubmittingDrivers
--- linux-2.4.23-bk17/Documentation/SubmittingDrivers	2003-11-28 10:26:19.000000000 -0800
+++ linux-2.4.23-bk18/Documentation/SubmittingDrivers	2003-12-29 02:49:27.000000000 -0800
@@ -35,7 +35,7 @@
 
 Linux 2.4:
 	The same rules apply as 2.2. The final contact point for Linux 2.4 
-	submissions is Marcelo Tosatti <marcelo@cyclades.com>.
+	submissions is Marcelo Tosatti <marcelo.tosatti@cyclades.com>.
 
 Linux 2.5:
 	The same rules apply as 2.4 except that you should follow linux-kernel
diff -urN linux-2.4.23-bk17/Makefile linux-2.4.23-bk18/Makefile
--- linux-2.4.23-bk17/Makefile	2003-12-29 02:49:23.000000000 -0800
+++ linux-2.4.23-bk18/Makefile	2003-12-29 02:49:27.000000000 -0800
@@ -1,7 +1,7 @@
 VERSION = 2
 PATCHLEVEL = 4
 SUBLEVEL = 23
-EXTRAVERSION = -bk17
+EXTRAVERSION = -bk18
 
 KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
 
diff -urN linux-2.4.23-bk17/drivers/ide/ide-iops.c linux-2.4.23-bk18/drivers/ide/ide-iops.c
--- linux-2.4.23-bk17/drivers/ide/ide-iops.c	2003-11-28 10:26:20.000000000 -0800
+++ linux-2.4.23-bk18/drivers/ide/ide-iops.c	2003-12-29 02:49:27.000000000 -0800
@@ -664,12 +664,22 @@
 	if ((stat = hwif->INB(IDE_STATUS_REG)) & BUSY_STAT) {
 		local_irq_set(flags);
 		timeout += jiffies;
-		while ((stat = hwif->INB(IDE_STATUS_REG)) & BUSY_STAT) {
+		stat = hwif->INB(IDE_STATUS_REG);
+		while (stat & BUSY_STAT) {
 			if (time_after(jiffies, timeout)) {
-				local_irq_restore(flags);
-				*startstop = DRIVER(drive)->error(drive, "status timeout", stat);
-				return 1;
+				/*
+			       	 * do one more status read in case we were interrupted between last
+				 * stat = hwif->INB(IDE_STATUS_REG) and time_after(jiffies, timeout)
+				 * in wich case the timeout might have been shorter than specified.
+				 */
+				if ((stat = hwif->INB(IDE_STATUS_REG)) & BUSY_STAT) {
+					local_irq_restore(flags);
+					*startstop = DRIVER(drive)->error(drive, "status timeout", stat);
+					return 1;
+				}
 			}
+			else
+				stat = hwif->INB(IDE_STATUS_REG);
 		}
 		local_irq_restore(flags);
 	}
diff -urN linux-2.4.23-bk17/drivers/ide/raid/pdcraid.c linux-2.4.23-bk18/drivers/ide/raid/pdcraid.c
--- linux-2.4.23-bk17/drivers/ide/raid/pdcraid.c	2003-11-28 10:26:20.000000000 -0800
+++ linux-2.4.23-bk18/drivers/ide/raid/pdcraid.c	2003-12-29 02:49:27.000000000 -0800
@@ -360,9 +360,13 @@
 		return 0;
 	if (ideinfo->sect==0)
 		return 0;
-	lba = (ideinfo->capacity / (ideinfo->head*ideinfo->sect));
-	lba = lba * (ideinfo->head*ideinfo->sect);
-	lba = lba - ideinfo->sect;
+	if (ideinfo->head!=255) {
+		lba = (ideinfo->capacity / (ideinfo->head*ideinfo->sect));
+		lba = lba * (ideinfo->head*ideinfo->sect);
+		lba = lba - ideinfo->sect; }
+	else {
+		lba = ideinfo->capacity - ideinfo->sect;
+	}
 
 	return lba;
 }
diff -urN linux-2.4.23-bk17/drivers/media/video/Makefile linux-2.4.23-bk18/drivers/media/video/Makefile
--- linux-2.4.23-bk17/drivers/media/video/Makefile	2003-12-29 02:49:24.000000000 -0800
+++ linux-2.4.23-bk18/drivers/media/video/Makefile	2003-12-29 02:49:27.000000000 -0800
@@ -38,7 +38,7 @@
 	tda7432.o tda9875.o tda9887.o tuner.o
 obj-$(CONFIG_SOUND_TVMIXER) += tvmixer.o
 
-obj-$(CONFIG_VIDEO_ZR36120) += zoran.o
+obj-$(CONFIG_VIDEO_ZR36120) += zoran.o i2c-old.o
 obj-$(CONFIG_I2C_PARPORT) += i2c-parport.o i2c-old.o
 obj-$(CONFIG_VIDEO_SAA5249) += saa5249.o i2c-old.o
 obj-$(CONFIG_VIDEO_CQCAM) += c-qcam.o
