2004-06-13  Marek Michalkiewicz  <marekm@amelek.gda.pl>

       * parport_serial.c: Move from here to ../char/, must be initialised
       after serial.c for register_serial to work.

2002-11-29  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c: Fix ECP hang on Aladdin card.

	2001-10-11  Tim Waugh  <twaugh@redhat.com>
	* parport_pc.c, parport_serial.c: Support for NetMos cards.
	Patch originally from Michael Reinelt <reinelt@eunet.at>.

2002-04-25  Tim Waugh  <twaugh@redhat.com>

	* parport_serial.c, parport_pc.c: Move some SIIG cards around.
	Patch from Andrey Panin.

2001-12-07  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_pc_pci_probe): Hooks for PCI cards before
	and after probing for ports.
	* parport_serial.c (parport_register): Likewise.

2002-01-20  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_pc_compat_write_block_pio,
	parport_pc_ecp_write_block_pio, parport_pc_ecp_read_block_pio):
	Use the default implementations if the caller wants to use
	O_NONBLOCK.

2002-01-21  Tim Waugh  <twaugh@redhat.com>

	* daisy.c: Apply patch from Max Vorobiev to make parport_daisy_select
	work for ECP/EPP modes.

2002-02-25  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c: Make sure that priv->ctr_writable includes IntEn
	even if IRQ is given as a parameter.

2002-01-13  Niels Kristian Bech Jensen  <nkbj@image.dk>

	* parport_pc.c: Change some occurrences of frob_set_mode to
	ECR_WRITE.  This fixes PLIP.

2002-01-04  Tim Waugh  <twaugh@redhat.com>

	* share.c (parport_claim_or_block): Sleep interruptibly to prevent
	a possible deadlock.

2001-12-07  Damian Gruszka  <damian.gruszka@VisionSystems.de>

	* parport_pc.c (ECR_WRITE): Define.  If there are forbidden bits
	in the ECR register for some chips, this will be a useful place to
	put that knowledge.
	(change_mode): Use ECR_WRITE.
	(parport_pc_restore_state): Likewise.
	(parport_ECPPS2_supported): Likewise.
	(parport_ECPEPP_supported): Likewise.
	(irq_probe_EPP): Likewise.
	(programmable_irq_support): Likewise.
	(programmable_dma_support): Likewise.
	(parport_pc_probe_port): Likewise.

	(frob_set_mode): New function.  Set the mode bits of the ECR.
	(get_fifo_residue): Use frob_set_mode.
	(parport_pc_ecpepp_read_data): Likewise.
	(parport_pc_ecpepp_write_data): Likewise.
	(parport_pc_ecpepp_read_addr): Likewise.
	(parport_pc_ecpepp_write_addr): Likewise.
	(parport_pc_compat_write_block_pio): Likewise.
	(parport_pc_ecp_write_block_pio): Likewise.
	(parport_ECR_present): Likewise.
	(parport_ECP_supported): Likewise.
	(parport_EPP_supported): Likewise.
	(parport_ECPEPP_supported): Likewise.
	(programmable_irq_support): Likewise.
	(irq_probe_ECP): Likewise.
	(programmable_dma_support): Likewise.

	(parport_pc_enable_irq): Only enable interrupts if we know which
	IRQ line they will come from.
	(parport_pc_init_state): Set nErrIntrEn at initialisation.
	(parport_pc_restore_state): Only write writable bits of CTR.
	(parport_irq_probe): If no IRQ is found, take ackIntEn out of the
	writable bit set.

2001-12-07  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_pc_fifo_write_block_pio): Correct typo.
	(parport_pc_init_state): Only set ackIntEn if we know which IRQ
	line the interrupts will come from.

2001-12-07  Tim Waugh  <twaugh@redhat.com>

	* ieee1284_ops.c (parport_ieee1284_epp_write_addr,
	parport_ieee1284_epp_read_addr): Actually do something useful.

2001-12-07  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (dmaval): Don't use DMA by default.  It seems to be
	too buggy at the moment.  Use 'dma=auto' to restore the previous
	behaviour.

2001-12-03  Rich Liu  <Rich.Liu@ite.com.tw>

	* parport_pc.c (sio_ite_8872_probe): ITE8873 is a single-port
	serial board, not a serial+parallel.

2001-11-30  Niels Kristian Bech Jensen  <nkbj@image.dk>

	* parport_pc.c: Fix compiler warning.

2001-12-07  Tim Waugh  <twaugh@redhat.com>

	* daisy.c (DEBUG): Undefine.

2001-12-06  Tim Waugh  <twaugh@redhat.com>

	* ieee1284_ops.c (parport_ieee1284_ecp_read_data): Mask off
	PARPORT_CONTROL_AUTOFD as well.  Bug spotted by Joe
	<joeja@mindspring.com>.

2001-11-12  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (init_module): Warn when parameters are ignored.

2001-11-01  Damian Gruszka  <damian.gruszka@VisionSystems.de>

	* parport_serial.c (serial_register): Set base_baud before
	calling register_serial.

2001-10-26  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_irq_probe): When ECR programmable IRQ
	support fails, generate interrupts using the FIFO even if we don't
	want to use the FIFO for real data transfers.
	(parport_pc_probe_port): Display the ECR address if we have an
	ECR, not just if we will use the FIFO.

2001-10-24  Dave Strauss  <D.Strauss@motorola.com>

	* parport_pc.c (parport_pc_compat_write_block_pio,
	parport_pc_ecp_write_block_pio): Allow a few seconds for an ECP
	transfer to finish up.

2001-10-11  Tim Waugh  <twaugh@redhat.com>

	* parport_pc (sio_ite_8872_probe): New function, submitted by Rich
	Liu from ITE.  Cleaned up, removed bogus phys_to_virt calls.

2001-10-24  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c: Support for AKS AladdinCARD.  Patch from
	Aladdin Knowledge Systems (Christian Groessler).

2001-10-24  Tim Waugh  <twaugh@redhat.com>
	
	* ieee1284_ops.c (parport_ieee1284_ecp_read_data): Try to minimise
	turnaround time.

	* ieee1284.c (parport_poll_peripheral): Try a couple of times
	first without delaying.

2001-10-10  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c: Support for OX16PCI954 PCI card.

2001-10-10  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c: Support for OX12PCI840 PCI card (reported by
	mk@daveg.com).  Lock-ups diagnosed by Ronnie Arosa (and now we
	just don't trust its ECR).

2001-10-10  Gunther Mayer  <gunther.mayer@braunschweig.okersurf.de>

	* parport_pc.c: Support for AVLAB cards.

2001-10-10  Tim Waugh  <twaugh@redhat.com>

	* ieee1284_ops.c (ecp_forward_to_reverse, ecp_reverse_to_forward):
	Remember to retry direction switch if it fails.  Patch from David
	Lambert.

2001-10-08  David C. Hansen  <haveblue@us.ibm.com>

	* share.c: Make driverlist_lock and parportlist_lock static.

2001-10-08  Philip Blundell  <philb@gnu.org>

	* parport_pc.c: New modular parameter verbose_logging.
	Make port->modes indicate the modes that we are prepared to use,
	rather than the modes that are available.

2001-10-07  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_pc_probe_port): Fix memory leak spotted by
	Kipp Cannon.

2001-10-07  Tim Waugh  <twaugh@redhat.com>

	* parport_serial.c: Remove NetMos support, since it causes problems
	for some people.

2001-08-30  Tim Waugh  <twaugh@redhat.com>

	* parport_serial.c (parport_serial_pci_probe): Clean-up on partial
	registration failure.

2001-08-14  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_pc_init_superio): Allow for more than one
	SuperIO device.  Patch from Rich Lio (ITE).

2001-08-11  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c: Support for Titan Electronics cards.

2001-08-08  Tim Waugh  <twaugh@redhat.com>

	* share.c (parport_unregister_device): Remove device from wait list
	too.

2001-06-20  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c: Make 'io_hi=0' work.

2001-05-31  Tim Waugh  <twaugh@redhat.com>

	* parport_serial.c: New file.

2001-06-05  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_pc_unregister_port): New exported function.
	Do the opposite of parport_pc_probe_port.
	(cleanup_module): Use it.

2001-05-22  Juan Quintela  <quintela@mandrakesoft.com>

	* parport_amiga.c: Set printk levels.
	* parport_gsc.c: Likewise.
	* parport_mfc3.c: Likewise.
	* parport_pc.c: Likewise.
	* parport_sunbpp.c: Likewise.
	* probe.c: Likewise.
	* share.c: Likewise.

2001-05-10  Fred Barnes  <frmb2@ukc.ac.uk>

       * parport_pc.c (parport_pc_epp_read_data): added support for
       reading from a w91284pic peripheral, flag is PARPORT_W91284PIC.

2001-05-07  Fred Barnes  <frmb2@ukc.ac.uk>
 
 	* parport_pc.c (parport_pc_epp_read_data,
	parport_pc_epp_write_data, parport_pc_epp_read_addr,
	parport_pc_epp_write_addr): support for fast reads/writes using
	the PARPORT_EPP_FAST flag.
 
 	* ieee1284.c (parport_read, parport_write): added code to handle
	software EPP mode (IEEE1284_MODE_EPPSWE).  Added code to allow
	BYTE mode reverse transfers (previously always went for NIBBLE
	mode).
 
 	* ieee1284_ops.c (parport_ieee1284_epp_read_data,
	parport_ieee1284_epp_write_data): fixed various polarity problems.
	Also (theoretically) fixed address versions (.._addr), but no
	hardware to test this on.
 
 	* parport_pc.h: added parport_dump_state() function for debugging.
 	Needs to have DEBUG_PARPORT to be defined for it to be included.
 
2001-05-03  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c: Fix the compile problem I introduce from the last
	change.

2001-04-20  Paul Gortmaker  <p_gortmaker@yahoo.com>

	* parport_pc.c: Cut down the size quite a bit (more than 4k off
	the object, about 1k off the zImage) for the older non-PCI
	machines which are typically resource starved anyway...

2001-03-26  R Horn  <rjh@world.std.com>

	* parport_pc.c: Some commentary changes.

2001-04-19  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_pc_probe_port): Remove __devinit
	attribute.  Export unconditionally.

2001-04-14  Jeff Garzik  <jgarzik@pobox.com>

	Merged:  2001-03-30  Tim Waugh  <twaugh@redhat.com>

        * drivers/parport/parport_pc.c: Make Via SuperIO chipsets behave
        like everything else with respect to irq= and dma= parameters.

2001-04-08  Tim Waugh  <twaugh@redhat.com>

      * parport_pc.c (parport_pc_save_state): Read from the soft copy of
      the control port.
      (parport_pc_restore_state): Update the soft copy of the control
      port.

2001-03-26  Tim Waugh  <twaugh@redhat.com>

	* share.c (parport_find_number, parport_find_base): Trigger
	a lowlevel driver load if there are no ports yet.

2001-03-26  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_ECP_supported): Remove the IRQ conflict
	check since it seems totally unreliable.

2001-03-02  Tim Waugh  <twaugh@redhat.com>

	* ieee1284_ops.c (parport_ieee1284_read_nibble): Reset nAutoFd
	on timeout.  Matches 2.2.x behaviour.

2001-03-02  Andrew Morton <andrewm@uow.edu.au>

	* parport_pc.c (registered_parport): New static variable.
	(parport_pc_find_ports): Set it when we register PCI driver.
	(init_module): Unregister PCI driver if necessary when we
	fail.

2001-03-02  Tim Waugh  <twaugh@redhat.com>

	* ieee1284_ops.c (parport_ieee1284_write_compat): Don't use
	down_trylock to reset the IRQ count.  Don't even use sema_init,
	because it's not even necessary to reset the count.  I can't
	remember why we ever did.

2001-01-04  Peter Osterlund  <peter.osterlund@mailbox.swipnet.se>

	* ieee1284.c (parport_negotiate): Fix missing printk argument.

2001-01-03  Paul Schleger  <Paul.Schleger@t-online.de>

	* probe.c (parse_data): Get rid of trailing blanks in values.
	Needed for XEROX XJ8C printer.

2001-01-03  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_pc_probe_port): Say something when probes
	are omitted.

2001-01-03  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (sio_via_686a_probe): Correct dma=255 fix.

2000-11-21  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_pc_ecp_write_block_pio): Fix
	reverse-to-forward logic.  Spotted by Roland Kuck
	<rci@cityweb.de>.

2000-09-16  Cesar Eduardo Barros  <cesarb@nitnet.com.br>

	* parport_pc.c (sio_via_686a_probe): Handle case
	where hardware returns 255 for IRQ or DMA.

2000-07-20  Eddie C. Dost  <ecd@skynet.be>

	* share.c (attach_driver_chain): attach[i](port) needs to be
	replaced by attach[count](port).

2000-07-20  Eddie C. Dost  <ecd@skynet.be>

	* daisy.c (add_dev): kmalloc args are in wrong order.

2000-07-12  Tim Waugh  <twaugh@redhat.com>

	* share.c: Documentation for parport_{get,port}_port,
	parport_find_{number,base}.

2000-07-12  Tim Waugh  <twaugh@redhat.com>

	* share.c (parport_unregister_device): Remove unneeded locking
	(test cad==dev).
	(parport_claim): Likewise.
	(parport_find_number): New function.

2000-07-12  Tim Waugh  <twaugh@redhat.com>

	* share.c (parport_register_port): Hold the parportlist_lock while
	looking for a free parport number.
	(parport_register_driver): Make sure that attach can block.
	(attach_driver_chain): Likewise.

2000-07-12  Tim Waugh  <twaugh@redhat.com>

	* share.c (call_driver_chain): Do reference counting things.
	(parport_get_port): New function.
	(parport_put_port): New function.
	(parport_register_port): Initialise reference count to zero.
	(parport_unregister_port): Check reference count rather than
	driver list to see if we can free the port.

2000-07-12  Tim Waugh  <twaugh@redhat.com>

	* share.c: Clarifications in doc comments.

2000-07-12  Tim Waugh  <twaugh@redhat.com>

	* share.c (parport_unregister_port): Fix typo in comment.

2000-07-11  Gunther Mayer  <gunther.mayer@braunschweig.okersurf.de>

	* parport_pc.c: Support for the full range of Timedia cards.

2000-07-08  Tim Waugh  <twaugh@redhat.com>

	* daisy.c: License block comments as part of parportbook.
	* ieee1284.c: Likewise.
	* share.c: Likewise.

2000-06-30  Petr Vandrovec  <vandrove@vc.cvut.cz>

	* procfs.c (do_hardware_modes): Generated string can be up to 34
	chars long.

2000-06-20  Gunther Mayer  <gunther.mayer@braunschweig.okersurf.de>

	* parport_pc.c (parport_pc_compat_write_block_pio): Warn about
	change_mode failures.
	(parport_pc_ecp_write_block_pio): Likewise.
	(parport_pc_ecp_read_block_pio): Likewise.

2000-06-20  Gunther Mayer  <gunther.mayer@braunschweig.okersurf.de>

	* parport_pc.c (parport_SPP_supported): Warn more about possibly
	incorrect parameters.

2000-06-15  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_ECP_supported): Set PARPORT_MODE_COMPAT
	for ECP ports, since they can all do hardware accelerated
	compatibility mode (I assume).

2000-06-13  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (cleanup_module): Remark about possible bugs.

2000-06-13  Tim Waugh  <twaugh@redhat.com>

	* procfs.c: Break 'hardware' out into separate files.

2000-05-28  Gunther Mayer  <gunther.mayer@braunschweig.okersurf.de>

	* Fix PCI ID printk for non-superio PCI cards.

2000-05-28  Tim Waugh  <twaugh@redhat.com>

	* share.c (call_driver_chain): Get the driverlist_lock.
	(parport_register_device): Make sure that port->devices always
	looks consistent.
	(parport_register_driver): Ensure that parport drivers are given
	parameters that are valid for the duration of the callback by
	locking the portlist against changes.
	(parport_unregister_driver): Likewise.
	(parport_claim): Don't overwrite flags.

2000-05-28  Tim Waugh  <twaugh@redhat.com>

	* daisy.c (assign_addrs): Avoid double-probing daisy-chain devices
	if the first probe succeeds.

2000-05-16  Tim Waugh  <twaugh@redhat.com>

	* share.c (parport_claim): Fix SMP race.

2000-05-15  Gunther Mayer  <gunther.mayer@braunschweig.okersurf.de>

	* parport_pc.c (parport_pc_compat_write_block_pio): Check for
	timeouts.
	(parport_pc_ecp_write_block_pio): Likewise.
	(parport_pc_ecp_read_block_pio): Likewise.

2000-05-02  Gunther Mayer  <gunther.mayer@braunschweig.okersurf.de>

	* parport_pc.c: PCI SYBA patch and verbose PCI detection.

2000-05-02  Gunther Mayer  <gunther.mayer@braunschweig.okersurf.de>

	* parport_pc.c (decode_smsc): Fix SMSC 665/666 identification.

2000-04-28  Tim Waugh  <twaugh@redhat.com>

	* ieee1284.c: Short function descriptions can't be multiline.

	* daisy.c: Short function descriptions can't be multiline.

2000-04-19  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_pc_fifo_write_block_dma): Make maxlen
	calculation a bit clearer.

	* ieee1284.c (parport_negotiate): Turn on data line drivers.

	* ieee1284_ops.c (parport_ieee1284_read_byte): Turn off data line
	drivers.
	(parport_ieee1284_write_compat): Turn on data line drivers.

	* daisy.c (assign_addrs): Turn on data line drivers.
	(cpp_mux): Likewise.
	(cpp_daisy): Likewise.

2000-04-04  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c: Add support for another PCI card.

2000-04-04  Tim Waugh  <twaugh@redhat.com>

	* daisy.c: Documentation in kernel-doc format.

	* ieee1284.c: Likewise.

	* share.c: Likewise.

2000-04-01  Tim Waugh  <twaugh@redhat.com>

	* share.c (parport_register_device): Need to hold the module
	reference counts before sleeping.

2000-03-27  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_pc_ecp_read_block_pio): Correct operation
	when peripheral is trying to send data when we stop listening.

2000-03-22  Tim Waugh  <twaugh@redhat.com>

	* init.c (parport_setup): Fix return value.

2000-03-21  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_pc_pci_probe): Fix return value; call
	pci_enable_device.

2000-03-16  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_ECP_supported): This seems to trigger on
	machines that don't have an IRQ conflict; toned down the warning
	message accordingly.

2000-03-16  Gunther Mayer  <gunther.mayer@braunschweig.netsurf.de>

	* parport_pc.c (show_parconfig_smsc37c669): Fix typo.
	(decode_winbond): More IDs.
	(winbond_check): Protect against false positives.
	(winbond_check2): Likewise.
	(smsc_check): Likewise.

2000-03-15  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (cleanup_module): Don't call pci_unregister_driver
	if we didn't call pci_register_driver first.

2000-03-13  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (parport_pc_init): Moved from asm/parport.h.

	* Config.in: CONFIG_PARPORT_PC_SUPERIO: new option.

	* parport_pc.c (show_parconfig_smsc37c669): Make __devinit.
	(show_parconfig_winbond): Likewise.
	(decode_winbond): Likewise.
	(decode_smsc): Likewise.
	(winbond_check): Likewise.
	(winbond_check2): Likewise.
	(smsc_check): Likewise.
	(detect_and_report_winbond): Likewise.
	(detect_and_report_smsc): Likewise.
	(get_superio_dma): Likewise.
	(get_superio_irq): Likewise.
	(parport_pc_find_isa_ports): New function.
	(parport_pc_find_ports): New function.
	(init_module): Make superio a config option, not a parameter.

2000-03-10  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c (decode_winbond): Use correct 83877ATF chip ID.
	(decode_winbond): Fix typo.

2000-03-09  Tim Waugh  <twaugh@redhat.com>

	* parport_pc.c: Integrate SuperIO PCI probe with normal PCI card
	probe, so that the MODULE_DEVICE_TABLE is complete.

