On Tue, May 17, 2005 at 04:06:11PM -0500, James Bottomley wrote: > Well, the attached is what I'd like you to try, capturing the > information from the initial inquiry on ... it will be quite a bit. > > Hopefully it will give me a clearer idea of what's going on. I have found a way to fetch the console :-) Against which kernel revision is your patch made for ? Thank you very much :-) > Thanks, > > James > > --- a/drivers/scsi/scsi_transport_spi.c > +++ b/drivers/scsi/scsi_transport_spi.c > @@ -669,14 +669,23 @@ spi_dv_retrain(struct scsi_request *sreq > { > struct spi_internal *i = to_spi_internal(sreq->sr_host->transportt); > struct scsi_device *sdev = sreq->sr_device; > + struct scsi_target *starget = sdev->sdev_target; > int period = 0, prevperiod = 0; > enum spi_compare_returns retval; > > > for (;;) { > int newperiod; > + > retval = compare_fn(sreq, buffer, ptr, DV_LOOPS); > > + if(i->f->get_period) > + i->f->get_period(starget); > + if (i->f->get_offset) > + i->f->get_offset(starget); > + > + spi_display_xfer_agreement(starget); > + > if (retval == SPI_COMPARE_SUCCESS > || retval == SPI_COMPARE_SKIP_TEST) > break; > @@ -765,6 +774,8 @@ spi_dv_device_internal(struct scsi_reque > /* first set us up for narrow async */ > DV_SET(offset, 0); > DV_SET(width, 0); > + > + printk("BEGINNING ASYNC, inq len = %d\n", sdev->inquiry_len); > > if (spi_dv_device_compare_inquiry(sreq, buffer, buffer, DV_LOOPS) > != SPI_COMPARE_SUCCESS) { > @@ -773,11 +784,13 @@ spi_dv_device_internal(struct scsi_reque > return; > } > > + printk("ASYNC INQUIRY SUCCEEDED\n"); > + > /* test width */ > if (i->f->set_width && spi_max_width(starget) && sdev->wdtr) { > i->f->set_width(sdev->sdev_target, 1); > > - printk("WIDTH IS %d\n", spi_max_width(starget)); > + printk("TRYING WIDE ASYNC INQUIRY\n"); > > if (spi_dv_device_compare_inquiry(sreq, buffer, > buffer + len, > @@ -802,12 +815,17 @@ spi_dv_device_internal(struct scsi_reque > if (sdev->ppr) > len = spi_dv_device_get_echo_buffer(sreq, buffer); > > + printk("ECHO BUFFER HAS LEN %d\n", len); > + > retry: > > /* now set up to the maximum */ > DV_SET(offset, spi_max_offset(starget)); > DV_SET(period, spi_min_period(starget)); > > + printk("DV SETTING TO period %d, offset %d\n", spi_min_period(starget), > + spi_max_offset(starget)); > + > if (len == 0) { > SPI_PRINTK(sdev->sdev_target, KERN_INFO, "Domain Validation skipping write tests\n"); > spi_dv_retrain(sreq, buffer, buffer + len, > -- Grégoire Favre - : send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html