; $URL: http://subversion:8080/svn/gsc/trunk/drivers/LINUX/16AO12/16AO12_Linux_3.x.x.x.x_GSC_DN/doc/release.txt $
; $Rev: 52801 $
; $Date: 2023-04-06 16:57:47 -0500 (Thu, 06 Apr 2023) $

16AO12: Linux Driver Release Notes

Revision History
================

--------------------------------------------------------------------------------

Version 4.2.104.47.0, Released 4/6/2023

driver: Updated to support the 6.x series kernel.
driver: Updated comments for consistency.
driver: Updated macros for consistency.
driver: Updated the Initialize IOCTL service for consistency.
driver: Updated the Autocalibration service for consistency.
driver: Enhanced the Buffer Clear IOCTL service for consistency.
driver: Updated per PLX code segregation.
driver: Added RX DEBUG capabilities.
driver: Removed unintended debug output statements.
driver: Renamed gsc_irq_reset_pci to gsc_irq_cpi_reset for consistency.
driver: Segregated additional PLX specific code.
driver: Updated system message to begin with the driver module name.
driver: Began implementation for MSI support.
driver: Segregated all PLX specific code to accommodate alternate device implementations.
driver: Added global driver unloading flag.
driver: Added "unloading" message when unload service is called.
driver: Updated for changes after the 5.17.15 kernel.
driver: Updated to support the 6.x kernel.
driver: Updated some comments for consistency.
driver: White space cleanup.
driver: Updated for changes to Red Hat Enterprise Linux 8.6.
driver: Added the os_irq_t.created field.
driver: Updated os_irq_create, destroy, open and close services.
driver: Removed unused debugging messages.
driver: Began implementing MSI support.
driver: Added macro DEV_IRQ_SHOW to report assigned IRQ assigned to device.
driver: Removed unused macros.
driver: Updated for the 5.14 kernel.

--------------------------------------------------------------------------------

Version 4.1.97.38.0, Released 2/24/2022

driver: Added support for the 5.x kernel series.
driver: Removed compiler warnings for Fedora 31.
driver: Updated for porting to Windows.
driver: Standardized various IOCTL system log messages.
driver: Standardized processing of the initialization IOCTL service.
driver: Standardized processing of the autocalibration IOCTL service.
driver: LINTed sources.
driver: Updated comments for consistency.
driver: Updated debugging display output.
driver: Added temporary experimental write code in gsc_write.c for performance testing.
driver: The code is partially retained but is not included for compilation.
driver: Fixed a DMA bug relating to the use of a timeout setting of zero.
driver: Corrected endian error message.
driver: Fixed a timeout bug in gsc_write_pio_work_32_bit().
driver: Updated IRQ code for improved clarity and modularity.
driver: Updated DMA code to support multiple DMA implementations.
driver: Removed I/O debug code.
driver: Removed compiler warnings under Windows.
driver: Fixed a IOCTL bug in which alt->sem wasn't being unlocked.
driver: Increased modularization for porting effort to another OS.
driver: Made DMA code more modular.
driver: Fixed 9060 Endian support bug.
driver: Added support for Big Endian hosts.
driver: Updated per OS specific DMA memory allocation interface.
driver: Made spelling corrections in version notes.
driver: Changed all printk instances to printf to support porting activities.
driver: Expanded files removed for a clean operation.
driver: Updated to support the 5.9 kernel.
driver: Modified os_common.h so application code compiles under Cygwin.
driver: Reduced the minimum tick sleep from 1 to 0 ticks.
driver: Modified debug specific register access code to enhance usage.
driver: Improved Red Hat Enterprise Linux 8.x detection logic.
driver: Added support under the 4.x kernel for Red Hat Enterprise Linux 8.x.
driver: Added validation checking of the interrupt number in os_irq_open().
driver: Updated the /proc/ code for changes in the 5.6.6 kernel.
driver: Updated memory code for improved clarity and modularity.
driver: Code cleanup in open service.
driver: Fixed open bug applicable to multi-board devices.
driver: Made mods to accommodate porting to another OS.
driver: Added DMA support for an IOMMU.
driver: Added error reporting when DMA memory could not be allocated.
driver: Reduced code included when read and write are both unsupported.
driver: Added error reporting when IRQ could not be acquired during open requests.
driver: Some minor code reorganization.

--------------------------------------------------------------------------------

Version 4.0.85.27.0, Released 5/22/2019

driver: Bug fix: was ignoring BAR setup return value.
driver: Updated per changes to the OS specific PCI services.
driver: Made updates for DEV_SUPPORTS_XXX macro changes.
driver: Modified code so open succeeds even if initialization fails.
driver: Renamed most 16AO12 specific macros for consistency with other drivers.
driver: Fixed bug in gsc_dma_perform(): timeouts were being ignored.
driver: Fixed bug in gsc_dma_perform(): the timeout detection logic was incorrect.
driver: Improved register validation.
driver: Subsystem Vendor ID and Subsystem ID can each be ignored if -1 in device table.
driver: #define for GSC_REG_ENCODE_MASK is moved here from gsc_reg.c.
driver: Enhanced error reporting for the process of validating register definitions.
driver: Fixed bug in DMA completion code.
driver: Updated initialization for the write service.
driver: Updated muti-channel ISR code for new I/O streams structure.
driver: DEV_WAIT_IO_ALL is now required if WAIT is supported along with READ or WRITE
driver: I/O WAIT macros are now defined by the device API and are passed to GSC code in dev_io_t.
driver: Updated Block Mode DMA macro name (_DMA to _BMDMA).
driver: Added I/O, DMA and register access debug code.
driver: Added stream selection field in the "size" argument for the read and writecalls.
driver: Added OS IRQ calls: os_irq_create() and os_irq_destroy()
driver: Renamed field in gsc_irq_t for clarity.
driver: Fixed a bug in which wait list node removal didn't always have the list locked.
driver: Added support for some DMA metrics.
driver: Improved IOCTL argument validation.
driver: Moved a typedef to device specific code.
driver: Udated some utility services: applying a setting, end by reading it back
driver: Updated for support of some drivers under older kernels.
driver: Updated #include files for consistancy.
driver: Fixed a DMA timeout calculation bug.
driver: Updated to accommodate porting to Windows KMDF.
driver: Updated per changes to the low level register interface.
driver: Updated the driver initialization logic.
driver: Updated IOCTL init and reset code.
driver: Added support to exclude the WAIT feature.
driver: Updated macros to include/exclude IRQ support.
driver: Fixed bug in init code where last PCI device is one of ours.
driver: Updated BAR creation logic.
driver: Implemented support for a stream selection field in the I/O bytes argument.
driver: Implemented register access debug code.
driver: Implemented calls: os_irq_create() and os_irq_destroy()
driver: Field in gsc_irq_t renamed for clarity.
driver: Changed macro name for clarity.
driver: Updated to accomodate Fedora 27.
driver: Updated the low level register interface.

--------------------------------------------------------------------------------

Version 3.0.69.18.0, Released 12/15/2016

driver: Overhauled driver.

--------------------------------------------------------------------------------

Version 2.3.57.0, Released 10/17/2014

driver: Reduced #include list in driver interface header.
driver: Removed a lot of dead code.
driver: Ported to use common proc code.
driver: Additional LINTing.
driver: White space cleanup.

--------------------------------------------------------------------------------

Version 2.2.50.0, Released 11/15/2013

driver: Added the version number from the gsc_common sources.

--------------------------------------------------------------------------------

Version 2.1.0, Released 7/19/2012

driver: Updated for the 3.x kernel.
driver: Made correction for 2.4 and 2.2 kernel support.

--------------------------------------------------------------------------------

Version 2.0.0, Released 1/6/2012

driver: Modified driver start script to correct messages under Ubuntu.
driver: Ported to Fedora 15.
driver: Sized BAR regions per their size rather than hardcode.
driver: The /proc entry is deleted only after it is created.
driver: Removed "gsc" prefix from device name.
driver: Modified makefiles to correct messages under Ubuntu.

--------------------------------------------------------------------------------

Version 1.9.3, Released 4/18/2006

driver: Added ioctl to set the endian handling for PowerPC and other  big
		endian systems.

--------------------------------------------------------------------------------

Version 1.9.2, Released 2/24/2006

driver: Reordered some events to reduce chance of a race condition.

--------------------------------------------------------------------------------

Version 1.9.1, Released 2/24/2006

driver: Code cleanup.

--------------------------------------------------------------------------------

Version 1.9.0, Released 2/2/2006

driver: Updated support for 2.6 kernel.
driver: Standardized some calls to futher reduce race conditions.

--------------------------------------------------------------------------------

Version 1.8, Released 3/23/2005

driver: Fixed return from write operation to bytes written instead of zero.
driver: Rearranged write code to minimize chance of race condition.

--------------------------------------------------------------------------------

Version 1.7, Released 1/26/2005

driver: Fixed a bug where the first autocalibration after power-up would fail.
driver: Added support for buffer size of 131072.
driver: Fixed defines for virtual buffer sizes.
driver: Added wait for the hardware buffer to be less than 1/4 full before writing
		data. The application is still responsible for making sure the entire
		passed program buffer will fit in the hardware buffer.

--------------------------------------------------------------------------------

Version 1.6, Released 1/2/2005

driver: Fixed a DMA bug.

--------------------------------------------------------------------------------

Version 1.5, Released 1/19/2005

driver: Updated autocalibration code.
driver: Added message for debug log indicating if an interrupt is not handled.
driver: Updated interrupt handling.

--------------------------------------------------------------------------------

Version 1.4, Released 12/3/2004

driver: Added support for Linux kernel 2.6, including the FC2 kernel.
driver: Modified some IOCTL calls to be consistent with other drivers in the GSC family.
driver: Updated timeout handling.

--------------------------------------------------------------------------------

Version 1.3

driver: Fixed a bug causing autocal to timeout.

--------------------------------------------------------------------------------

Version 1.2

driver: Fixed compiler warnings on newer kernels.
driver: Removed "abort" from unexpected DMA clear routine

--------------------------------------------------------------------------------

Version 1.1

driver: Fixed DMA data copy.

--------------------------------------------------------------------------------

Version 1.0

driver: Initial release.

--------------------------------------------------------------------------------
