1. 01 Feb, 2017 1 commit
  2. 14 Dec, 2016 1 commit
  3. 08 Nov, 2016 3 commits
  4. 09 Aug, 2016 3 commits
  5. 24 Feb, 2016 3 commits
  6. 12 Nov, 2015 2 commits
    • Sreekanth Reddy's avatar
      mpt3sas: Single driver module which supports both SAS 2.0 & SAS 3.0 HBAs · c84b06a4
      Sreekanth Reddy authored
      Modified the mpt3sas driver to have a single driver module which
      supports both SAS 2.0 & SAS 3.0 HBA devices.
      
      * Added SAS 2.0 HBA device IDs to the mpt3sas_pci_table pci table.
      
      * Created two separate SCSI host templates for SAS2 and SAS3 HBAs so
        that, during the driver load time driver can use corresponding host
        template(based the pci device ID) while registering a scsi host
        adapter instance for that pci device.
      
      * Registered two IOCTL devices, mpt2ctl is for SAS2 HBAs & mpt3ctl for
        SAS3 HBAs. Also updated the code to make sure that mpt2ctl device
        processes only those ioctl cmds issued for the SAS2 HBAs and mpt3ctl
        device processes only those ioctl cmds issued for the SAS3 HBAs.
      
      * Added separate indexing for SAS2 and SAS3 HBAs.
      
      * Replaced compile time check 'MPT2SAS_SCSI' to run time check
        'hba_mpi_version_belonged' whereever needed.
      
      * Aliased this merged driver to mpt2sas using MODULE_ALIAS.
      
      * Moved global varaible 'driver_name' to per adapter instance variable.
      
      * Created two raid function template and used corresponding raid
        function templates based on the run time check
        'hba_mpi_version_belonged'.
      
      * Moved mpt2sas_warpdrive.c file from mpt2sas to mpt3sas folder and
        renamed it as mpt3sas_warpdrive.c.
      
      * Also renamed the functions in mpt3sas_warpdrive.c file to follow
        current driver function name convention.
      
      * Updated the Makefile to build mpt3sas_warpdrive.o file for these
        WarpDrive-specific functions.
      
      * Also in function mpt3sas_setup_direct_io(), used sector_div() API
        instead of division operator (which gives compilation errors on 32 bit
        machines).
      
      * Removed mpt2sas files, mpt2sas directory & mpt3sas_module.c file.
      
      * Added module parameter 'hbas_to_enumerate' which permits using this
        merged driver as a legacy mpt2sas driver or as a legacy mpt3sas
        driver.
      
        Here are the available options for this module parameter:
      
         0 - Merged driver which enumerates both SAS 2.0 & SAS 3.0 HBAs
         1 - Acts as legacy mpt2sas driver, which enumerates only SAS 2.0 HBAs
         2 - Acts as legacy mpt3sas driver, which enumerates only SAS 3.0 HBAs
      
      * Removed mpt2sas entries from SCSI's Kconfig and Makefile files.
      Signed-off-by: default avatarSreekanth Reddy <[email protected]>
      Reviewed-by: default avatarChristoph Hellwig <[email protected]>
      Reviewed-by: Hannes Reinecke's avatarHannes Reinecke <[email protected]>
      Signed-off-by: Martin K. Petersen's avatarMartin K. Petersen <[email protected]>
      c84b06a4
    • Sreekanth Reddy's avatar
      mpt3sas: setpci reset kernel oops fix · 08c4d550
      Sreekanth Reddy authored
      setpci reset on nytro warpdrive card along with sysfs access and cli
      ioctl access resulted in kernel oops
      
      1. pci_access_mutex lock added to provide synchronization between IOCTL,
         sysfs, PCI resource handling path
      
      2. gioc_lock spinlock to protect list operations over multiple
         controllers
      
      This patch is ported from commit 6229b414 ("mpt2sas: setpci reset
      kernel oops fix").
      Signed-off-by: default avatarSreekanth Reddy <[email protected]>
      Acked-by: default avatarChristoph Hellwig <[email protected]>
      Reviewed-by: Hannes Reinecke's avatarHannes Reinecke <[email protected]>
      Signed-off-by: Martin K. Petersen's avatarMartin K. Petersen <[email protected]>
      08c4d550
  7. 11 Nov, 2015 6 commits
  8. 13 Jan, 2015 1 commit
  9. 16 Sep, 2014 1 commit
  10. 28 May, 2014 1 commit
  11. 09 Jul, 2013 1 commit
  12. 29 Apr, 2013 1 commit
  13. 29 Jan, 2013 2 commits
  14. 01 Dec, 2012 1 commit
  15. 24 Sep, 2012 1 commit
  16. 24 Aug, 2012 2 commits
  17. 23 Apr, 2012 3 commits
  18. 28 Mar, 2012 1 commit
  19. 15 Dec, 2011 1 commit
  20. 30 Oct, 2011 1 commit
    • nagalakshmi.nandigama@lsi.com's avatar
      [SCSI] mpt2sas: New feature - Fast Load Support · 921cd802
      [email protected] authored
      New feature Fast Load Support.
      
      (1)Asynchronous SCSI scanning: This will allow the drivers to scan
      for devices in parallel while other device drivers are loading at
      the same time. This will improve the amount of time it takes for the
      OS to load.
      
      (2) Reporting Devices while port enable is active: This feature will
      allow devices to be reported to OS immediately while port enable is
      active. The previous implementation waits for port enable to complete,
      and then report devices. This feature is only enabled on IT firmware
      configurations when there are no boot device configured in BIOS Configuration
      Utility, else the driver will wait till port enable completes reporting
      devices. For IR firmware, this feature is turned off. This feature is to
      address large SAS topologies (>100 drives) when the boot OS is using onboard
      SATA device, in other words, the boot devices is not
      connected to our controller.
      
      (3) Scanning for devices after diagnostic reset completes: A new routine
      _scsih_scan_start is added. This will scan the expander pages, IR pages,
      and sas device pages, then reporting new devices to SCSI Mid layer. It
      seems the driver is not supporting adding devices while diagnostic reset
      is active. Apparently this is due to the sanity checks on
      ioc->shost_recovery flag throughout the context of kernel work thread FIFO,
      and the mpt2sas_fw_work.
      Signed-off-by: default avatarNagalakshmi Nandigama <[email protected]>
      Signed-off-by: default avatarJames Bottomley <[email protected]>
      921cd802
  21. 22 Sep, 2011 1 commit
    • nagalakshmi.nandigama@lsi.com's avatar
      [SCSI] mpt2sas: Added NUNA IO support in driver which uses multi-reply queue support of the HBA · 911ae943
      [email protected] authored
      Support added for controllers capable of multi reply queues.
      
      The following are the modifications to the driver to support NUMA.
      
      1) Create the new structure adapter_reply_queue to contain the reply queue
         info for every msix vector.  This object will contain a
         reply_post_host_index, reply_post_free for each instance, msix_index, among
         other parameters.  We will track all the reply queues on a link list called
         ioc->reply_queue_list. Each reply queue is aligned with each IRQ, and is
         passed to the interrupt via the bus_id parameter.
      
      (2) The driver will figure out the msix_vector_count from the PCIe MSIX
          capabilities register instead of the IOC Facts->MaxMSIxVectors. This is
          because the firmware is not filling in this field until the driver has
          already registered MSIX support.
      
      (3) If the ioc_facts reports that the controller is MSIX compatible in the
          capabilities, then the driver will request for multiple irqs.  This count
          is calculated based on the minimum between the online cpus available and
          the ioc->msix_vector_count.  This count is reported to firmware in the
          ioc_init request.
      
      (4) New routines were added _base_free_irq and _base_request_irq, so
          registering and freeing msix vectors were done thru simple function API.
      
      (5) The new routine _base_assign_reply_queues was added to align the msix
          indexes across cpus. This will initialize the array called
          ioc->cpu_msix_table.  This array is looked up on every MPI request so the
          MSIxIndex is set appropriately.
      
      (6) A new shost sysfs attribute was added to report the reply_queue_count.
      
      (7) User needs to set the affinity cpu mask, so the interrupts occur on the
          same cpu that sent the original request.
      Signed-off-by: default avatarNagalakshmi Nandigama <[email protected]>
      Signed-off-by: default avatarJames Bottomley <[email protected]>
      911ae943
  22. 15 Sep, 2011 1 commit
  23. 29 Jun, 2011 2 commits