30 Oct, 2009

1 commit


12 Sep, 2009

1 commit


23 Aug, 2009

3 commits


10 Jun, 2009

13 commits

  • Firmware is able to handle Broadcast primitives, but upstream driver does not
    have support for broadcast primitive handling. Now this patch is mainly to
    support broadcast primitives.

    Signed-off-by: Kashyap Desai
    Signed-off-by: James Bottomley

    Kashyap, Desai
     
  • 1. Handle integrated Raid device(Add/Delete) and error condition and check
    related to Raid device. is_logical_volume will represent logical volume
    device.
    2. Raid device dual port support is added. Main functions to support this
    feature are mpt_raid_phys_disk_get_num_paths and mpt_raid_phys_disk_pg1.

    Signed-off-by: Kashyap Desai
    Signed-off-by: James Bottomley

    Kashyap, Desai
     
  • Resending patch considering Grants G's code review.

    Main goal to submit this patch is code cleaup.
    1. Better driver debug prints and code indentation.
    2. fault_reset_work_lock is not used anywhere. driver is using taskmgmt_lock
    instead of fault_reset_work_lock.
    3. setting pci_set_drvdata properly.
    4. Ingore config request when IOC is in reset state.( ioc_reset_in_progress
    is set).
    5. Init/clear managment frame proprely.(INITIALIZE_MGMT_STATUS and
    CLEAR_MGMT_STATUS)

    Signed-off-by: Kashyap Desai
    Signed-off-by: James Bottomley

    Kashyap, Desai
     
  • 1.) SAS topology Rescan is added. If Firmware is doing Reset and we get
    Device add interrupt from Firmware, we will not receive it as part of Reset
    is going ON. After Reset we will do special Rescan of SAS topology.
    2.) Driver version changed from 3.04.08 to 3.04.09.

    Added proper lock/unlock in mptsas_not_responding_devices() as per James'
    comment.

    Signed-off-by: Kashyap Desai
    Signed-off-by: James Bottomley

    Kashyap, Desai
     
  • SAS topology scan is restructured. HBA firmware is generating more
    events. Expander Events are added, Link status events are also added with
    respect to SAS topology scan optimization.

    Signed-off-by: Kashyap Desai
    Signed-off-by: James Bottomley

    Kashyap, Desai
     
  • Now Firmware events are handled by firmware event queue.
    Previously it was handled in interrupt context/WorkQueue of Linux.
    Firmware Event handling is restructured and optimized.

    Signed-off-by: Kashyap Desai
    Signed-off-by: James Bottomley

    Kashyap, Desai
     
  • 1) rewrite of ioctl_cmds internal generated function that issue commands to
    firmware, porting them to be single threaded using the generic MPT_MGMT
    struct. All wait Queues are replace by completion Queue.
    2) added seperate callback handler for ioctl task managment
    (mptctl_taskmgmt_reply), to handle command that timeout
    3) rewrite mptctl_bus_reset

    Signed-off-by: Kashyap Desai
    Signed-off-by: James Bottomley

    Kashyap, Desai
     
  • 1.) Added taskmgmt_quiesce_io flag in IOC and removed resetPending from
    _MPT_SCSI_HOST struct.
    2.) Reset from Scsi mid layer and internal Reset are seperate context.
    Adding DeviceResetCtx for internal Device reset frame.
    mptsas_taskmgmt_complete is optimized as part of implementation.

    Signed-off-by: Kashyap Desai
    Signed-off-by: James Bottomley

    Kashyap, Desai
     
  • 1.) rewrite taskmanagement request and completion routines, making them
    single threaded and using the generic MPT_MGMT struct, deleting
    mptscsih_TMHandler, replacing with single request TM handler
    mptscsih_IssueTaskMgmt, and killing the watchdog timer functions.
    2.) cleanup ioc_reset callback handlers, introducing wrappers for
    synchronizing error recovery (mpt_set_taskmgmt_in_progress_flag,
    mpt_clear_taskmgmt_in_progress_flag), as the fusion firmware only handles
    one task management request at a time

    Signed-off-by: Kashyap Desai
    Signed-off-by: James Bottomley

    Kashyap, Desai
     
  • Rewrite of all internal generated functions that issue commands to firmware,
    porting them to be single threaded using the generic MPT_MGMT
    struct. Implemented using completion Queue.

    Signed-off-by: Kashyap Desai
    Signed-off-by: James Bottomley

    Kashyap, Desai
     
  • 1) Previously we had mutliple #defines to use same values.
    Now those #defines are optimized.
    MPT_IOCTL_STATUS_* is removed and MPT_MGMT_STATUS_* are new
    #defines.
    2.) config path is optimized.
    Instead of wait Queue and timer, using completion Q.
    3.) mpt_timer_expired is not used.

    [jejb: elide patch to eliminate mpt_timer_expired]
    Signed-off-by: Kashyap Desai
    Signed-off-by: James Bottomley

    Kashyap, Desai
     
  • sas_discovery_quiesce_io flag is used to control IO start/resume functionality.
    IO will be stoped while doing discovery of topology. Once discovery is completed
    It will resume IO. Resending patch including James review.

    Signed-off-by: Kashyap Desai
    Signed-off-by: James Bottomley

    Kashyap, Desai
     
  • The reason for this change is there is a data corruption when four different
    physical memory regions in the 36GB to 37GB region are
    accessed. This is only affecting 1078.

    The solution is we need to use different addressing when filling in
    the scatter gather table for the effected memory regions. So instead
    of snooping on all four different memory holes, we treat any physical
    addresses in the 36GB address with the same algorithm.

    The fix is explained below
    1) Ensure that the message frames are NOT located in the trouble
    region. There is no remapping available for message frames, they must
    be allocated outside the problem region.
    2) Ensure that Sense buffers are NOT in the trouble region. There is
    no remapping available.
    3) Walk through the SGE entries and if any are inside the trouble region
    then they need to be remapped as discussed below.
    1) Set the Local Address bit in the SGE Flags field.
    MPI_SGE_FLAGS_LOCAL_ADDRESS
    2) Ensure we are using 64-bit SGEs
    3) Set MSb (Bit 63) of the 64-bit address, this will indicate buffer
    location is Host Memory.

    Signed-off-by: Kashyap Desai
    Signed-off-by: James Bottomley

    Kashyap, Desai
     

14 Jan, 2009

1 commit


22 Jul, 2008

1 commit


12 Jul, 2008

1 commit

  • When the firmware is in Fault state it will be identifed only when the next time
    the driver access the IOC state.
    This patch includes a polling function in the driver which will be executed in
    regular interval to check the status of the firmware and if it is in Fault
    state, then the firmware will be reset by the driver.

    Signed-off-by: Sathya Prakash
    Signed-off-by: James Bottomley

    Prakash, Sathya
     

05 Jun, 2008

3 commits


08 Apr, 2008

3 commits

  • While performing hardware raid reset testing via the raid's client, I
    noticed that sometimes, following the reset, that there would be more
    raid targets in the lsscsi output than there actually were raid
    targets. I tracked this down to the following issue.

    Fusion cannot always find the mptsas_portinfo structure for the hba
    because it uses the handle stored in ioc->handle to locate it. The
    problem is that the firmware can change the handle associated with the
    hba when h/w raid is reset (via the raid client). When this happens,
    the driver will allocate another mptsas_portinfo structure and link it
    into the chain of said structures. This ultimately causes confusion
    within the driver resulting in targets not being removed when they
    should be.

    Eric Moore pointed out that the hba's portinfo structure is always the
    first structure on the sas_topology list. This patch modifies
    mptsas.c to access the hba's portinfo structure by taking the first
    structure on said list.

    Signed-off-by: Michael Reed
    Acked-by: "Moore, Eric"
    Signed-off-by: James Bottomley

    Michael Reed
     
  • the semaphore inactive_list_mutex is used as a mutex, convert it to
    the mutex API

    Signed-off-by: Matthias Kaehlcke
    Acked-by: "Moore, Eric"
    Signed-off-by: James Bottomley

    Matthias Kaehlcke
     
  • This patch modifies the driver to enable MSI by default for all SAS chips.

    Signed-off-by: Sathya Prakash
    Signed-off-by: James Bottomley

    Prakash, Sathya
     

18 Feb, 2008

1 commit


12 Feb, 2008

1 commit

  • This patch modifies the I/O resource allocation behavior of FUSION
    driver. The current version of driver allocates the I/O resources
    even if they are not required and this creates trouble in low resource
    environments. This driver now uses
    pci_enable_device_mem/pci_enable_device functions to differentiate the
    resource allocations.

    Signed-off-by: Sathya Prakash
    Signed-off-by: James Bottomley

    Prakash, Sathya
     

24 Jan, 2008

1 commit


13 Oct, 2007

8 commits


28 Jul, 2007

1 commit


19 Jul, 2007

1 commit