summaryrefslogtreecommitdiffstats
path: root/sys/dev/fdc
Commit message (Collapse)AuthorAgeFilesLines
* Reimplement the FDOPT_NOERROR feature that was kicked out in r134081.joerg2013-08-261-5/+18
| | | | | | | | | | It is needed for fdread(1) in order to be able to recover from CRC errors in the data field of a floppy sector (by returning the sector data that failed CRC, rather than inventing dummy data). When closing the device, clear all transient device options. MFC after: 1 week
* Do not use "Enable Implied Seek" on enhanced floppy controllers. Thisjoerg2013-08-241-8/+3
| | | | | | | | | | | | | | breaks the "2step" feature of the driver, e.g. in order to read 360 KiB media on a 1200 KiB drive. As the only potential advantage of implied (vs. explicit) seeks is to minimize the software effort, yet our driver always contained the logic needed for explicit seeks, simply dropping implied seeks is the best solution without introducing risks for new bugs. There is no performance penalty, reading a 1440 KiB medium takes exactly the same time with both, implied or explicit seeks. MFC after: 1 week
* Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on ↵sbz2013-01-301-1/+1
| | | | | | | device_method_t arrays Reviewed by: cognet Approved by: cognet
* - Don't pass geom and provider names as format strings.jh2012-11-201-2/+2
| | | | | | | - Add __printflike() attributes. - Remove an extra argument for the g_new_geomf() call in swapongeom_ev(). Reviewed by: pjd
* Replace `inline static' by `static inline'.ed2011-12-131-2/+2
| | | | | | If I interpret the C standard correctly, the storage specifier should be placed before the inline keyword. While at it, replace __inline by inline in the files affected.
* Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs.ed2011-11-071-1/+1
| | | | | | The SYSCTL_NODE macro defines a list that stores all child-elements of that node. If there's no SYSCTL_DECL macro anywhere else, there's no reason why it shouldn't be static.
* Remove duplicate header includeskevlo2011-06-281-2/+0
|
* Fix typos - remove duplicate "the".brucec2011-02-211-1/+1
| | | | | | PR: bin/154928 Submitted by: Eitan Adler <lists at eitanadler.com> MFC after: 3 days
* Fix a regression from r200554, which broke fdc(4) attachment to acpi(4).jkim2010-05-301-1/+3
| | | | | | | I removed too many lines and a wrong pointer was accidentally passed down. Tested by: Scott Allendorf (scott-allendorf at uiowa dot edu), kib MFC after: 3 days
* Remove _FDE quirk handling as these quirks are automatically repairedjkim2009-12-141-57/+4
| | | | by ACPICA layer since ACPICA 20091214.
* Make isa_dma functions MPSAFE by introducing its own private lock. Theserdivacky2009-11-091-6/+0
| | | | | | | | | | | | | | | | | | functions are selfcontained (ie. they touch only isa_dma.c static variables and hardware) so a private lock is sufficient to prevent races. This changes only i386/amd64 while there are also isa_dma functions for ia64/sparc64. Sparc64 are ones empty stubs and ia64 ones are unused as ia64 does not have isa (says marcel). This patch removes explicit locking of Giant from a few drivers (there are some that requires this but lack ones - this patch fixes this) and also removes the need for implicit locking of Giant from attach routines where it's provided by newbus. Approved by: ed (mentor, implicit) Reviewed by: jhb, attilio (glanced by) Tested by: Giovanni Trematerra <giovanni.trematerra gmail com> IA64 clue: marcel
* fdc(4) module unload fixes:jh2009-11-031-3/+14
| | | | | | | | | | - Tear down the interrupt handler before killing the worker thread. - Do geom withering as GEOM event to avoid acquiring the GEOM topology lock under Giant. PR: kern/104079 Reviewed by: joerg Approved by: trasz (mentor)
* Don't ignore the return value of g_modevent() in fdc_modevent().jh2009-10-271-2/+1
| | | | Approved by: trasz (mentor)
* Orphaning provider with EXDEV seems weird; perhaps the author meanttrasz2009-10-101-1/+1
| | | | ENXIO here?
* With the fdc control device disappearing some 5 years ago, it is nojoerg2009-06-241-4/+0
| | | | | | | longer useful for the FD_STYPE and FD_SOPTS ioctls to insist on being issued on a writable file descriptor. Otherwise, there's no longer a chance to set the drive type or options when a read-only medium is present in the drive, as there is no way to obtain a writable fd then.
* Import ACPICA 20090521.jkim2009-06-051-1/+2
|
* Eliminate an unused variable reported by coverityimp2008-11-231-4/+2
| | | | Submitted by: Ganbold
* - Revive fdc(4) per-device flag 0x10, which was removed in r1.284[1].jkim2008-11-151-63/+86
| | | | | | | | | | | | | - If the flag is set and auto-select fails, assume disk is not present. - Set disk empty flag only when the floppy controller reset is needed. It fixes regression introduced in r1.311, which prevented it from ignoring errors. Now fdformat(1) and dd(1) with conv=noerror option can continue when read/write errors occur as they should. - Do not retry disk probing as it is extremely slow and pointless. - Move the disk probing code into a separate function. - Do not reset disk empty flag if write-protect check fails somehow. PR: kern/116538[1]
* The wakeup() line from the rev. 1.319 is wrong and reintroduceskib2008-01-111-2/+1
| | | | | | | | | | a panic race on module unload. The wakeup() is internal to kproc_exit/kthread_exit. The correct fix is to fix the msleep() in detach to sleep on fdc->fdc_thread instead of &fdc->fdc_thread. Noted and reviewed by: jhb Pointy hat to: kib MFC after: 1 week
* Fix unload of the fdc.ko:kib2008-01-111-1/+8
| | | | | | | | | Wakeup the thread doing the fdc_detach() when the fdc worker thread exits [1]. Write access to the write-protected floppy shall call device_unbusy() to pair the device_busy() in the fd_access() [2]. PR: 116537 [1], 116539 [2] MFC after: 1 week
* Rename the kthread_xxx (e.g. kthread_create()) callsjulian2007-10-201-2/+2
| | | | | | | | | | | to kproc_xxx as they actually make whole processes. Thos makes way for us to add REAL kthread_create() and friends that actually make theads. it turns out that most of these calls actually end up being moved back to the thread version when it's added. but we need to make this cosmetic change first. I'd LOVE to do this rename in 7.0 so that we can eventually MFC the new kthread_xxx() calls.
* Always protect the kthread flags with the lock and close a race withjhb2007-02-271-2/+1
| | | | | | module unload and kthread_exit(). MFC after: 3 days
* Use tsleep() rather than msleep() with a NULL mtx parameter.jhb2007-02-231-9/+9
|
* o break newbus api: add a new argument of type driver_filter_t topiso2007-02-231-3/+14
| | | | | | | | | | | | | bus_setup_intr() o add an int return code to all fast handlers o retire INTR_FAST/IH_FAST For more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-current Reviewed by: many Approved by: re@
* Sweep kernel replacing suser(9) calls with priv(9) calls, assigningrwatson2006-11-061-2/+4
| | | | | | | | | | | | | specific privilege names to a broad range of privileges. These may require some future tweaking. Sponsored by: nCircle Network Security, Inc. Obtained from: TrustedBSD Project Discussed on: arch@ Reviewed (at least in part) by: mlaier, jmg, pjd, bde, ceri, Alex Lyashkov <umka at sevcity dot net>, Skip Ford <skip dot ford at verizon dot net>, Antoine Brodin <antoine dot brodin at laposte dot net>
* Fix style nits. No md5 changes in .o's. ;-)jkim2006-09-081-2/+2
|
* Restore Digital Outpur Register (DOR) for enhanced controller after reset.jkim2006-08-291-2/+2
|
* Assume floppy disk is not inserted when we have exhausted retries. Thisjkim2006-07-121-0/+3
| | | | | | | | | | significantly reduces booting time when there is broken floppy disk drive, controller, cable, BIOS, etc. When the floppy controller interface is correctly implemented, disk change signal (DSKCHG) is reflected in the Digital Input Register (DIR) at 0x3f7. However, there are many cases that the signal is unusable. Moreover, some BIOS does not reserve the port at all. In those cases, the register may not function.
* Enhanced floppy controllers have Data Rate Select Register (DSR) at 0x3f4.jkim2006-07-061-8/+24
| | | | | | | | | Use it to reset controller and to select data rate. According to Intel 80277AA datasheet, software reset behaves the same as DOR reset except that it is self clearing. National Semiconductor PC8477B datasheet says the same. As a side effect, we no longer use Configuration Control Register (CCR) at 0x3f7 for these controllers, which is often missing in modern hardware.
* - Use callout_init_mtx() to initialize toffhandle callout using the fdc'sjhb2006-02-231-9/+5
| | | | | | | | | | | | | | | mutex. - Don't use callout_drain() to stop the toffhandle callout while holding the fdc mutex (this could deadlock) in functions called from softclock (callouts aren't allowed to do voluntary sleeps). Instead, use callout_stop(). Note that since we hold the associated mutex and are now using callout_init_mtx(), callout_stop() is just as effective as callout_drain(). (Though callout_drain() is still needed in detach to make sure softclock isn't contesting on our mutex before we destroy the mutex.) - Remove unused callout 'tohandle' from softc. MFC after: 1 week
* Remove unused variable.njl2006-02-211-2/+0
| | | | | Coverity ID: 558 Found by: Coverity Prevent
* Canonize the include of acpi.h.obrien2005-09-111-1/+1
|
* FDOPT_NORETRY is an option, and must be compared with fd->options,rodrigc2005-08-301-1/+1
| | | | | | | | not fd->flags. PR: kern/85481 Submitted by: Lev Levinson <llevinson at inbox dot ru> MFC after: 1 day
* Eliminate unused argument in PCMCIA_CARD macro.imp2005-06-241-1/+1
| | | | | | | | Provide a backwards compatible way to have the extra macro by defining PCCARD_API_LEVEL 5 before including pccarddevs for driver writers that want/need to have the same driver on 5 and 6 with pccard attachments. Approved by: re (dwhite)
* If we fail a sanity check for the resources just allocated, make sureimp2005-03-151-1/+3
| | | | | | | that we free that resource. All the other resources are freed in their own routine, but since we haven't saved a pointer to this one, it is leaked. This is the failure case that lead to the sio ports that weren't working, I think.
* Only allocate 1 port for non-zero rids. Either we'll get the properimp2005-03-141-1/+1
| | | | | length form the enumeration mechanism, or we're dealing with the FDCTL register, which is only 1 port long.
* Fix a couple of problems with the probe code when used with pnpbiosimp2005-03-101-9/+23
| | | | | | | | | | | | | | | | | | resources. When allocating 6 ports for a 4 port range isa code returns an error. I'm not sure yet why this is the case, but suspect it is just a non-regularity in how the resource allocation code works which should be corrected. Use 1 as the ports size in this case. However, in the hints case, we have to specify the length, so use 6 in that case. I believe that this is also acpi friendly. Also, complain when we can't allocate FDOUT register space. Right now we silently fail when we can't. This failure is referred to above. When there's no resource for FDCTL, go ahead and allocate one by hand. Many PNPBIOS tables don't list this resource, and our hints mechanism also doesn't cover that range. If we can't allocate it, whine, but fake up something. Before, we were always bogusly faking it and no one noticed the sham (save the original author who has now fixed his private shame).
* Add missing ()phk2005-02-281-3/+3
|
* Add missing va_end() in fdc_cmd.yongari2005-02-281-2/+5
| | | | | | 0 -> NULL in arguments of fdc_sense_int(). Reminded by: joerg
* Mask off the upper bits of the resource before using it as an indeximp2005-01-201-3/+10
| | | | | | | into a small array. Also, re-save the dev in attach to avoid depending on side effects of the probe. Weird stuff Reported by: jeffr
* MFp4: overhaul of resource allocationimp2005-01-194-158/+134
| | | | | | | | | | | | | | | | | Rather than have a twisty maze of special case allocations, move instead to a data driven allocation. This should be the most robust way to cope with the resource problems that the multiplicity of ways of encoding 5 registers that have the misfortune of not being a power of 2 nor contiguous. Also, make it less impossible that pccard will work. I've not been able to get my libretto floppy working, but it now fails later than before. phk and I had similar ideas on this during the 5.3 release cycle, but it wasn't until recently that I could test more than one allocation scenario. MFC After: 1 month (5.4 if possible, 5.5 if not)
* Use the standard FreeBSD licenseimp2005-01-113-21/+15
|
* Pass the file->flags down to geom ioctl handlers.phk2004-12-121-1/+7
| | | | | | | | Reject certain ioctls if write permission is not indicated. Bump geom API version. Reported by: Ruben de Groot <mail25@bzerk.org>
* Properly wither the geom container on detach. This will allow one toimp2004-11-211-0/+5
| | | | | | | | then later reload fdc and not have duplicate fd devices in dev. # Maybe this should be moved to a convenience function. Reviewed by: phk
* Add the last missing bits to make this unloadable: Two wakeups andphk2004-11-081-3/+11
| | | | | calling of the GEOM modevent from the drivers modevent so we know the order things happen.
* Remove a duplicate code.nyan2004-10-301-1/+0
|
* Now that filesystems respect and understand GEOM access counts, refusephk2004-10-291-2/+0
| | | | a write open of a read-only floppydisk.
* Properly handle failure to allocate isadma bounce bufferphk2004-10-221-2/+6
|
* Remove unused variable. Pointy hat candidate.njl2004-10-151-1/+0
|
* Remove local hacks to set flags now that the device probe does this for us.njl2004-10-141-2/+0
| | | | | | | Tested on every device except sio_pci and the pc98 fd.c. Perhaps something similar should be done for the "disabled" hints also. MFC after: 2 weeks
OpenPOWER on IntegriCloud