On 2004.02.20 16:47, Bartlomiej Zolnierkiewicz wrote:
>
> [IDE] remove dead ATAPI multi-lun support (used for ide-scsi)
>
> [email protected] 03-01-23 14:51:03-05:00 [email protected]
> | The following changes to ide-scsi.c are a recovery of the
> | changes that I had in ide-scsi.c in the stock kernel's before
> | Martin Dalecki's IDE tree was reverted and a few other changes.
> ...
>
> broke it.
>
> Before this change drive->id->last_id & 0x7 was used as shost->max_lun
> and "hdXlun=" kernel parameter could be used to override it.
>
> It was needed probably only for some rare ATAPI PD-CD drives
> (http://www.geocrawler.com/archives/3/58/1999/11/50/2877161/).
>
> However it was far from optimal:
> - people played with "hdXlun=" and then complained about multiple instances
> of the same device (most ATAPI drives respond to each LUN)
> - probably some devices return 7 not 0 in id->last_id (=> 7 x same device)
>
> This patch cleans things up, multi-lun will be fixed if needed in ide-scsi.
> I think that this may work but can't verify it:
>
> if (id->last_lun && id->last_lun != 7)
> shost->max_lun = id->last_lun + 1;
> else
> shost->max_lun = 1;
I have verified that this works with my PD/CD drive, the patch to ide-scsi.c
that I suggest (against linux-2.6.4-rc1-mm2) is below.
Thanks, Willem Riede.
--- m0/drivers/scsi/ide-scsi.c 2004-03-05 19:54:33.000000000 -0500
+++ m1/drivers/scsi/ide-scsi.c 2004-03-06 14:49:47.000000000 -0500
@@ -1148,7 +1148,16 @@
return 1;
host->max_id = 1;
- host->max_lun = 1;
+
+#if IDESCSI_DEBUG_LOG
+ if (drive->id->last_lun)
+ printk(KERN_NOTICE "%s: id->last_lun=%u\n", drive->name, drive->id->last_lun);
+#endif
+ if ((drive->id->last_lun & 0x7) != 7)
+ host->max_lun = (drive->id->last_lun & 0x7) + 1;
+ else
+ host->max_lun = 1;
+
drive->driver_data = host;
idescsi = scsihost_to_idescsi(host);
idescsi->drive = drive;
Willem Riede wrote:
> On 2004.02.20 16:47, Bartlomiej Zolnierkiewicz wrote:
>
>>[IDE] remove dead ATAPI multi-lun support (used for ide-scsi)
>>
>>[email protected] 03-01-23 14:51:03-05:00 [email protected]
>>| The following changes to ide-scsi.c are a recovery of the
>>| changes that I had in ide-scsi.c in the stock kernel's before
>>| Martin Dalecki's IDE tree was reverted and a few other changes.
>>...
>>
>>broke it.
>>
>>Before this change drive->id->last_id & 0x7 was used as shost->max_lun
>>and "hdXlun=" kernel parameter could be used to override it.
>>
>>It was needed probably only for some rare ATAPI PD-CD drives
>>(http://www.geocrawler.com/archives/3/58/1999/11/50/2877161/).
>>
>>However it was far from optimal:
>>- people played with "hdXlun=" and then complained about multiple instances
>> of the same device (most ATAPI drives respond to each LUN)
>>- probably some devices return 7 not 0 in id->last_id (=> 7 x same device)
>>
>>This patch cleans things up, multi-lun will be fixed if needed in ide-scsi.
>>I think that this may work but can't verify it:
>>
>> if (id->last_lun && id->last_lun != 7)
>> shost->max_lun = id->last_lun + 1;
>> else
>> shost->max_lun = 1;
>
>
> I have verified that this works with my PD/CD drive, the patch to ide-scsi.c
> that I suggest (against linux-2.6.4-rc1-mm2) is below.
I have a multi-LUN ATAPI CD changer here...
Jeff
On 2004.03.07 11:13, Jeff Garzik wrote:
> Willem Riede wrote:
> >
> > I have verified that this works with my PD/CD drive, the patch to ide-scsi.c
> > that I suggest (against linux-2.6.4-rc1-mm2) is below.
>
>
> I have a multi-LUN ATAPI CD changer here...
If you can test my patch with it, that would be great.
My CD changer doesn't report multiple LUNs :-(
Thanks, Willem Riede.