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