freebsd-skq/sys/dev
Joerg Wunsch 5f830ea2cd Make the Y-E Data PCMCIA floppy of the Toshiba Libretto work under
-current.  It doesn't work yet as stable as the 3.x/PAO version of the
driver does, however, i get occasional `FDC direction bit not set' and
other weird messages, but it basically works at least.

The old (defunct) #ifdef FDC_YE stuff has been eliminated completely
now, PCMCIA-FDC specific functions have been implemented differently
where needed.

Unfortunately, due to the fact that the traditional PeeCee FDC with
its funny non-contiguous register space (one register for WD1003
harddisk controllers is interleaved into the FDC register set), and
Peter's subsequent changes involving two different bus space handles
for normal FDCs, the changes required for the Y-E stuff are more
complex than i'd love them to be.  I've done my best to keep the logic
for normal FDCs intact.

Since the Y-E FDC seems to lose interrupts after a FDC reset
sometimes, i've also replaced the timeout logic in fd_turnoff() to
generate an artificial pseudo interrupt in case of a timeout while the
drive has still outstanding transfers waiting.  This avoids the total
starvation of the driver that could be observed with highly damaged
media under 3.x/PAO.  This part of the patch has been revied by bde
previously.

I've fixed a number of occasions where previous commits have been
missing the encapuslation of ISA DMA related functions inside
FDC_NODMA checks.

I've added one call to SET_BCDR() during preparation of the format
floppy operation.  Floppy formatting has been totally broken before in
3.x/PAO (garbage ID fields have been written to the medium, causing
`wrong cylinder' errors upon media reading).  This is just black
magic, i don't have the slightes idea _why_ this needs to be but just
copied over the hack that has been used by the PAO folks in the normal
read/write case anyway.

The entired device_busy() stuff seems to be pointless to me.  In any
case, i had to add device_unbusy() calls symmetrical to the
device_busy() calls, otherwise the PCMCIA floppy driver could never be
deactivated.  (As it used to be, it caused a `mark the device busier
and busier' situation.)  IMHO, all block device drivers should be
marked busy based on active buffers still waiting for the driver, so
the device_unbusy() calls should probably go to biodone().  Only one
other driver (whose name escapes me at the moment) uses device_busy()
calls at all, so i question the value of all this...

I think this entire `device busy' logic simply doesn't fit for PCMCIA
&al.  It cannot be the decision of some piece of kernel software to
declare a device `busy by now, you can't remove it', when the actual
physical power of removing it is the user pulling the card.  The
kernel simply has to cope with the removal, however busy the device
might have been by the time of the removal, period.  Perhaps a force
flag needs to be added?

Upon inserting the card a second time, i get:

WARNING: "fd" is usurping "fd"'s cdevsw[]
WARNING: "fd" is usurping "fd"'s bmaj

I suspect this is related to the XXX comment at the call to
cdevsw_add().  Does anybody know what the correct way is to cleanup
this?
2000-03-18 18:27:01 +00:00
..
advansys adv_pci.c: 2000-03-02 00:08:35 +00:00
aha Fix plug and play support: 2000-01-24 07:08:40 +00:00
ahb Remove #include "eisa.h" and #if NEISA > 0 2000-01-29 18:22:33 +00:00
aic Add support to aic for pccard attachments. Reports from testers have 2000-01-14 23:42:36 +00:00
aic7xxx Remove a diagnostic printf. 2000-02-16 18:41:00 +00:00
amd The error status for a scsi status error is "CAM_SCSI_STATUS_ERROR", not 0. 2000-01-14 03:39:30 +00:00
amr Increase the time we spend waiting for the controller to become ready to 2000-02-17 23:33:57 +00:00
an Fix an instance of rman_get_start() than should be rman_get_bushandle(). 2000-01-16 06:41:49 +00:00
ar Remove definition of the unimplemented "control" hook. 2000-01-21 01:39:40 +00:00
ata Cleanup sweep. 2000-03-13 12:27:11 +00:00
atkbdc - Add Support for the following PS/2 mice: 2000-03-18 15:21:40 +00:00
bktr The Leadtek Winfast TV2000 has one of the FM capable Tuners. Don't 2000-02-12 08:49:21 +00:00
buslogic Remove #include "eisa.h" and #if NEISA > 0 - this is guaranteed by config. 2000-01-29 14:27:26 +00:00
cardbus Sync to latest cardbusdevs file 1999-11-18 07:22:59 +00:00
ccd Remove #if NCCD > 0 - it's guaranteed to be true by config if ccd.c is 2000-01-29 14:29:56 +00:00
cs Remove NBPF conditionality of bpf calls in most of our network drivers. 1999-09-25 12:06:01 +00:00
cy Clean up some more loose ends.. 2000-01-23 11:50:43 +00:00
dc Teach the 'dc' driver how to pick up settings left over by the 2000-03-11 05:20:56 +00:00
de Include the file that defines PCIM_CMD_BUSMASTEREN. 2000-02-16 02:22:37 +00:00
dec Ho, ho, ho... this clock chip is not y2k compliant. Motorola 2000-01-04 03:22:04 +00:00
dgb Remove #if NDGB > 0 and #if NDGM > 0 2000-01-29 18:42:45 +00:00
dpt Remove #include "eisa.h" and #if NEISA > 0 as it's only ever compiled 2000-01-29 14:31:57 +00:00
ed Add another Linksys OUI. 2000-03-13 09:42:09 +00:00
eisa Pre 4.0 tidy up. 2000-01-14 07:14:17 +00:00
en Remove #if NEN > 0 in the name of FreeBSD - it's not required as config 2000-01-29 14:38:04 +00:00
ep Copy how everyone else is doing packet transmission. (NetBSD mostly) 2000-03-13 11:59:21 +00:00
ex Add 'bootverbose' debug messages to assist with tracking down problems 2000-03-13 12:27:21 +00:00
fb Remove #include "vga.h" and #if NVGA > 0 as it's implied by config. 2000-01-29 14:43:47 +00:00
fdc Make the Y-E Data PCMCIA floppy of the Toshiba Libretto work under 2000-03-18 18:27:01 +00:00
fe Make release is now falling over in if_fe.c due to Warner's pccard changes: 1999-10-25 17:04:17 +00:00
fxp Make the fxp driver work on alpha, rather than panic the machine on boot 1999-09-30 19:03:12 +00:00
hea Remove un-needed #include's. 2000-01-17 20:49:59 +00:00
hfa Ensure that DMA mappings are freed in error situations. 2000-01-15 21:01:04 +00:00
ic $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
ida Cosmetic fix: "id" -> "idad" for devstat. 2000-03-08 21:10:15 +00:00
ie Remove #if NIE > 0 test, it's guaranteed to be true by config. 2000-01-29 14:41:52 +00:00
iicbus Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
isp roll platform versions to 5.0 2000-03-15 18:49:44 +00:00
joy Add ADS7182 as a known Joystick. 2000-01-18 08:38:35 +00:00
kbd - Add Support for the following PS/2 mice: 2000-03-18 15:21:40 +00:00
lnc Remove a bunch of unused (NO-OP) #if NFOO > 0 type includes and some 2000-01-29 16:17:36 +00:00
mc146818
mca Set the RF_SHAREABLE flage when we allocate an IRQ. 2000-03-13 11:43:53 +00:00
mcd Remove a bunch of unused (NO-OP) #if NFOO > 0 type includes and some 2000-01-29 16:17:36 +00:00
md Initialize type correctly. 1999-12-01 10:20:21 +00:00
mii Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
mlx Update to the latest development version of the Mylex driver. Changes in 2000-03-18 02:01:37 +00:00
mse - `Newbus'ified the driver. 2000-03-18 15:13:30 +00:00
pccard Propagate MAC address in CIS tupple to dev/ed/ driver. 2000-01-21 03:08:46 +00:00
pcf Port of ppbus standalone framework to the newbus system. 2000-01-14 00:18:06 +00:00
pci Alpha 8200 port: Until we fix things better, determine which alpha CPU 2000-03-15 23:50:31 +00:00
pcic Correct PnP ids for pcic-like cards. 2000-03-10 05:26:32 +00:00
pdq Pre 4.0 tidy up. 2000-01-14 07:14:17 +00:00
ppbus I _HATE_ crashes. The lptread() call needs to check LP_BYPASS, because 2000-03-15 03:23:04 +00:00
ppc Remove #include "ppc.h" and #if NPPC > 0 - this is always true as it is 2000-01-29 14:02:30 +00:00
ray * add the start_join_net - done 2000-03-12 22:54:29 +00:00
rc Remove #if NFOO > 0 (it's not required in most cases) and also where it 2000-01-29 16:00:34 +00:00
rp Introduce ttyread() and ttywrite() which do the canonical thing. 1999-09-28 11:45:31 +00:00
scd Remove #if NFOO > 0 (it's not required in most cases) and also where it 2000-01-29 16:00:34 +00:00
sf Modify the Adaptec "starfire" driver to reset the PHY on the MII bus 1999-12-05 20:02:45 +00:00
si Always leave SP_DCEN on (monitor DCD). Otherwise the firmware *really* 2000-01-25 16:45:54 +00:00
sio Fix crashes on card eject for pccard modems. We check for NULL when 2000-03-11 20:22:09 +00:00
sk Call sk_start() at the end of sk_intr() if there's packets in the 1999-09-25 04:50:27 +00:00
smbus Remove the 'ivars' arguement to device_add_child() and 1999-12-03 08:41:24 +00:00
sn Don't execute MAC address initialization for non-pccard sn devices. 2000-01-22 17:24:16 +00:00
snp Remove cdevsw_add() - the make_dev() calls are already there. 1999-11-18 06:39:47 +00:00
sound Spelling mistake 2000-03-15 22:11:00 +00:00
speaker Remove #if NFOO > 0 (it's not required in most cases) and also where it 2000-01-29 16:00:34 +00:00
sr Remove definition of the unimplemented "control" hook. 2000-01-21 01:39:40 +00:00
streams Rename remove_dev() to destroy_dev(). 1999-11-08 07:44:01 +00:00
sym Simplifications: 2000-02-13 12:14:07 +00:00
syscons - Fix bugs when painting border and the mouse cursor in the raster 2000-03-18 15:28:48 +00:00
ti Update Tigon firmware yet again, this time to version 12.3.20. 2000-03-18 01:30:36 +00:00
tx Change incorrect NULLs to 0s 1999-12-21 11:14:12 +00:00
usb The completely rewritten USB Mass Storage driver. It supports the following 2000-03-18 17:33:41 +00:00
vinum sdio: If sd I/O fails because of an I/O error, set the sd state 2000-03-12 05:05:41 +00:00
vn Fix a panic when doing non-multiples of PAGE_SIZE or misaligned transfers 1999-12-28 07:32:34 +00:00
vr Change contigmalloc() lower memory bound from 1MB to 0 to improve 1999-09-25 17:29:02 +00:00
vx Remove #if NVX > 0 and #if NEISA > 0 (and #include "eisa.h") as it's not 2000-01-29 14:50:32 +00:00
wi Add support for WEP (encryption) for silver and gold WaveLAN/IEEE turbo cards. 2000-02-02 17:59:13 +00:00
wl Remove NBPF conditionality of bpf calls in most of our network drivers. 1999-09-25 12:06:01 +00:00
xe Remove #if 0'ed reference to isa_device->id_alive 2000-01-23 18:21:20 +00:00