Linux GPIB Package Release Notes

3.2.09: Ported pcmcia support to 2.6.17 and later kernel api
(Gudjon I. Gudjonsson).
Fixed compilation on 2.6.19 aand 2.6.20 kernels.
Added support for Agilent 82357B usb-gpib adapter.
Fixed compile errors on sparc 64.

3.2.08: Fixed various bugs on 64 bit arches that crept into
version 3.2.07 (with help from Michael Ritzert).  Added "__init" and
"__exit" annotations to all of the module initialization and exit functions
which were missing them (Sam Bishop).  Fixed kbuild problems with 2.6.17
and some 2.6.16 kernels which can't cope  with multiple SUBDIRS. Made
flex-generated analyzer for config file reentrant.  Kernel modules are
installed to a slightly different location now.  Fixed possible kernel
crash when gpib_config attempts to take a board
offline after minor numbers for two online boards have been
rearranged in gpib.conf.  Fixed problems in tnt4882 driver
with improper deallocation of io resources after attempting to configure
a single pci-gpib board on multiple device files.  Made the ni_usb
driver print out the serial number for usb-gpib-hs boards instead
of dumping "unexpected bytes".  Fixed kernel panic after a
read or write using ni_usb driver is interrupted by a signal.
Fixed some cases where TACS or LACS were set erroneously in ibsta.

3.2.07: Added pci vendor ids removed from kernel 2.6.14 and
later.  Added fix for changes to class_device_create() in
kernel 2.6.15.  Added device id for NI pci-express gpib board.
Fixed byte-order problem on big-endian machines when checking
usb product id on 2.6.11 and newer kernels.  Made some
enhancements to ibtest.  Fixed some bogus timeouts with a
timeout of TNONE and usb adapters.  Added some support for
SPOLL bit in ibsta.  Added various fixes for using pcmcia drivers
with pcmciautils and kernels 2.6.13 and later.  Fixed name
of library for guile binding to libgpib-guile.  Added support
for proper reporting of the number of data bytes written
on writes that only partially complete.

3.2.06: Fixed gpib_config failures due to unintialized variable
causing a memory allocation failure (Bernhard Heibler). Fixed
TCL binding to ibrsv() (John Bradshaw).  Fixed race that could
cause accellerated reads to time out for Ines based boards.
Fixed bogus assertion of EOI with first byte written with
accellerated writes on Ines based boards.
Fixed section conflicts seen with some gcc versions during
compilation.  Added support for NI GPIB-USB-HS adapter.  Fixed
various bugs in ni_usb_gpib driver.  Fixed PCMCIA and udev
support under 2.6.13 and later kernels.  Added Iba7BitEOS
option to ibask(), to query if board supports 7 bit eos
comparisons (breaks binary compatibility with older releases
in the interface between library and kernel modules).  Fixed
crashes on interrupting a read with the agilent_82357a driver.
Added support for Quancom boards with cb7210 chip.  Fixed
unreliable parallel polling with tnt4882 in one-chip mode.
Random bug fixes.

3.2.05: One-line compile fix for ines driver when pcmcia
support is enabled (Robert Jordens).  Otherwise, identical
to 3.2.04.

3.2.04:  Fixed parallel poll timeout bug, fixed
slave_write_from_file.c example program, and
fixed bug in ibrdf() (Christopher Lang).  Fixed interrupt
polarity on Quancom board (Simon Zeller).  Added python
binding for ibtmo() (Sandro shannemann@gmail.com).
Added support for fifo on ISA boards
using Ines igpib chips.  Added support for
Agilent/HP 82341C/D boards (requires download of gpib_firmware
tarball).  Fixed USB timeouts on kernels 2.6.12 and later.
Fixed some problems with data holdoffs on TI 9914 based boards,
which could cause the loss of the first byte on reads in
certain circumstances.  Fixed problems with parallel and
serial polling on TI 9914 based boards when acting as devices.
This release includes changes to the ioctl driver interface
to support firmware uploads, thus drivers from 3.2.04 will not work
with gpib_config from earlier releases (and vice-versa).

3.2.03: Fixed compilation problems against 2.6.10 and later kernels,
due to removal of urb->timeout from kernel.  Added module device
tables for pci and isapnp boards, so they can be autoloaded by hotplug
daemon.  Added support for hardware fifos on Agilent 82350b.  Fixed
clearing of various ibsta status bits in the ni_usb_gpib driver,
and improved its error handling.
Fixed possibility of losing first byte of reads in certain cases
for tms9914 based boards.  Fixed some corner cases where module
use count was incremented/decremented incorrectly.

3.2.02: Some cleanups to automake files (Robert Jordens).
New drivers for Agilent 82357A (usb) and 82350B (pci).
Fixed problem in ni_usb_gpib driver with reads when the number of
bytes read is close to the size of the read buffer.  Added support
for udev.  Fixed problems that occurred when path to Linux
directory contained underscores.  Etc.

3.2.01: New driver for NI USB-B.  Fixed support for Measurement Computing
PCI-GPIB/1M (Marco Prevedelli).  Fixed inability to read/write after
receiving device clear when using tnt4882 fifos.  Fixed bogus rejection
of address 30 (Bryan Thomas).  Added PCI device ids for NI PXI-GPIB
and PMC-GPIB (Uwe Strempel).  Fixed allocation of ioports for ISA
Measurement Computing boards.  Fixed behaviour of DevClearList when passed
an empty addressList.  Interrupted reads now return the data that was
received before the interruption, for example by a timeout (based on patch
from Steve Holland).  Fixed interrupt polarity for Quancom board.

3.2.00: Port to 2.6.xx Linux kernels.

3.1.101: Fixed compilation against kernels with dynamic
HZ patch.  Fixed reporting of SRQI bit in ibsta for boards
that support it.  Fixed double-sending of bytes during
writes with cb7210, which could occur when operating as
slave.  Changes to libgpib_test so it can be run with
two boards on different computers.

3.1.100: Fixed kernel oops that would occur after module
removal with some Measurement Computing boards.  Fixed timeouts
which could occur with some instruments when asserting/releasing
the ATN line.  New functions for Python binding (John Ackermann).
Switched module building to use kernel's kbuild.

3.1.99: Fixed possible oops on module removal, while attempting to
kill auto serial poll thread.  Fixed various bugs in tnt4882
driver.  Random bugfixes.

3.1.98: Fixed possible failures to completely empty
input fifo suring reads with NI boards.  Fixed
brokenness when 'name' entry is left out for
boards in /etc/gpib.conf. Fixed bogus receptions
of END with Measurement Computing pci-gpib/300k.
Moved auto serial polling to a kernel thread instead
of using libpthread.  Random bugfixes.

3.1.97: Added support for Quancom PCIGPIB-1, and newer
revisions of Ines PCI boards.  Fixes for accelerated
Ines support.  Fixed interrupt enabling on older
NI at-gpib boards, which was broken recently.  Fixed
SMP deadlock in ni_nat4882_isa interface.  Fixed
meaningless status bits getting set for device
descriptors.  Worked around issues some distros seem to
have with EXPORT_SYMBOL_GPL().

3.1.96: Re-fixed compatibility with older 2.4 kernels.
Fixed race conditions for at-gpib boards with nat4882 chips.
Fixed iblines() for Measurement Computing
PCI boards.  Prebuilt documentation no longer gets rebuilt
during compile.  Added support for newer NI PCI boards
with tnt500x chips.  Fixes for TCL binding.  Fixed
creation of gpib group.  Boards are brought online
when gpib_config is run now, instead of being brought
online/offline when open count becomes nonzero/zero.
More gpib_config options.  Random bugfixes.

3.1.95: Replaced old makefiles using autoconf/automake.
Updates to Guile binding (from Stefan Jahn).  Fixed
linking problems with gpib_config on some systems.
Fixed compilation of Perl binding with Perl 5.8.
Gratuitous changing of dashes module names to
underscores.  Fixed compilation of TCL binding
against several TCL versions.  Fixed support of
NI AT-GPIB cards with older chipsets.  Fixed
ISAPNP support for AT-GPIB/TNT where board would
not be reactivated after first use.  Fixed
regression in 3.1.94 where bus errors occur due
to writing too soon after ATN is asserted/released.
Catch bus errors on writing command bytes.
Random bugfixes.

3.1.94: Added 'gpib_config' utility which now must be
run to configure drivers after loading, in order to
implement proper permission checking when configuring
hardware.  New Guile binding by Stefan Jahn.  New
Perl example programs by John Ackermann.  Added ibrda(),
ibwrta(), ibstop(), and ibln().  More documentation.
PowerPC compilation fixes.  New test code.  Random bugfixes.

3.1.93: Added ibwrti() and ibrdi() to Perl binding, fixed Perl
bindings for ibevent(), iblines(), ibrpp(), and ibrsp().
Added isapnp support for NI AT-GPIB/TNT.  Fixed
accelerated interface for NI ISA cards.  Added php binding from
Michel Billaud.  Backward-compatible updates to config file format.
New, docbook-based documentation (also online at
http://linux-gpib.sourceforge.net/doc/index.html).  Added ibist().
Fixed tnt4882 driver when monitoring EOI line with iblines().
Fixed board-level ibloc().  Added recognition of CPCI-GPIB board
to cb7210 driver (Sebastian Prassl).

3.1.92: Fixed compilation with PCMCIA support enabled.  No other
changes.

3.1.91: Fixed compilation of Perl and TCL bindings.  Added accelerated
support for Ines, NI, and Measurement Computing chips.  Added ibpct(),
PassControl(), ibrsc(), ibrdf(), and ibwrtf().  Reduced size of
massive dependency files which slowed down compilation.  Fixed use
of board index as a board descriptor.  ThreadIb*() fixes from Kentaro
Kitigawa.  Fixed setting of eos mode with ibdev().  Fixed RFD holdoff
problems on reads due to incompatibilities in chips.  Fixed brokeness
that happened after a timeout occurs.  Implemented IbcTIMING/IbaTIMING
in ibconfig()/ibask() so T1 delay can now be adjusted.

3.1.9: Added ability to specify pci boards by bus and slot int gpib.conf.
Fixed Ines PCMCIA support.  Fixed HP82335 support.  Fixed reporting of
errors on writes.  Added support for devfs.  Fixes for giving boards
secondary address.  Added event queue and implemented ibevent().  Fixed
running as bus master for Measurement Computing (Computer Boards) cards.
Fixed polarity of bus control lines (iblines()) for Measurement
Computing (Computer Boards) cards.  Random bugfixes.

3.1.8: Added a bunch of new (mostly untested) functions: ibbna(),
ibcmda(), ibconfig(), DevClear(), DevClearList(), SendSetup(),
AllSpoll(), EnableRemote(), EnableLocal(), FindLstn(), FindRQS(),
PPoll(), PPollConfig(), PPollUnconfig(), RecvRespMsg(), ReadStatusByte(),
Receive(), ReceiveSetup(), ResetSys(), Send(), SendDataBytes(),
SendList(), SendCmds(), SendIFC(), SendLLO(), SetRWLS(), TestSRQ(),
TestSys(), Trigger(), TriggerList(), WaitSRQ().
New (partially tested) HP82335 support, and a couple assorted bugfixes.

3.1.7: Added ibppc(), ibask(), ThreadIbsta(), ThreadIberr(), ThreadIbcnt().
Added autopolling support (can't be turned off yet).  Fixed ibtrg() and
ibclr(). ibwait() fixes.  New Perl bindings by Thomas Nisius.  Fixed
increment of use count for all modules so they can't be unloaded while
in use.  Fixes for operating boards when board is not system controller.
Various other bugfixes.

3.1.6: Made timeout for serial polls adjustable instead of being hard coded
to 100 msec.  Removed a couple more global variables.  Fixed some problems
with timeout values not being updated.  Added some missing includes of string.h.
Fixed setting of EOI on writes.  Fixed disabling of dma when dma channel is set
to zero after being nonzero.  Fixed ibtrg() and ibclr().  Fixed use of secondary
addressing and return value for ibloc().

3.1.5: Fixed some problems that showed up with pc2 boards not being able to
send command bytes.  Added device id for NI GPIB+ boards.  Fixed lockup on
write with dma enabled for pc2/2a boards.  Added options during 'make config'
for specifying whether you want pcmcia support, and enabling verbose debugging
spam to your kernel logs.  Added support for NI PCMCIA GPIB boards (probably
doesn't work yet).  Allows 'whiptail' to be used instead of 'dialog' for gui
during configuration.  Fixed locking in ioctl to make it safe for multiple
processes to access devices through the same interface board.

3.1.4: Added easier setup for python binding from Brian Donovan.
To compile/install the Python and Tcl bindings you must run 'make', 'make
install' in the appropriate subdirectory of the 'language' directory.  Enabled
isa-dma in pc2-gpib driver.  Fixes for ISA boards.  Fixed tcl binding
for ibdev().  Made devices opened with ibfind() default to sending EOI at end
of writes.

3.1.3: Fixed race in nec7210 read that could cause failure to receive last
byte on reads. Board-specific fixes for ines pci, ines pcmcia, and
cec/keithley pci support.

3.1.2: Same as 3.1.1 except with some annoying debugging messages turned off.

3.1.1: New format for config file, added ibdev() function. Conditionally
compiled gpib0 module now split into seperate modules for different board
families, and several shared modules. Got rid of many global variables, it is
now about 90% safe to run more than one board at once. Various bugfixes,
cleanups, and removal of non-essential cruft.  Breaks binary compatibity
between library and modules from earlier versions.

3.1.0: New driver architecture

3.0.1: Fixed installation of gpib0.o module.  Fixed driver module for use
	with kernels that use module versioning.  Got rid of all usage of pointers to
	store io addresses.

3.0.0: Completed first pass at port to 2.4 kernel, and cleaned up a lot of little things.
	Still needs a lot of work, but should have all the capabilities/limitations
	of version 2.05-alpha which it was based on.

