/* * idr_changes.h * changes and identification macro module for Linux 2.6.x * driver for PCI DR11-W boards * * Tahoma Technology * (formerly Ikon Corporation) * 107 2nd Avenue North * Seattle, WA, USA 98109 * * 206.728.6465 * http://www.tahomatech.com * tahoma@tahomatech.com * * This code released under the GPL, and in the public domain * References to IKON left in place for compatibility and historical reasons * * Please send us code modifications and BUG reports */ #ifndef IDR_CHANGES_H #define IDR_CHANGES_H #ifdef MODULE_DESCRIPTION MODULE_DESCRIPTION("Tahoma Technology (formerly Ikon Corporation) Pci DR11-W Driver - 2008.08.31 16:28"); #endif #ifdef MODULE_AUTHOR MODULE_AUTHOR("Tahoma Technology (formerly Ikon Corporation) http://www.tahomatech.com"); #endif #ifdef MODULE_LICENSE MODULE_LICENSE("GPL"); #endif /* * TODO: * * go to cdev-style device registration, eventually go * to hotplug support * * date: 2008.08.31 files: idr_driver.c, idr_var.h * * unregister_chrdev always returned 0 and as of 2.6.23 is * void so don't check return value * * as of 2.6.24 new scatterlist access functions to allow * for scatterlist (page) chaining - so add version test * and macro for setting scatterlist entries * * we're not implementing chaining - if user really wants * more than a page of scatterlist we will ask kmalloc * for it and not use chaining (let kmalloc fail if not * sufficient contig memory) * * date: 2006.11.13 files: idr_var.h, idr_driver.c * * add butt-ugly version check code to deal with new irq * handler prototype (since kernel devs won't add flag) and * find UTS_RELEASE in utsrelease.h and put it back in debug * print * * date: 2006.10.30 files: all * * fix bonehead #ifndef wrappers on all include files that * only wrapped the #define, not the file ! * * new flags for request_irq() w/back up defines for older kernels * * rename our homemade mutexes to fix collision w/new kernel ones * * use compat and unlocked ioctl entries for mixed 32/64 systems * * drop unused pt_regs arg in int handler (per 2.6.19-rcx kernels) * w/back up define for older kernels * * protect open() from unlikely race * * date: 2005.10.31+ files: all * * Gather all change and date related comments and macros here. * Hopefully there will be fewer tracking errors. * * date: 2005.10.31 files: all * * change pci board id to id list to support both board types * * changes to keep up w/kernel drift: * pci_dma_sync_single --> pci_dma_sync_single_for_device * pci_find_device --> pci_get_device (and pci_put_device) * * general code clean-up and comment compaction * some macros moved from _var.h to _reg.h to try to group * hardware and software macros appropriately * * new log print macros * * convert ioctl *arg to u32 so size is the same for * 32 and 64 bit operation * * use __u32 instead of int in ioctl defines to make sure * size is 32 bits. #include to pick up type * for user apps. * * date: 2005.10.05 files: install * * changed MAX_BOARDS default from 1 to 4 now that we check * /proc/interrupts for actual boards atached * * put owner, group and permission seting inside node creation * loop so we can't change someone else's nodes by mistake * * date: 2004.10.08 files: .c * * added owner to file_operations struct * added pci_disable_device to unload code * * date: 2005.02.04 files: .c, .h * * major modifications for 2.6 kernel * * kiobuf functionality brought inside driver to allow mapping * and pinning user buffer pages - since no longer supported * directly in kernel * * reorganized some code into helper functions * * date: 2002.08.01 files: all * * added tests to autodetect some options * * corrected use of kiobuf maplist to generate scatterlist to allow for * highmem enabled machines (up to 4G) * * added kernel copy buffer for case where machine is and kernel * are highmem, but kernel does not have new scatterlist capability * in this case, we will allocate a copy buffer at init time, and * stuff the kiobuf with its pages * * changed max_phys to orders for allocation efficiency in case of * copy buf * * include slab.h instead of malloc.h * * moved iopb and adma max size from idr_var.h to idr_reg.h * * moved conditional variables and mutex stuct defines to _var.h * from ikon_mutex.h * * deleted MODINFOBANNER - replaced with module ID macros * * date: 2001.06.18 files: .c * * move pci_enable_device() prior to device resource accesses to try to * keep non-x86 architectures happy * * date: 2000.11.20 files: install * * added -x test to load script line in rc.local * * date: 2000.08.30 files: .c * * use readl and writel rather than direct dereference (for non x86 * architectures) this change in idr_reg.h * SA_SHIRQ rather than SA_INTERRUPT to allow sharing and int code * interruption * use time_before() when delaying to avoid jiffies wrap * add pci_enable_device() * * date: 2000.03.24 files: all * * incorporated kiobuf mechanism for dma to/from user buffers * to replace dma copy buffer used in older versions * separated int level read from board and one read from * pci_dev (so we can use the hardware level to restore * board after en eeprom reload * incorporated modified version of Kaz Kylheku's mutex stuff * for SMP * added IOPB macros to gather things in one place in case we * need to do byte swizzling some time * convert all IPLS accesses to PLX accesses - doing accesses via the * idr space may have been allowing pre-fetch from plx registers * disable address space 0 pre-fetch * make int/cstat read in intr volatile * add a dummy read when input fifo or output fifo directly accessed * needed a few 100ns to allow fifo op to complete, especially in box * w/write posting buffers * start DMA in two steps to avoid PLX bug * pause DMA after sleep in strategy - looping a while if not done * * date: 2000.03.13 files: all * * started working w/2.3.x * new pci_dev definition required changes in the way we get * base addresses * changed file_ops struct initialization to use named fields * changed wait_queue type and added initialization * * date: 1999.11.11 files: all * * change the way we do config load of PLX chip to avoid * possible future panic if we run into a bridge chip * with a short pci timer * * date: 1999.10.14 files: all * * re-code for linux 2.2 * this version no longer compatible with earlier linux revs * * date: 1999.02.22 files: all * * start of development - initial target Linux 2.0.35 (R.H. 5.1) */ #endif /* IDR_CHANGES_H */