ChangeLog.arcmsr 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. **************************************************************************
  2. ** History
  3. **
  4. ** REV# DATE NAME DESCRIPTION
  5. ** 1.00.00.00 3/31/2004 Erich Chen First release
  6. ** 1.10.00.04 7/28/2004 Erich Chen modify for ioctl
  7. ** 1.10.00.06 8/28/2004 Erich Chen modify for 2.6.x
  8. ** 1.10.00.08 9/28/2004 Erich Chen modify for x86_64
  9. ** 1.10.00.10 10/10/2004 Erich Chen bug fix for SMP & ioctl
  10. ** 1.20.00.00 11/29/2004 Erich Chen bug fix with arcmsr_bus_reset when PHY error
  11. ** 1.20.00.02 12/09/2004 Erich Chen bug fix with over 2T bytes RAID Volume
  12. ** 1.20.00.04 1/09/2005 Erich Chen fits for Debian linux kernel version 2.2.xx
  13. ** 1.20.00.05 2/20/2005 Erich Chen cleanly as look like a Linux driver at 2.6.x
  14. ** thanks for peoples kindness comment
  15. ** Kornel Wieliczek
  16. ** Christoph Hellwig
  17. ** Adrian Bunk
  18. ** Andrew Morton
  19. ** Christoph Hellwig
  20. ** James Bottomley
  21. ** Arjan van de Ven
  22. ** 1.20.00.06 3/12/2005 Erich Chen fix with arcmsr_pci_unmap_dma "unsigned long" cast,
  23. ** modify PCCB POOL allocated by "dma_alloc_coherent"
  24. ** (Kornel Wieliczek's comment)
  25. ** 1.20.00.07 3/23/2005 Erich Chen bug fix with arcmsr_scsi_host_template_init
  26. ** occur segmentation fault,
  27. ** if RAID adapter does not on PCI slot
  28. ** and modprobe/rmmod this driver twice.
  29. ** bug fix enormous stack usage (Adrian Bunk's comment)
  30. ** 1.20.00.08 6/23/2005 Erich Chen bug fix with abort command,
  31. ** in case of heavy loading when sata cable
  32. ** working on low quality connection
  33. ** 1.20.00.09 9/12/2005 Erich Chen bug fix with abort command handling, firmware version check
  34. ** and firmware update notify for hardware bug fix
  35. ** 1.20.00.10 9/23/2005 Erich Chen enhance sysfs function for change driver's max tag Q number.
  36. ** add DMA_64BIT_MASK for backward compatible with all 2.6.x
  37. ** add some useful message for abort command
  38. ** add ioctl code 'ARCMSR_IOCTL_FLUSH_ADAPTER_CACHE'
  39. ** customer can send this command for sync raid volume data
  40. ** 1.20.00.11 9/29/2005 Erich Chen by comment of Arjan van de Ven fix incorrect msleep redefine
  41. ** cast off sizeof(dma_addr_t) condition for 64bit pci_set_dma_mask
  42. ** 1.20.00.12 9/30/2005 Erich Chen bug fix with 64bit platform's ccbs using if over 4G system memory
  43. ** change 64bit pci_set_consistent_dma_mask into 32bit
  44. ** increcct adapter count if adapter initialize fail.
  45. ** miss edit at arcmsr_build_ccb....
  46. ** psge += sizeof(struct _SG64ENTRY *) =>
  47. ** psge += sizeof(struct _SG64ENTRY)
  48. ** 64 bits sg entry would be incorrectly calculated
  49. ** thanks Kornel Wieliczek give me kindly notify
  50. ** and detail description
  51. ** 1.20.00.13 11/15/2005 Erich Chen scheduling pending ccb with FIFO
  52. ** change the architecture of arcmsr command queue list
  53. ** for linux standard list
  54. ** enable usage of pci message signal interrupt
  55. ** follow Randy.Danlup kindness suggestion cleanup this code
  56. ** 1.20.00.14 05/02/2007 Erich Chen & Nick Cheng
  57. ** 1.implement PCI-Express error recovery function and AER capability
  58. ** 2.implement the selection of ARCMSR_MAX_XFER_SECTORS_B=4096
  59. ** if firmware version is newer than 1.42
  60. ** 3.modify arcmsr_iop_reset to improve the ability
  61. ** 4.modify the ISR, arcmsr_interrupt routine,to prevent the
  62. ** inconsistency with sg_mod driver if application directly calls
  63. ** the arcmsr driver w/o passing through scsi mid layer
  64. ** specially thanks to Yanmin Zhang's openhanded help about AER
  65. ** 1.20.00.15 08/30/2007 Erich Chen & Nick Cheng
  66. ** 1. support ARC1200/1201/1202 SATA RAID adapter, which is named
  67. ** ACB_ADAPTER_TYPE_B
  68. ** 2. modify the arcmsr_pci_slot_reset function
  69. ** 3. modify the arcmsr_pci_ers_disconnect_forepart function
  70. ** 4. modify the arcmsr_pci_ers_need_reset_forepart function
  71. ** 1.20.00.15 09/27/2007 Erich Chen & Nick Cheng
  72. ** 1. add arcmsr_enable_eoi_mode() on adapter Type B
  73. ** 2. add readl(reg->iop2drv_doorbell_reg) in arcmsr_handle_hbb_isr()
  74. ** in case of the doorbell interrupt clearance is cached
  75. ** 1.20.00.15 10/01/2007 Erich Chen & Nick Cheng
  76. ** 1. modify acb->devstate[i][j]
  77. ** as ARECA_RAID_GOOD instead of
  78. ** ARECA_RAID_GONE in arcmsr_alloc_ccb_pool
  79. ** 1.20.00.15 11/06/2007 Erich Chen & Nick Cheng
  80. ** 1. add conditional declaration for
  81. ** arcmsr_pci_error_detected() and
  82. ** arcmsr_pci_slot_reset
  83. ** 1.20.00.15 11/23/2007 Erich Chen & Nick Cheng
  84. ** 1.check if the sg list member number
  85. ** exceeds arcmsr default limit in arcmsr_build_ccb()
  86. ** 2.change the returned value type of arcmsr_build_ccb()
  87. ** from "void" to "int"
  88. ** 3.add the conditional check if arcmsr_build_ccb()
  89. ** returns FAILED
  90. ** 1.20.00.15 12/04/2007 Erich Chen & Nick Cheng
  91. ** 1. modify arcmsr_drain_donequeue() to ignore unknown
  92. ** command and let kernel process command timeout.
  93. ** This could handle IO request violating max. segments
  94. ** while Linux XFS over DM-CRYPT.
  95. ** Thanks to Milan Broz's comments <mbroz@redhat.com>
  96. ** 1.20.00.15 12/24/2007 Erich Chen & Nick Cheng
  97. ** 1.fix the portability problems
  98. ** 2.fix type B where we should _not_ iounmap() acb->pmu;
  99. ** it's not ioremapped.
  100. ** 3.add return -ENOMEM if ioremap() fails
  101. ** 4.transfer IS_SG64_ADDR w/ cpu_to_le32()
  102. ** in arcmsr_build_ccb
  103. ** 5. modify acb->devstate[i][j] as ARECA_RAID_GONE instead of
  104. ** ARECA_RAID_GOOD in arcmsr_alloc_ccb_pool()
  105. ** 6.fix arcmsr_cdb->Context as (unsigned long)arcmsr_cdb
  106. ** 7.add the checking state of
  107. ** (outbound_intstatus & ARCMSR_MU_OUTBOUND_HANDLE_INT) == 0
  108. ** in arcmsr_handle_hba_isr
  109. ** 8.replace pci_alloc_consistent()/pci_free_consistent() with kmalloc()/kfree() in arcmsr_iop_message_xfer()
  110. ** 9. fix the release of dma memory for type B in arcmsr_free_ccb_pool()
  111. ** 10.fix the arcmsr_polling_hbb_ccbdone()
  112. ** 1.20.00.15 02/27/2008 Erich Chen & Nick Cheng
  113. ** 1.arcmsr_iop_message_xfer() is called from atomic context under the
  114. ** queuecommand scsi_host_template handler. James Bottomley pointed out
  115. ** that the current GFP_KERNEL|GFP_DMA flags are wrong: firstly we are in
  116. ** atomic context, secondly this memory is not used for DMA.
  117. ** Also removed some unneeded casts. Thanks to Daniel Drake <dsd@gentoo.org>
  118. **************************************************************************