This message is from the T13 list server.
WARNING, if your company will not allow you to view open source code Please filter. On Wed, 30 Jan 2002, Pat LaVarre wrote: > This message is from the T13 list server. > Take evidence like: > > > http://www.torque.net/scsi/SCSI-2.4-HOWTO.html > > > In the linux 2.4 kernel series there has been an increase in problems when the >ide-scsi driver is used so that cdrecord can control ATAPI (IDE) cd writers. > > > ... users have reported success with one of these two ... turns off DMA completely >... "multiword DMA mode 2". > > How much of this is due to disagreements over byte count? NONE, but who knows because the fail for one reason or another and it RATHOLES as system. It is because there are so many pieces of CRAP called ATAPI devices who apply a WAG (Wild ARSE Guess) to how things should work. Much if this is because UltraDMA in ATAPI CDRW is a design equal to hollering FIRE in a crowded room with only one door. Emperical testing shows that ATAPI folks make up the rules as they please. struct drive_list_entry { char * id_model; char * id_firmware; }; struct drive_list_entry drive_blacklist [] = { <snip old ata-2 wdc drives from list> { "Compaq CRD-8241B" , "ALL" }, { "CRD-8400B" , "ALL" }, { "CRD-8480B", "ALL" }, { "CRD-8480C", "ALL" }, { "CRD-8482B", "ALL" }, { "CRD-84" , "ALL" }, { "SanDisk SDP3B" , "ALL" }, { "SanDisk SDP3B-64" , "ALL" }, { "SANYO CD-ROM CRD" , "ALL" }, { "HITACHI CDR-8" , "ALL" }, { "HITACHI CDR-8335" , "ALL" }, { "HITACHI CDR-8435" , "ALL" }, { "Toshiba CD-ROM XM-6202B" , "ALL" }, { "CD-532E-A" , "ALL" }, { "E-IDE CD-ROM CR-840", "ALL" }, { "CD-ROM Drive/F5A", "ALL" }, { "RICOH CD-R/RW MP7083A", "ALL" }, { "WPI CDD-820", "ALL" }, { "SAMSUNG CD-ROM SC-148C", "ALL" }, { "SAMSUNG CD-ROM SC-148F", "ALL" }, { "SAMSUNG CD-ROM SC", "ALL" }, { "SanDisk SDP3B-64" , "ALL" }, { "SAMSUNG CD-ROM SN-124", "ALL" }, { "PLEXTOR CD-R PX-W8432T", "ALL" }, { "ATAPI CD-ROM DRIVE 40X MAXIMUM", "ALL" }, { "_NEC DV5800A", "ALL" }, { 0 , 0 } }; int in_drive_list(struct hd_driveid *id, struct drive_list_entry * drive_table) { for ( ; drive_table->id_model ; drive_table++) if ((!strcmp(drive_table->id_model, id->model)) && ((!strstr(drive_table->id_firmware, id->fw_rev)) || (!strcmp(drive_table->id_firmware, "ALL")))) return 1; return 0; } int ide_dmaproc (ide_dma_action_t func, ide_drive_t *drive) { switch (func) { <snip> case ide_dma_bad_drive: case ide_dma_good_drive: return check_drive_lists(drive, (func == ide_dma_good_drive)); <snip> } Oh and I just love keeping a running table of JUNK to avoid! Regard, Andre Hedrick CEO/President, LAD Storage Consulting Group Linux ATA Development Linux Disk Certification Project Subscribe/Unsubscribe instructions can be found at www.t13.org.
