1. 28 8月, 2015 2 次提交
    • S
      mpt3sas: Get IOC_FACTS information using handshake protocol only after HBA... · 4dc8c808
      Sreekanth Reddy 提交于
      mpt3sas: Get IOC_FACTS information using handshake protocol only after HBA card gets into READY or Operational state.
      
      Driver initialization fails if driver tries to send IOC facts request message
      when the IOC is in reset or in a fault state.
      
      This patch will make sure that
      
       1.Driver to send IOC facts request message only if HBA is in operational or
         ready state.
      
       2.If IOC is in fault state, a diagnostic reset would be issued.
      
       3.If IOC is in reset state then driver will wait for 10 seconds to exit out
         of reset state.  If the HBA continues to be in reset state, then the HBA
         wouldn't be claimed by the driver.
      Signed-off-by: NSreekanth Reddy <Sreekanth.Reddy@avagotech.com>
      Reviewed-by: NMartin K. Petersen <martin.petersen@oracle.com>
      Reviewed-by: NTomas Henzl <thenzl@redhat.com>
      Signed-off-by: NJames Bottomley <JBottomley@Odin.com>
      4dc8c808
    • S
      mpt3sas: Added Combined Reply Queue feature to extend up-to 96 MSIX vector support · fb77bb53
      Sreekanth Reddy 提交于
      In this patch, increased the number of MSIX vector support for SAS3 C0 HBAs to
      up-to 96.
      
      Following are changes that are done in this patch
      
      1. This feature is enabled only for SAS3 C0 and higher revision cards and also
      only when reply post free queue count is greater than 8.
      
      2. To support this feature 12 SupplementalReplyPostHostIndex system interfaces
      are used. MSI-X index numbered from 0 to 7 use the first
      SupplementalReplyPostHostIndex system interface to update its corresponding
      ReplyPostHostIndex values, MSI-X index numbered from 8 to 15 will use the
      second SupplementalReplyPostHostIndex system interface and so on. These 12
      SuppementalReplyPostHostIndex system interfaces address are saved in the array
      replyPostRegisterIndex[].
      
      3. As each SupplementalReplyPostHostIndex register supports 8 MSI-X
      vectors. So MSIxIndex field in these register must contain a value between 0
      and 7.
      
      4. After processing the reply descriptors from a reply post free queues then
      update the new reply post host index value in ReplyPostHostIndex field and
      (msix_index mod 8) value in MSIxIndex field of SupplementalReplyPostHostIndex
      register. The Address of this SupplementalReplyPostHostIndex register is
      retrived from (msix_index/8)th entry of replyPostRegisterIndex[] array.
      Signed-off-by: NSreekanth Reddy <Sreekanth.Reddy@avagotech.com>
      Reviewed-by: NMartin K. Petersen <martin.petersen@oracle.com>
      Reviewed-by: NJohannes Thumshirn <jthumshirn@suse.de>
      Signed-off-by: NJames Bottomley <JBottomley@Odin.com>
      fb77bb53
  2. 27 8月, 2015 1 次提交
  3. 13 1月, 2015 4 次提交
  4. 09 1月, 2015 1 次提交
  5. 17 9月, 2014 4 次提交
    • S
      mpt3sas: Added Reply Descriptor Post Queue (RDPQ) Array support · 9b05c91a
      Sreekanth Reddy 提交于
      Up to now, Driver allocates a single contiguous block of memory
      pool for all reply queues and passes down a single address in the
      ReplyDescriptorPostQueueAddress field of the IOC Init Request
      Message to the firmware.
      
      When firmware receives this address, it will program each of the
      Reply Descriptor Post Queue registers, as each reply queue has its
      own register. Thus the firmware, starting from a base address it
      determines the starting address of the subsequent reply queues
      through some simple arithmetic calculations.
      
      The size of this contiguous block of memory pool is directly proportional
      to number of MSI-X vectors and the HBA queue depth. For example higher
      MSIX vectors requires larger contiguous block of memory pool.
      
      But some of the OS kernels are unable to allocate this larger
      contiguous block of memory pool.
      
      So, the proposal is to allocate memory independently for each
      Reply Queue and pass down all of the addresses to the firmware.
      Then the firmware will just take each address and program the value
      into the correct register.
      
      When HBAs with older firmware(i.e. without RDPQ capability) is used
      with this new driver then the max_msix_vectors value would be set
      to 8 by default.
      
      Change set in v1:
      
      1. Declared the _base_get_ioc_facts() functions at the beginning of the mpt3sas_base.c file
      instead of moving all these functions before mpt3sas_base_map_resources() function
              a. _base_wait_for_doorbell_int()
              b. _base_wait_for_doorbell_ack()
              c. _base_wait_for_doorbell_not_used()
              d. _base_handshake_req_reply_wait()
              e. _base_get_ioc_facts()
      
      2. Initially set the consistent DMA mask to 32 bit and then change it to 64 bit mask
      after allocating RDPQ pools by calling the function _base_change_consistent_dma_mask.
      This is to ensure that all the upper 32 bits of RDPQ entries's base address to be same.
      
      3. Reduced the redundancy between the RDPQ and non-RDPQ support in these following functions
              a. _base_release_memory_pools()
              b. _base_allocate_memory_pools()
              c. _base_send_ioc_init()
              d. _base_make_ioc_operational()
      Signed-off-by: NSreekanth Reddy <Sreekanth.Reddy@avagotech.com>
      Reviewed-by: NMartin K. Petersen <martin.petersen@oracle.com>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      9b05c91a
    • S
      mpt3sas: Added OEM branding Strings · 1117b31a
      Sreekanth Reddy 提交于
      Added following branding Strings for Intel custom HBAs support.
      
      Driver String:                                  Vendor ID       Device ID       SubSystemVendor ID      SubSystemDevice ID
      Intel(R) Integrated RAID Module RMS3JC080       0x1000          0x0097          0x8086                  0x3521
      Intel(R) RAID Controller RS3GC008               0x1000          0x0097          0x8086                  0x3522
      Intel(R) RAID Controller RS3FC044               0x1000          0x0097          0x8086                  0x3523
      Intel(R) RAID Controller RS3UC080               0x1000          0x0097          0x8086                  0x3524
      Signed-off-by: NSreekanth Reddy <Sreekanth.Reddy@avagotech.com>
      Reviewed-by: NMartin K. Petersen <martin.petersen@oracle.com>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      1117b31a
    • S
      mpt3sas: Copyright in driver sources is updated for year the 2014. · a4ffce0d
      Sreekanth Reddy 提交于
      Copyright in driver sources is updated for year the 2014.
      Signed-off-by: NSreekanth Reddy <Sreekanth.Reddy@avagotech.com>
      Reviewed-by: NMartin K. Petersen <martin.petersen@oracle.com>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      a4ffce0d
    • A
      mpt3sas: Use pci_enable_msix_exact() instead of pci_enable_msix() · 6bfa6907
      Alexander Gordeev 提交于
      As result of deprecation of MSI-X/MSI enablement functions
      pci_enable_msix() and pci_enable_msi_block() all drivers
      using these two interfaces need to be updated to use the
      new pci_enable_msi_range()  or pci_enable_msi_exact()
      and pci_enable_msix_range() or pci_enable_msix_exact()
      interfaces.
      Signed-off-by: NAlexander Gordeev <agordeev@redhat.com>
      Reviewed-by: NTomas Henzl <thenzl@redhat.com>
      Cc: Nagalakshmi Nandigama <Nagalakshmi.Nandigama@lsi.com>
      Cc: Sreekanth Reddy <Sreekanth.Reddy@lsi.com>
      Cc: support@lsi.com
      Cc: DL-MPTFusionLinux@lsi.com
      Cc: linux-scsi@vger.kernel.org
      Cc: linux-pci@vger.kernel.org
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      6bfa6907
  6. 26 7月, 2014 2 次提交
  7. 15 1月, 2014 1 次提交
  8. 03 9月, 2013 1 次提交
    • S
      [SCSI] mpt3sas: Added a driver module parameter max_msix_vectors · 9c500060
      Sreekanth Reddy 提交于
      Added a driver module parameter max_msix_vectors. Using this module parameter
      the maximum number of MSI-X vectors could be set.
      
      The number of MSI-X vectors used would be the minimum of MSI-X vectors
      supported by the HBA, the number of CPU cores and the value set to
      max_msix_vectors module parameter.
      
      The default value of this module parameter is set to 8. The default value of
      this parameter is set to 8 inorder to reduce the amount of memory required for
      Reply Descriptor Post queue.  This is because with the higher MSI-X vectors,
      some times kernel is not able to allocate the requested amount of memory and
      crash is observed. To overcome this problem, the default value is set to 8.
      Signed-off-by: NSreekanth Reddy <Sreekanth.Reddy@lsi.com>
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      9c500060
  9. 26 8月, 2013 1 次提交
  10. 09 7月, 2013 2 次提交
  11. 29 1月, 2013 2 次提交
  12. 01 12月, 2012 1 次提交
  13. 17 9月, 2012 1 次提交
  14. 24 8月, 2012 2 次提交
  15. 22 8月, 2012 1 次提交
    • S
      [SCSI] mpt2sas: Fix for Driver oops, when loading driver with max_queue_depth... · 338b131a
      sreekanth.reddy@lsi.com 提交于
      [SCSI] mpt2sas: Fix for Driver oops, when loading driver with max_queue_depth command line option to a very small value
      
      If the specified max_queue_depth setting is less than the
      expected number of internal commands, then driver will calculate
      the queue depth size to a negitive number. This negitive number
      is actually a very large number because variable is unsigned
      16bit integer. So, the driver will ask for a very large amount of
      memory for message frames and resulting into oops as memory
      allocation routines will not able to handle such a large request.
      
      So, in order to limit this kind of oops, The driver need to set
      the max_queue_depth to a scsi mid layer's can_queue value. Then
      the overall message frames required for IO is minimum of either
      (max_queue_depth plus internal commands) or the IOC global
      credits.
      Signed-off-by: NSreekanth Reddy <sreekanth.reddy@lsi.com>
      Cc: <stable@kernel.org>
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      338b131a
  16. 06 6月, 2012 1 次提交
  17. 24 4月, 2012 4 次提交
  18. 28 3月, 2012 2 次提交
  19. 28 2月, 2012 1 次提交
  20. 19 2月, 2012 1 次提交
  21. 13 2月, 2012 1 次提交
  22. 15 12月, 2011 4 次提交