X-PMC-CI-e-mail-id: 10398 

>>>>> "Dietmar" == Dietmar Stein <[EMAIL PROTECTED]> writes:

    Dietmar> Who was the one got the idea with the scsi.c-file? Did he posted his
    Dietmar> message only to Charles or also to linux-scsi? What has he done exactly?
    Dietmar> Would be very nice and may help a lot of people, if answers again.


It was me who sent a personal e-mail.

By the time I reply with this message, someone might have
explained what to do in detail, but here it goes anyway.

Some SCSI devices have firmware problems and behave erratically
when it is probed for non-existing non-zero LUN (>0).
 
If you look at drivers/scsi/scsi.c, there is a chunk of lines that
blacklists such devices so that the non-zero LUN probe is not done
against such devices. (below is from 2.1.1xx source tree. 2.0.3x
should have similar lines, but the data structure may have a different
name.)

Anyway, if you look at these entries ad the comment, you wil find that
many SCSI devices (possibly older ones) may behave erratically if it
is probed for non-zero (i.e. >0) LUN.

I added a few lines of my own (between CI addition comment lines) and
a few more.  You can produce a diff against your own copy and see what
actually have been added.

BLIST_NONLUN means that there is only one LUN at the target (LUN 0),
and no probe should be done.
BLIST_SINGLELUN is, if I understand correctly, to produce only
pending requests for against a LUN at a time or something to that
effect.
I think this is to reduce the shuffling of CDs in a changer device,
but I am not sure.
BLIST_FORCELUN is, if I recall correctly, is to force the probe
of LUN anyway.

You can read the earlier sections of the scsi.c file to 
figure out what these macros mean.

Now the entry of this device_list is the one shown at boot time when
these devices are scanned.
VendorID, Product name, Revision, and the flags.
If I recall correctly, Revision part is ignored, but
may change in the future.

========================================

/*
 * This is what was previously known as the blacklist.  The concept
 * has been expanded so that we can specify other types of things we
 * need to be aware of.
 */
static struct dev_info device_list[] =
{
{"TEAC","CD-R55S","1.0H", BLIST_NOLUN},         /* Locks up if polled for lun != 0 */
{"CHINON","CD-ROM CDS-431","H42", BLIST_NOLUN}, /* Locks up if polled for lun != 0 */
{"CHINON","CD-ROM CDS-535","Q14", BLIST_NOLUN}, /* Locks up if polled for lun != 0 */
{"DENON","DRD-25X","V", BLIST_NOLUN},           /* Locks up if probed for lun != 0 */
{"HITACHI","DK312C","CM81", BLIST_NOLUN},       /* Responds to all lun - dtg */
{"HITACHI","DK314C","CR21" , BLIST_NOLUN},      /* responds to all lun */
{"IMS", "CDD521/10","2.06", BLIST_NOLUN},       /* Locks-up when LUN>0 polled. */
{"MAXTOR","XT-3280","PR02", BLIST_NOLUN},       /* Locks-up when LUN>0 polled. */
{"MAXTOR","XT-4380S","B3C", BLIST_NOLUN},       /* Locks-up when LUN>0 polled. */
{"MAXTOR","MXT-1240S","I1.2", BLIST_NOLUN},     /* Locks up when LUN>0 polled */
{"MAXTOR","XT-4170S","B5A", BLIST_NOLUN},       /* Locks-up sometimes when LUN>0 
polled. */
{"MAXTOR","XT-8760S","B7B", BLIST_NOLUN},       /* guess what? */
{"MEDIAVIS","RENO CD-ROMX2A","2.03",BLIST_NOLUN},/*Responds to all lun */
{"MICROP", "4110", "*", BLIST_NOTQ},            /* Buggy Tagged Queuing */
{"NEC","CD-ROM DRIVE:841","1.0", BLIST_NOLUN},  /* Locks-up when LUN>0 polled. */
{"RODIME","RO3000S","2.33", BLIST_NOLUN},       /* Locks up if polled for lun != 0 */
{"SANYO", "CRD-250S", "1.20", BLIST_NOLUN},     /* causes failed REQUEST SENSE on lun 
1 
                                                 * for aha152x controller, which 
causes 
                                                 * SCSI code to reset bus.*/
{"SEAGATE", "ST157N", "\004|j", BLIST_NOLUN},   /* causes failed REQUEST SENSE on lun 
1 
                                                 * for aha152x controller, which 
causes 
                                                 * SCSI code to reset bus.*/
{"SEAGATE", "ST296","921", BLIST_NOLUN},        /* Responds to all lun */
{"SEAGATE","ST1581","6538",BLIST_NOLUN},        /* Responds to all lun */
{"SONY","CD-ROM CDU-541","4.3d", BLIST_NOLUN},
{"SONY","CD-ROM CDU-55S","1.0i", BLIST_NOLUN},
{"SONY","CD-ROM CDU-561","1.7x", BLIST_NOLUN},
{"TANDBERG","TDC 3600","U07", BLIST_NOLUN},     /* Locks up if polled for lun != 0 */
{"TEAC","CD-ROM","1.06", BLIST_NOLUN},          /* causes failed REQUEST SENSE on lun 
1 
                                                 * for seagate controller, which 
causes 
                                                 * SCSI code to reset bus.*/
{"TEXEL","CD-ROM","1.06", BLIST_NOLUN},         /* causes failed REQUEST SENSE on lun 
1 
                                                 * for seagate controller, which 
causes 
                                                 * SCSI code to reset bus.*/
{"QUANTUM","LPS525S","3110", BLIST_NOLUN},      /* Locks sometimes if polled for lun 
!= 0 */
{"QUANTUM","PD1225S","3110", BLIST_NOLUN},      /* Locks sometimes if polled for lun 
!= 0 */

/* CI addition */

{"QUANTUM", "EMPIRE_1080S",   "1100", BLIST_NOLUN},      /* Locks sometimes if polled 
for lun != 0 */
{"QUANTUM", "LIGHTNING 730S", "241E", BLIST_NOLUN},      /* Not sure. Just for safety. 
*/
{"IBM",     "DALS-3540",      "S60E", BLIST_NOLUN},      /* Not sure. Just for safety. 
*/

/* CI addition ends */

{"MEDIAVIS","CDR-H93MV","1.31", BLIST_NOLUN},   /* Locks up if polled for lun != 0 */
{"SANKYO", "CP525","6.64", BLIST_NOLUN},        /* causes failed REQ SENSE, extra 
reset */
{"HP", "C1750A", "3226", BLIST_NOLUN},          /* scanjet iic */
{"HP", "C1790A", "", BLIST_NOLUN},              /* scanjet iip */
{"HP", "C2500A", "", BLIST_NOLUN},              /* scanjet iicx */

/*
 * Other types of devices that have special flags.
 */
{"SONY","CD-ROM CDU-8001","*", BLIST_BORKEN},
{"TEXEL","CD-ROM","1.06", BLIST_BORKEN},
{"IOMEGA","Io20S         *F","*", BLIST_KEY},
{"INSITE","Floptical   F*8I","*", BLIST_KEY},
{"INSITE","I325VM","*", BLIST_KEY},
{"NRC", "MBR-7",        "*", BLIST_FORCELUN | BLIST_SINGLELUN},
{"NRC", "MBR-7.4",      "*", BLIST_FORCELUN | BLIST_SINGLELUN},

{"NRC", "MBR-7",        "110", BLIST_FORCELUN | BLIST_SINGLELUN},
{"REGAL","CDC-4X","*", BLIST_MAX5LUN | BLIST_SINGLELUN},

{"NAKAMICH","MJ-4.8S","*", BLIST_FORCELUN | BLIST_SINGLELUN},
{"NAKAMICH","MJ-5.16S","*", BLIST_FORCELUN | BLIST_SINGLELUN},
{"PIONEER","CD-ROM DRM-600","*", BLIST_FORCELUN | BLIST_SINGLELUN},
{"PIONEER","CD-ROM DRM-602X","*", BLIST_FORCELUN | BLIST_SINGLELUN},
{"PIONEER","CD-ROM DRM-604X","*", BLIST_FORCELUN | BLIST_SINGLELUN},
{"EMULEX","MD21/S2     ESDI","*", BLIST_SINGLELUN},
{"CANON","IPUBJD","*", BLIST_SPARSELUN},

{"MATSHITA","PD","*", BLIST_FORCELUN | BLIST_SINGLELUN},

/* do we need BLIS_KEY for this? */
{"MATSHITA","PD-1 LF-1000","A111", BLIST_FORCELUN | BLIST_SINGLELUN | BLIST_KEY}, /*  
added... */

{"YAMAHA","CDR100","1.00", BLIST_NOLUN},        /* Locks up if polled for lun != 0 */
{"YAMAHA","CDR102","1.00", BLIST_NOLUN},        /* Locks up if polled for lun != 0 */
{"nCipher","Fastness Crypto","*", BLIST_FORCELUN},
/*
 * Must be at end of list...
 */
{NULL, NULL, NULL}
};



-- 
     Ishikawa, Chiaki        [EMAIL PROTECTED]  or         
 (family name, given name) [EMAIL PROTECTED]
    Personal Media Corp.      ** Remove .NoSpam at the end before use **     
  Shinagawa, Tokyo, Japan 142-0051



-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]

Reply via email to