Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

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