15 Aug, 2005

2 commits

  • I recently tried to construct a totally generic transport class and
    found there were certain features missing from the current abstract
    transport class. Most notable is that you have to hang the data on the
    class_device but most of the API is framed in terms of the generic
    device, not the class_device.

    These changes are two fold

    - Provide the class_device to all of the setup and configure APIs
    - Provide and extra API to take the device and the attribute class and
    return the corresponding class_device

    Signed-off-by: James Bottomley

    James Bottomley
     
  • This patch is necessary if we begin exposing underlying physical disks
    (which can attach to the SPI transport class) of the hardware RAID
    cards, since we don't want any SPI parameters binding to the RAID
    devices.

    Signed-off-by: James Bottomley

    James Bottomley
     

13 Aug, 2005

12 commits


10 Aug, 2005

1 commit


09 Aug, 2005

2 commits

  • When run on a kernel that scans all LUNs, a certain crappy
    scsi scanner reports the same LUN over and over..
    https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=155457

    Aparently they were so shamed by this, they chose to remain
    anonymous. Though it seems the blacklist code handles
    anonymous vendors just fine.

    Signed-off-by: Dave Jones
    Signed-off-by: James Bottomley

    Dave Jones
     
  • Received from Mark Salyzyn

    This patch adds the product ID for the ICP9067MA adapter.

    The entries for the ICP9085LI, ICP5085BR, IBM8k & ASR4810SAS were
    incorrect and would not initialize the adapters correctly.

    Signed-off-by: Mark Haverkamp
    Signed-off-by: James Bottomley

    Mark Haverkamp
     

08 Aug, 2005

3 commits

  • There are certain rogue devices (and the aic7xxx driver) that return
    BUSY or QUEUE_FULL forever. This code will apply a global timeout (of
    the total number of retries times the per command timer) to a given
    command. If it is exceeded, the command is completed regardless of its
    state.

    The patch also removes the unused field in the command: timeout and
    timeout_total.

    This solves the problem of detecting an endless loop in the mid-layer
    because of BUSY/QUEUE_FULL bouncing, but will not recover the device.
    In the aic7xxx case, the driver can be recovered by sending a bus reset,
    so possibly this should be tied into the error handler?

    Signed-off-by: James Bottomley

    James Bottomley
     
  • I have rediffed the patch against 2.6.13-rc5, done a couple of cosmetic
    cleanups, and run some tests. Brian King has acknowledged that it fixes the
    problems he has seen. Seems mature enough for inclusion into 2.6.14 (or
    later)?

    Nate's explanation of the changes:

    I've attached patches against 2.6.13rc2. These are basically identical
    to my earlier patches, as I found that all issues I'd seen in earlier
    kernels still existed in this kernel.

    To summarize, the changes are: (more details in my original email)

    - add a kref to the scsi_tape structure, and associate reference
    counting stuff

    - set sr_request->end_io = blk_end_sync_rq so we get notified when an IO
    is rejected when the device goes away

    - check rq_status when IOs complete, else we don't know that IOs
    rejected for a dead device in fact did not complete

    - change last_SRpnt so it's set before an async IO is issued (in case
    st_sleep_done is bypassed)

    - fix a bogus use of last_SRpnt in st_chk_result

    Signed-off-by: Nate Dailey
    Signed-off-by: Kai Makisara
    Signed-off-by: James Bottomley

    Kai Makisara
     
  • The cmd->timeout field has been obsolete for a while now. While looking
    to remove it, I came across this use in the aacraid driver. It looks
    like you want to initialise the firmware with the current timeout of the
    command (in seconds), so the value I think you should be using is
    cmd->timeout_per_command.

    Acked by: Mark Haverkamp
    Acked by: Mark Salyzyn
    Signed-off-by: James Bottomley

    James Bottomley
     

07 Aug, 2005

1 commit

  • without it you get this failure:

    drivers/built-in.o(.text+0xdcccd): In function `ahd_linux_slave_configure':
    drivers/scsi/aic7xxx/aic79xx_osm.c:636: undefined reference to `spi_dv_device'
    drivers/built-in.o(.text+0xdd7b1): In function `ahd_send_async':
    drivers/scsi/aic7xxx/aic79xx_osm.c:1652: undefined reference to `spi_display_xfer_agreement'
    drivers/built-in.o(.init.text+0x7b4d): In function `ahd_linux_init':
    drivers/scsi/aic7xxx/aic79xx_osm.c:2765: undefined reference to `spi_attach_transport'
    drivers/built-in.o(.init.text+0x7c94):drivers/scsi/aic7xxx/aic79xx_osm.c:2774: undefined reference to `spi_release_transport'
    drivers/built-in.o(.exit.text+0x72c): In function `ahd_linux_exit':
    drivers/scsi/aic7xxx/aic79xx_osm.c:2783: undefined reference to `spi_release_transport'

    Signed-off-by: Andrew Morton
    Signed-off-by: James Bottomley

    akpm@osdl.org
     

06 Aug, 2005

7 commits

  • Received from Mark Salyzyn from Adaptec:

    This patch adds support for the new raw io command. This new command
    offers much larger io commands, is more friendly to the internal firmware
    structure requiring less translation efforts by the firmware and offers
    support for targets greater than 2TB (patch to support >2TB will
    be sent in the future).

    Signed-off-by: Mark Haverkamp
    Signed-off-by: James Bottomley

    Mark Haverkamp
     
  • Received from Mark Salyzyn from Adaptec:

    If the Adapter is quiet and does not produce an AIF event packets to be
    picked up by the management applications for longer than the timeout
    interval of two minutes, the cleanup code that deals with aging out
    registrants could erroneously drop the registration. The timeout is
    there to clean up should the management application die and fail to poll
    for updated AIF event packets.

    Moving the timer update from the ioctl code that delivers an AIF to the
    polling registrant to the bottom of the ioctl means the timeout is reset
    with any management application polling activity regardless if an AIF is
    delivered or not removing the erroneous timeout cleanups.

    Signed-off-by: Mark Haverkamp
    Signed-off-by: James Bottomley

    Mark Haverkamp
     
  • Received from Mark Salyzyn from Adaptec:

    This patch removes the duplicate code in the write_callback command
    completion handler, and renames read_callback to io_callback. Optimized
    the lba calculation into the debug print routine macro to optimize the
    i/o code path.

    Signed-off-by: Mark Haverkamp
    Signed-off-by: James Bottomley

    Mark Haverkamp
     
  • Add in pci shutdown method so that the adapter shuts down correctly and
    flushes its cache. Shutdown should also disable the adapter's interrupt
    when shutdown (in particularly if the driver is rmmod'd) to prevent
    spurious hardware activities.

    Signed-off-by: Mark Haverkamp
    Signed-off-by: James Bottomley

    Mark Haverkamp
     
  • Received from Mark Salyzyn from Adaptec.

    Fixes a bug in check_revision. It should return the driver version not
    the firmware version.
    Update driver version number.
    Update driver version string.

    Signed-off-by: Mark Haverkamp
    Signed-off-by: James Bottomley

    Mark Haverkamp
     
  • Received from Mark Salyzyn from Adaptec:

    If more than two commands are outstanding to the controller, there is no
    need to notify the adapter via a PCI bus transaction of additional
    commands added into the queue; it will get to them when it works through
    the produce/consumer indexes.

    This reduced the PCI traffic in the driver to submit a command to the
    queue to near zero allowing a significant number of commands to be
    turned around with no need to block for the PCI bridge to flush the
    notify request to the adapter.

    Interrupt mitigation has always been present in the driver; it was
    turned off because of a bug that prevented one from realizing the
    usefulness of the feature. This bug is fixed in this patch.

    Signed-off-by: Mark Haverkamp
    Signed-off-by: James Bottomley

    Mark Haverkamp
     
  • I ran into this one sending bus resets across the hardware.

    Signed-off-by: James Bottomley

    James Bottomley
     

05 Aug, 2005

2 commits


04 Aug, 2005

6 commits

  • since this card can support the setting, add it to the parameter list.

    Signed-off-by: James Bottomley

    James Bottomley
     
  • This parameter is important only to people who take the time to tune the
    margin control settings, otherwise it's completely irrelevant. However,
    just in case anyone should want to do this, it's appropriate to include
    the parameter.

    I don't do anything with it in DV by design, so the parameter will come
    up as off by default, so if anyone actually wants to play with the
    margin control settings they'll have to enable it under the
    spi_transport class first.

    I also updated the transfer settings display to report all of the PPR
    settings instead of only DT, IU and QAS

    Signed-off-by: James Bottomley

    James Bottomley
     
  • There's a slight problem in the way you've done the transport
    parameters; reading from the variables actually produces the current
    settings, not the ones you just set (and there's usually a lag because
    devices don't renegotiate until the next command goes over the bus). If
    you set the bit immediately, you get into the situation where the
    transport parameters report something as being set even if the drive
    cannot support it.

    I patched the driver to do it this way and also corrected a panic in the
    proc routines.

    Signed-off-by: James Bottomley

    James Bottomley
     
  • This patch updates various scsi_transport_spi parameters with the actual
    parameters used by the driver internally.
    Domain Validation for all devices should now work properly.

    Signed-off-by: James Bottomley

    Hannes Reinecke
     
  • This patch updates the aic79xx driver to take advantage of the
    scsi_transport_spi infrastructure. Patch is quite a mess as some
    procedures have been reshuffled to be closer to the aic7xxx driver.

    Rejections fixed and
    Signed-off-by: James Bottomley

    Hannes Reinecke
     
  • From: Jeff Garzik

    This patch removes the busyq in aic79xx and uses the command-queue from
    the midlayer instead. Additionally some dead code is removed.

    Signed-off-by: Hannes Reinecke

    Fixed rejections

    Signed-off-by: James Bottomley

    Hannes Reinecke
     

03 Aug, 2005

4 commits