lkml.org 
[lkml]   [1999]   [Jan]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patches in this message
/
Date
From
SubjectRe: More ATAPI/IDE fun. (zip drive this time)

"ide-probe.c.diff" is an UGLY-NASTY work-around due the changes in
./include/asm-i386/strings.h

I don't like it but it works for now.

This is not the right way to do this since it has a character dependent
position test. If the id->model == `IOMEGA ZIP 100 ATAPI' changes due the
the vender, instant break.................

As for your multi-mode errors, the original changes that I made around
2.1.122 were stubbed out, but you can enable them easily.

Apply this, "ide-2.2.0.8.pat1", to give you the option of multi-mode config.

The other option is to edit ./drivers/block/ide.h at line #34

#define INITIAL_MULT_COUNT 0 /* off=0; on=2,4,8,16,32, etc.. */
#define INITIAL_MULT_COUNT 1 /* off=0; on=2,4,8,16,32, etc.. */

This has not been tested, but since many drives complain about multi-mode
being set to zero, why not give a value of one a whirl. It is in effect
the same transfer style/method in principle. A value of zero means
multi-mode is diabled (ie one block at a time) and a value of one
would have the same effect..........

Please let me know if it goes away with either or both of these options.

On Wed, 20 Jan 1999, CaT wrote:

>
> Just booted into pre8 (from the v2.1 dir) and found new errors regarding
> my IDE stuff.
>
> The related boot messages are:
>
> Jan 20 11:12:38 kinder kernel: PIIX4: IDE controller on PCI bus 00 dev 39
> Jan 20 11:12:38 kinder kernel: PIIX4: not 100ative mode: will probe irqs later
> Jan 20 11:12:38 kinder kernel: ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:pio, hdb:pio
> Jan 20 11:12:38 kinder kernel: ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:pio, hdd:pio
> Jan 20 11:12:38 kinder kernel: hda: ST36531A, ATA DISK drive
> Jan 20 11:12:38 kinder kernel: hdb: CREATIVEDVD-ROM DVD2240E 09/27/97, ATAPI CDROM drive
> Jan 20 11:12:38 kinder kernel: hdc: IOMEGA ZIP 100 ATAPI, ATAPI CDROM drive
> Jan 20 11:12:38 kinder kernel: hdd: CD-ROM 32X/AKU, ATAPI CDROM drive
> Jan 20 11:12:38 kinder kernel: ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
> Jan 20 11:12:38 kinder kernel: ide1 at 0x170-0x177,0x376 on irq 15
> Jan 20 11:12:38 kinder kernel: hda: ST36531A, 6204MB w/128kB Cache, CHS=790/255/63, UDMA
> Jan 20 11:12:38 kinder kernel: hdb: ATAPI 24X CDROM drive, 256kB Cache
> Jan 20 11:12:38 kinder kernel: Uniform CDROM driver Revision: 2.52
> Jan 20 11:12:38 kinder kernel: hdc: packet command error: status=0x51 { DriveReady SeekComplete
> Error }
> Jan 20 11:12:38 kinder kernel: hdc: packet command error: error=0x50
> Jan 20 11:12:38 kinder kernel: ATAPI device hdc:
> Jan 20 11:12:38 kinder kernel: Error: Illegal request -- (Sense key=0x05)
> Jan 20 11:12:38 kinder kernel: Invalid field in command packet -- (asc=0x24, ascq=0x00)
> Jan 20 11:12:38 kinder kernel: The failed "Mode Sense" packet command was:
> Jan 20 11:12:38 kinder kernel: "5a 00 2a 00 00 00 00 00 18 00 00 00 "
> Jan 20 11:12:38 kinder kernel: hdd: ATAPI 32X CDROM drive, 128kB Cache
> Jan 20 11:12:38 kinder kernel: Floppy drive(s): fd0 is 1.44M
> Jan 20 11:12:38 kinder kernel: FDC 0 is a post-1991 82077
> Jan 20 11:12:38 kinder kernel: PPP: version 2.3.3 (demand dialling)
> Jan 20 11:12:38 kinder kernel: TCP compression code copyright 1989 Regents of the University of
> California
> Jan 20 11:12:38 kinder kernel: PPP line discipline registered.
> Jan 20 11:12:38 kinder kernel: Partition check:
> Jan 20 11:12:38 kinder kernel: hda:hda: set_multmode: status=0x51 { DriveReady SeekComplete Error }
> Jan 20 11:12:38 kinder kernel: hda: set_multmode: error=0x04 { DriveStatusError }
> Jan 20 11:12:38 kinder kernel: hda1 hda2 < hda5 > hda3 hda4
>
> Now.... hdc is my zip drive. I never got the above error with any kernel.
> The mysterious hda errors are still there. They only came in when I
> started using 2.2.0pre4 and up. never used 2.2.0pre1-3 or 132. 131ac13
> didn't have em.
>
> On the up side I've not been able to reproduce the previously mentioned
> problem with my DVD drive. :)

Cheers,
Andre Hedrick
The (NEW) Linux IDE guy
The APC UPS Specialist for Linux

http://www.dyer.vanderbilt.edu/server/udma/
http://www.dyer.vanderbilt.edu/server/apcupsd/apcupsd-3.5.2.bin.tar.gz

You just need a bigger hammer, or learn how to swing the one you have better.
(C) me.....
--- linux-2.2.0-pre4-pristine/drivers/block/ide-probe.c.orig Mon Jan 4 13:18:17 1999
+++ linux/drivers/block/ide-probe.c Mon Jan 4 13:19:33 1999
@@ -587,7 +587,16 @@
drive->next = hwgroup->drive->next;
hwgroup->drive->next = drive;
}
+#if 0
hwgroup->hwif = HWIF(hwgroup->drive);
+#else
+ if (!hwgroup->hwif) {
+ hwgroup->hwif = HWIF(hwgroup->drive);
+ printk("%s : Adding missed hwif to hwgroup!!\n", hwif->name);
+ } else {
+ printk("%s : Got all hwifs with hwgroup!!\n", hwif->name);
+ }
+#endif
restore_flags(flags); /* all CPUs; safe now that hwif->hwgroup is set up */

#if !defined(__mc68000__) && !defined(CONFIG_APUS) && !defined(__sparc__)diff -urN linux-2.2.0-pre8-pristine/Documentation/Configure.help linux/Documentation/Configure.help
--- linux-2.2.0-pre8-pristine/Documentation/Configure.help Sat Jan 16 18:57:53 1999
+++ linux/Documentation/Configure.help Tue Jan 19 23:48:36 1999
@@ -333,6 +333,15 @@
root filesystem (the one containing the directory /) is located on
the IDE disk. If unsure, say Y.

+Use auto multi-mode by default (EXPERIMENTAL) support
+CONFIG_BLK_DEV_IDEDISK_MULTI_MODE
+ If you get this error, try to enable this option.
+
+ hda: set_multmode: status=0x51 { DriveReady SeekComplete Error }
+ hda: set_multmode: error=0x04 { DriveStatusError }
+
+ If in doubt, say N.
+
Include IDE/ATAPI CDROM support
CONFIG_BLK_DEV_IDECD
If you have a CDROM drive using the ATAPI protocol, say Y. ATAPI is
diff -urN linux-2.2.0-pre8-pristine/drivers/block/Config.in linux/drivers/block/Config.in
--- linux-2.2.0-pre8-pristine/drivers/block/Config.in Tue Dec 29 13:21:49 1998
+++ linux/drivers/block/Config.in Tue Jan 19 23:41:54 1999
@@ -19,6 +19,9 @@
else
bool ' Use old disk-only driver on primary interface' CONFIG_BLK_DEV_HD_IDE
dep_tristate ' Include IDE/ATA-2 DISK support' CONFIG_BLK_DEV_IDEDISK $CONFIG_BLK_DEV_IDE
+ if [ "$CONFIG_BLK_DEV_IDEDISK" != "n" ]; then
+ bool ' Use auto multi-mode by default (EXPERIMENTAL) support' CONFIG_BLK_DEV_IDEDISK_MULTI_MODE
+ fi
dep_tristate ' Include IDE/ATAPI CDROM support' CONFIG_BLK_DEV_IDECD $CONFIG_BLK_DEV_IDE
dep_tristate ' Include IDE/ATAPI TAPE support' CONFIG_BLK_DEV_IDETAPE $CONFIG_BLK_DEV_IDE
dep_tristate ' Include IDE/ATAPI FLOPPY support' CONFIG_BLK_DEV_IDEFLOPPY $CONFIG_BLK_DEV_IDE
diff -urN linux-2.2.0-pre8-pristine/drivers/block/ide-disk.c linux/drivers/block/ide-disk.c
--- linux-2.2.0-pre8-pristine/drivers/block/ide-disk.c Fri Jan 15 00:58:47 1999
+++ linux/drivers/block/ide-disk.c Tue Jan 19 23:40:44 1999
@@ -795,17 +795,17 @@

drive->mult_count = 0;
if (id->max_multsect) {
-#if 1 /* original, pre IDE-NFG, per request of AC */
+#ifdef CONFIG_BLK_DEV_IDEDISK_MULTI_MODE
+ id->multsect = ((id->max_multsect/2) > 1) ? id->max_multsect : 0;
+ id->multsect_valid = id->multsect ? 1 : 0;
+ drive->mult_req = id->multsect_valid ? id->max_multsect : INITIAL_MULT_COUNT;
+ drive->special.b.set_multmode = drive->mult_req ? 1 : 0;
+#else /* original, pre IDE-NFG, per request of AC */
drive->mult_req = INITIAL_MULT_COUNT;
if (drive->mult_req > id->max_multsect)
drive->mult_req = id->max_multsect;
if (drive->mult_req || ((id->multsect_valid & 1) && id->multsect))
drive->special.b.set_multmode = 1;
-#else
- id->multsect = ((id->max_multsect/2) > 1) ? id->max_multsect : 0;
- id->multsect_valid = id->multsect ? 1 : 0;
- drive->mult_req = id->multsect_valid ? id->max_multsect : INITIAL_MULT_COUNT;
- drive->special.b.set_multmode = drive->mult_req ? 1 : 0;
#endif
}
drive->no_io_32bit = id->dword_io ? 1 : 0;
\
 
 \ /
  Last update: 2005-03-22 13:49    [W:0.454 / U:0.288 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site